Projects / FairPair
FairPair
A web app that runs competitive Commander (Magic: The Gathering) tournaments, live at fairpair.gg. I started it, and it has grown into a small team. I wrote the live side: the stream overlay, its phone remote and the life-total sync. Its pairings come from EDH Matchmaker, the Swiss engine I started in 2018.

A whole Commander event runs on it from the players' phones: sign-up with decklists, Swiss rounds, judges' notes, standings and the top cut. I also play competitive Commander, 4th of 315 at the 2025 European Championship. I work with judges and tournament organisers on clearer rulings and on transparent matchmaking, which players want as well.
The team. I started it, and it has grown into a small team. I hold most of the product knowledge. My own code is the live side, for streams.
The pairing engine: EDH Matchmaker. Pairings at our local tournaments were drawn from a hat, so in 2018 I wrote my own Swiss pairing engine. Ordinary Swiss software pairs people two at a time, but Commander is played four to a table. My small script grew into a fully fledged PyQt tournament manager. The core powers FairPair today. The cEDH European Championship's multiplayer rules addendum lists it first among the tools for the pairing it recommends.
Tests. There are about as many lines of tests as of engine, and they run on every push. I play the format in tournaments myself, so the tiebreakers come from the player's side.









Shots taken from a local build of FairPair with its own invented test data (every name is made up), not from the live site. EDH Matchmaker: screenshots from the current version, run locally with invented players.