BlitzVolley
A two-player online volleyball game, played in the browser: ranked matches, Elo rating, bots and a career mode.
It runs in real time, which brings everything that makes an online game hard: latency, state synchronisation, and the question of who is right when two machines disagree. Around that it needed matchmaking, an Elo rating, bots to fill empty matches, and a career mode to give players a reason to come back.
The server runs on a machine I administer myself: updates, monitoring, backups, incidents at two in the morning. None of that is visible from the volleyball court, which is exactly the point.
It is also the project where I learned the most about things that have nothing to do with code — starting with the considerable distance between a game that works and a game you want to open again.