I’ve built enough software to know that most of it works less like a machine and more like a compromise.

Not in a dramatic, “everything is broken” way. More in a quiet, cumulative way. A thousand tiny decisions made under pressure, under constraints, or under the assumption that things would be fixed properly later.

They rarely are.

So instead we get systems that mostly work, occasionally surprise you, and often contain relics of decisions made years before anyone currently working on them joined the company.

This blog is about that space.

Not the clean diagrams in architecture talks. Not the polished demos. Not the idealised version of software that is supposed to exist.

It’s about the gap between intention and reality.