Essays
Simplicity Takes Work
Why simple systems are not born but constructed, and how most complexity is not a technical failure but a cognitive one.
Coupling Is Not Evil — It’s a Commitment
Why eliminating coupling is neither realistic nor desirable, and how the real architectural mistake is failing to recognize which commitments you are making permanent.
Testing Makes You Faster (Eventually)
Speed without safety feels fast right up until it isn’t - and the bill always comes due later.
Best Practices as Models, Not Dogma
Best practices promise safety through repetition, yet experienced engineers often feel discomfort long before they can explain why. This essay explores why rules that once made sense can quietly lose their meaning, and why judgment begins where best practices end.
The Degrees of Freedom of a System --- and Why Too Much Freedom Can Paralyze It
A way to think about flexibility as a structural property rather than a personality trait, and why systems lose their ability to change long before anyone notices.
When Fear Becomes Structure
An exploration of how unmanaged uncertainty turns into rigid process—and how leadership failure makes that transformation inevitable.
Visibility Is Not Neutral
Visibility is rarely a neutral act; it is a force that reshapes the work it seeks to measure. This essay explores how management pressure moves downstream and why ‘apparent progress’ can eventually start to dictate reality.
Observability Makes Software Visible
Most systems aren’t truly managed; they are merely monitored for failure while we fly with the windows blacked out. True observability isn’t just about logs and traces—it’s the instrumentation that turns an open-loop guess into a closed-loop system you can actually control.
Shaping The Problem
Why painful tradeoffs are often a sign of a poorly modeled problem — not a hard decision.
Architecture Should Grow, Not Mutate
How irreversible decisions quietly accumulate, why “refactoring the whole thing” is rarely possible, and what it means for architecture to gain mass over time.
From Code to Systems: The Three Levels of Thinking That Define Technical Growth
Why many architectural debates fail before they start — not because of disagreement, but because participants are reasoning at different conceptual levels without realizing it.