What Ten Years Running Production Systems Has Taught Me
I’ve spent the last decade working on production systems - the kind of systems that quietly run businesses every day.
They process orders, move data between platforms, keep operations flowing, and generally do the sort of work that most people never see but completely rely on.
Over that time I’ve realised that building software for production environments is very different from writing software in isolation.
The real challenge isn’t writing code that works. It’s building systems that keep working.
One of the biggest lessons I’ve learned is that reliability almost always beats cleverness. A simple system that is well understood and easy to maintain will usually outperform a clever but complicated design over time.
Production systems live for years. They are maintained by different developers, adapted to new requirements, and occasionally pushed into service in ways nobody originally planned.
The best systems make those realities easier rather than harder.
Another lesson is that operational thinking matters just as much as engineering. Monitoring, logging, and observability are not afterthoughts - they are core parts of the system.
If something fails at 3am, the question is not just what went wrong, but how quickly can we understand it.
Good systems answer that question quickly.
Finally, production work has taught me that software is always part of a larger system: people, processes, operations, and business goals. The code is only one piece of that puzzle.
Understanding the bigger picture makes better engineering decisions possible.
It’s one of the reasons I’ve gradually found myself drawn toward leadership and architecture roles -because the most interesting problems often sit at the intersection of systems, people, and decisions.