I spent two weeks last January in a concrete-block timing room at the Vélodrome de Bordeaux, watching split data scroll across a monitor that hadn't been replaced since 2014. The room smelled like pine shavings and old solder. Every third lap, the optical sensor at the finish line would ghost — registering a crossing that never happened, then self-correcting four hundred milliseconds later. Nobody on the coaching staff noticed anymore. They had calibrated their instincts around the bug.
Four Hundred Milliseconds Is a Career
In track cycling, the difference between a national record and a forgotten qualifying heat is often smaller than the latency we were tolerating. When we audited the full chain — sensor trigger, serial bus, firmware interrupt, OS scheduler, application layer — we found fourteen distinct sources of jitter, each individually negligible, collectively catastrophic. The oldest component dated to a firmware patch from 2009, written by a contractor who had since left the sport entirely.
"We had calibrated our instincts around the bug. That is the most dangerous kind of technical debt — the kind your users have internalized."
Rewriting the stack meant replacing the photodiode array with a synchronized camera pair running at 2400 fps, routing through a dedicated microcontroller with hard real-time guarantees, and building a new application layer in Rust that could process and display splits within a single frame. We benchmarked it against the old system for three months in parallel. The new stack found two false-positive ghosts in the first week. The old stack had averaged eleven per session.