The Contradiction

RoboCup is one of the most influential artificial-intelligence and robotics competitions in the world. On the floor, it is genuinely state of the art: autonomous humanoids playing soccer, rescue robots reading disaster sites, machines that get a little closer every year to a goal we’ve held since 1997 — a team of robots that can beat the human World Cup champions by 2050.
Off the floor, until very recently, the competition ran on Excel spreadsheets and manual emails.
I want to sit in that contradiction for a moment, because it’s the whole point of this piece. The thing is, RoboCup is on the floor, and the way RoboCup ran off the floor had drifted about as far apart as two things can. Slot allocations lived in spreadsheets, one per regional representative. Team registrations were typed in by hand. Visa invitation letters were generated and emailed one team at a time. Registration errors surfaced at the event itself, when it was too late to fix them. A region representative who needed a change had to email one overworked admin and wait.
The competitions stayed world-class because the people behind them worked harder. That is not a sustainable way to run a federation that wants to grow. And it’s a strange thing to be the best in the world at artificial intelligence and run your own operations like it’s 2005.
So a small group of us set out to close the gap — to make the way we run RoboCup as modern as RoboCup itself. And we decided to do it with the very technology the competition exists to celebrate.
What We Built

We built a real Competition Management System — the internal platform that now runs the full lifecycle of the event, from the first slot-allocation decision to badge printing at the check-in desk.
In concrete terms, it does the unglamorous work that used to eat thousands of volunteer hours:
- Slot planning and team selection across roughly 50 regional representatives, each now working self-service instead of waiting on a central admin.
- Invitations and registration — one click from the system sends a team its invitation; no team can self-register, so every registration starts from a real allocation decision.
- Same-day visa letters — the moment a team pays and their passport data is on file, the next automatic sync makes them eligible and sends a secure link to download their personalized invitation letter. Teams wait months for the event; they get the letter they need for their visa the same day.
- Automated validation — the system syncs several times a day, checking ages, member counts, payments, and passport completeness, and surfaces problems during registration instead of at the venue.
- On-site check-in and badges — a desk that scans a confirmation, prints the right color-coded credential for each person, and logs who printed what.
- Awards, certificates, and even committee elections — a top exec can now run a RoboCupJunior committee election entirely in-app: self-nomination, a frozen voter roll, a secret ballot, certified results.
Two years of history sit inside it, queryable. Every sensitive action writes to an audit log. Everything that used to live in scattered spreadsheets, inboxes, and manual email now runs end-to-end in one platform — one source of truth. And a tiny volunteer team still runs it — the platform is what lets a handful of people support the roughly 2,300 participants who travel to the international championship each year, where the manual model would have buckled.
(The registration and awards side of this has a story of its own — how we rebuilt team check-in and ended up a finalist against enterprise event-technology teams. I’ve told that one in The Registration Line That Became an Awards Finalist. This piece is about the system underneath it, and how it gets built.)
How We Built It — With the Very Thing We Celebrate
Here’s the part I find genuinely fitting: the system that runs an AI competition is itself built with AI.
The numbers are almost absurd for a two-person volunteer team. In a five-month sprint between February and July of this year, the two of us — around our full-time jobs — shipped roughly 1,785 commits and 643 pull requests, about 221,000 lines of code, into a platform now recognized alongside enterprise event teams. Not because we type fast. Because the AI does the heavy lifting inside a structure we built to keep it honest.
Everything I’ve been writing about converges here. This is the system where the plan-first discipline from From Vibe Coding to AI Engineering stops being a slogan and becomes how each change starts. It’s where Review Is the Product — the idea that trust, not code generation, is the bottleneck — is the daily reality. It’s where the unglamorous infrastructure from The Prompt Is Overrated — the memory, the guardrails, the codified procedures — is what keeps a fast agent honest against a real codebase.
And it ships continuously, not once a year. Every non-trivial change is cross-checked before it goes live: by multiple AI reviewer personas, each looking from a different angle; by a second AI from a different vendor with different blind spots; and by a human reviewer — and only then does a human merge it. The operators can even see a changelog of those changes inside the system itself.
That’s the synthesis of the whole argument in one working example. A world-class AI competition, run by volunteers, on a platform built at the pace and quality that used to require a paid team — because the discipline is codified and the AI does the heavy lifting inside it.
AI Drafts. A Human Sends.

The same rule shows up in a place you might not expect: our inbox.
Registration season means a flood of email — anxious parents, region reps, team leaders, all with time-sensitive questions about invitation letters, payments, a team member who needs to change at the last minute. This year we wired an assistant into our help desk. It reads an incoming message, drafts a reply from a knowledge base that grows with every case we resolve, and hands the draft to one of us. Then a human reads it, and a human sends it. Nothing leaves unattended — by design.
Across 458 resolved threads this season, the assistant drafted the full reply for 175 of them. A person still reviewed and sent every single one. It’s the exact same rule we hold over the code — the AI drafts; a human is accountable for what actually goes out — applied now to the thing that lands in a worried parent’s inbox. The assistant made us faster. It never once decided, on its own, what that parent should hear.
Where Failure Has a Face
But I did not write this piece to celebrate a tech stack. I wrote it for the reason that makes all of the above matter, and it’s the reason I wanted to land here instead of somewhere tidier.
On the other end of this system is a child.
A delayed invitation letter isn’t a slow ticket — it can be a student who doesn’t get their visa in time and misses the event they crossed the world to reach. A privacy slip isn’t a log line — it’s a minor’s data exposed, which is why the system shows ages as “21+,” masks passport numbers on screen, and never puts them in an export. An untraceable change isn’t a process gap — it’s not being able to answer “who did this?” about a system that decides who gets to compete.
So when you point a fast, tireless AI agent at a system where failure has a face, the question that matters isn’t how quickly it can generate code. The speed is the easy part now. The question is what keeps it safe — and the answer is that a human never let go of the wheel. The agent writes the code and even commits it. A person decides what actually ships to the students, reviews it against what we meant to build, weighs who’s harmed if it’s wrong, and puts their name on the merge. The AI made us faster. It did not make us less responsible. If anything, the speed raised the bar on the human judgment around it.
Modernizing the back office was never really about the software. It was about refusing to let the way we run something fall short of what that something means to the people who depend on it. AI made that refusal affordable for a two-person volunteer team; it did not make it optional. We closed a gap that shouldn’t have existed — between being the best in the world at AI on the floor and running the whole thing like an afterthought off it — and we did it the right way: modern tools, an AI doing the heavy lifting, and a human accountable for every change that reaches a kid at a registration desk.
That’s the through-line in one line — the robots, the reviews, the value, the governance, all of it:
Let the tools do more. Keep the responsibility human. On the other end of the system is always a person.