Boring Infrastructure Is a Feature

May 18, 20265 min read
Boring Infrastructure Is a Feature

There is a version of every project where the infrastructure is the interesting part. I try very hard not to build that version, because interesting infrastructure is infrastructure that needs you at two in the morning.

Spend complexity where the product is

Complexity is a budget. Every clever thing in the deployment pipeline is a clever thing that has to be understood by whoever inherits it — often the client's own team, months after I have handed over. I would rather spend that budget on the consultation flow or the payment reconciliation, where the user can actually feel it.

That usually means managed services over self-hosted ones, one region until there is a reason for two, and a deployment that is a single command with no folklore attached to it.

Make the handover the design constraint

I build assuming I will not be the one operating it in a year. Infrastructure as code, secrets in one place, a README that describes how to deploy and how to roll back. If a competent developer cannot get the system running from the repository alone, the system is not finished.

Uptime is mostly a function of how few surprising things you built.

Boring is not the same as careless. It takes real work to make a system dull enough that nothing about it needs explaining.