On Simplicity

The best systems I’ve worked with had one thing in common: they were simple enough to fit in your head.

Not trivial — simple. There’s a difference. A hash map is simple. A distributed consensus protocol is not trivial, but a well-designed one can be simple to reason about.

The complexity trap

Complexity is seductive. It feels like progress. You add a cache layer, a message queue, a service mesh, and suddenly you have a system that takes a week to onboard someone into.

“Simplicity is prerequisite for reliability.” — Edsger Dijkstra

A checklist

Before adding a new component to your system, ask:

  1. Can I solve this with what I already have? Most of the time, yes.
  2. What’s the operational cost? Every new service is a new thing that can break at 3 AM.
  3. Will I understand this in 6 months? If not, simplify.

Simple doesn’t mean easy. It means deliberately choosing to do less, better.