iv · ix · mmxxvi

Hello, again

I codify contracts between systems for a living, in Rust and Python; and once spent a decade chasing where the antimatter went.

Senior software engineer at PactFlow (SmartBear). Open source contributor to pact-python,tikz-feynman, rust-skiplist, and more.

Previously: data and cloud engineering at KPMG, and a PhD in theoretical particle physics.

The year in code

3700 commits, 503 PRs, and 183 issues across 35 repositories.

Sep 2025 — Sep 2026
Most of what I make is open. The grid below is the truthful version of a résumé — public, dated, and dense in the parts where I was paying attention.

Latest commits

pact-foundation/pact_brokertest: cover the tag name as a literal string when deleting a tag3h
pact-foundation/pact-broker-dockerdocs: describe the pull request release process22h
pact-foundation/pact-broker-dockerchore(ci): open a pull request for the pact_broker gem bump22h
pact-foundation/pact-broker-dockerchore(ci): release images by merging a pull request22h
pact-foundation/pact-broker-dockerchore: move the git half of the release out of the shell scripts22h
pact-foundation/pact-broker-dockerchore: add git-cliff config and the release script22h

Latest issues & PRs

pact-foundation/pact_broker[PR · merged]
chore(ci): remove notification to pact-broker-docker46m
pact-foundation/pact_broker[PR · merged]
chore(ci): reduce CI on draft PRs2h
pact-foundation/pact_broker[PR · merged]
chore(ci): rebase when conflicted only2h
JP-Ellis/rust-skiplist[PR · merged]
fix: preserve container invariants when user code unwinds19h
Selected projects
pact-pythonOSS · libraryPython bindings for Pact, rebuilt over a Rust FFI core. The version most pact-python users actually reach for.↗ github
tikz-feynmanOSS · LaTeXA LaTeX package for typesetting Feynman diagrams with TikZ; adopted across particle physics with 400+ academic citations.↗ github
rust-skiplistOSS · librarySkiplist data structure implementation in Rust.↗ github
↗ All projects