[ Ionut Dumitru ]
SystemsSep 29, 20256 min read

Run less software

The cheapest, most reliable component in any system is the one you never installed.

Every line of code you write is a line someone has to maintain, patch, debug at 3am, and reason about when it breaks. Every service you stand up is a thing that needs credentials, monitoring, a backup story, and a place in your head. The work doesn't end when you ship it. It starts there. So the most leveraged decision in any system is not what you build — it's what you decline to build at all.

I've spent twelve years watching teams add their way into corners they can't get out of. A queue here, a cache there, a small service to handle the thing the big service shouldn't. Each addition is locally reasonable. Collectively they produce a system no single person understands, where every change is a negotiation with code nobody remembers writing. The fix is rarely another component. It's the discipline to run less software.

Count the cost of the thing you didn't write

A dependency looks free at install time. The real price shows up later, paid in installments. The library you pulled in for one function now dictates your Node version. The message broker you added for a feature two users wanted is the reason your on-call rotation exists. None of this is on the invoice, because the most expensive software is the kind that has no line item — it just quietly taxes every future decision.

I once replaced a Redis instance, a worker process, and a job library with a single Postgres table and a SELECT ... FOR UPDATE SKIP LOCKED. The queue had been there because someone, years earlier, read that you need a queue. We didn't. We needed a list of rows and a way to claim one. The database we already ran did both. Three components became zero new components, and the part of the diagram that used to page people on weekends went away entirely.

That's the move, again and again: before adding, ask whether something you already operate can do the job. The boring answer is usually yes.

A component you didn't add can't page you at 3am, can't drift out of date, and can't be the thing the breach came through.

Boring is a feature

There's a quiet status game in engineering where the person running the most exotic stack wins. It's backwards. The Postgres you've run for five years has had its sharp edges found by millions of people before you. Its failure modes are documented, its tooling is mature, and you already know how to restore it. The shiny new datastore has none of that — you're the QA team, and you'll find the sharp edges in production.

Choosing fewer, more boring components compounds. When everything routes through Postgres and one Go binary, a new engineer can hold the whole system in their head by Friday. When the same job is spread across six services in four languages, nobody can — and the diagram on the wall becomes a map of a city no one is from.

  • Prefer a feature of a tool you already run over a new tool.
  • Prefer one process that does three things over three processes that do one.
  • Prefer the database call over the cache until you've measured that you need the cache.

The seam where this gets hard

The pressure to add is constant and the pressure to remove is nonexistent. No one is promoted for the service they deleted. Vendors sell the addition; nobody sells the subtraction. And the AI tools we now lean on are eager to scaffold — ask for a feature and you'll get a new package, a new service, a new layer, all generated faster than you can evaluate whether you needed any of it. Generation is cheap now. Operating what got generated is not. The volume of plausible software you can produce has gone up; the number of things a team can actually run in its head has not.

So the discipline matters more, not less. The right question when the diff lands isn't "does this work" — it's "what do we now have to keep alive forever, and is the feature worth that standing cost." Most of the time the honest answer is to fold the new thing into something that's already running, or to not run it at all.

Run less software. Then run that well. The component you never installed is the one that never wakes you up.

#Systems#MaintenanceShare ↗
→ / AUTHOR
Ionut Dumitru
Ionut Dumitru

Full-stack engineer and product designer. Writes about building products where the engineering and the design are the same job.

→ / NEXT
AISep 22, 2025
The agent that does less
← All writingionutdumitru.com