Ramblings of an aging IT geek
← Ramblings of an aging IT geek
rust

rust in production, two years of regrets and wins

An honest tally after two years of running Rust services in production, including the parts that still cost us time.

A code editor with Rust source open

Two years in, the headline holds: the services we wrote in Rust simply do not page us. The class of bug that used to wake people up, the null deref, the data race, the use-after-free in a hot path, has not happened. Not once. That alone has paid for the language.

The regrets are smaller and more boring than the evangelists admit. Compile times are still a tax, and cargo cold builds on CI hurt until we cached the registry and target properly. The async story is better than it was, but stack traces through a heavily combinatored future are still a puzzle, and "just add tracing" is the honest answer to most debugging questions. We also over-engineered early: too many traits, too many generics, abstractions written for flexibility we never used. The Rust we write now is flatter and duller and far easier to read six months later.

The win I didn't expect was hiring. Good engineers wanted to work on it, and the compiler did a lot of the onboarding for us: you cannot merge the careless thing, so reviews became about design rather than safety.

Would I reach for it again? For a long-lived service that has to be correct under load, without hesitation. For a script I'll throw away on Friday, absolutely not. Pick the tool, not the tribe.