xii · xi · mmxxvi

Hello, again

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

Senior software engineer at PactFlow (SmartBear). I help lead the open-source Pact Foundation and maintainpact-python; I also wrote tikz-feynman,rust-skiplist, and more.

Previously: data and cloud engineering at KPMG, and doctoral research in theoretical particle physics.

The year in code

5301 commits, 820 PRs, and 277 issues across 39 repositories.

Nov 2025 — Nov 2026
Most of what I make is open. Each square below is one day of my GitHub contributions over the past year.

Latest commits

pact-foundation/pact_brokerfix: count typed v4 messages as messages, not interactions22h
pact-foundation/pact_brokerrefactor: name the v4 message types once in Interactions::Types22h
pact-foundation/pact_brokertest: cover pacts whose spec version does not match their shape22h
JP-Ellis/dotfilesfix(profile): keep add_path values quoted through eval23h
JP-Ellis/dotfilesfeat(ghostty): manage config through dotter23h
pact-foundation/pact_brokerfix: link each verification in a consumer version summary to its own provider's pact23h

Latest issues & PRs

pact-foundation/pact_broker[PR · open]
feat: fill has_http_interactions and make it NOT NULL17h
pact-foundation/pact_broker[PR · open]
feat: record has_http_interactions when a pact version is created17h
pact-foundation/pact_broker[PR · open]
feat: add a nullable has_http_interactions column to pact_versions17h
pact-foundation/pact_broker[PR · merged]
fix: count typed v4 messages in pacts without a specification version22h

Selected projects

pact-pythonOSS · libraryPython bindings for Pact, rebuilt over a Rust FFI core. Downloaded over 1.3 million times a month.↗ github
tikz-feynmanOSS · LaTeXA LaTeX package for typesetting Feynman diagrams with TikZ; adopted across particle physics with 400+ academic citations.↗ github
rust-skiplistOSS · libraryA skip list for Rust.↗ github
↗ All projects