Articles
Your Deployment Pipeline Is Part of the Architecture
Why backward compatibility, migrations, version coexistence and recovery belong in system design - not just in the CI/CD checklist.
Optimize for Understanding, Not Reuse
Why shared abstractions and premature frameworks often increase complexity - and when a little duplication might be the better design choice.
Why You Probably Don't Need Microservices
A pragmatic look at when a monolith is the right choice and how to avoid distributed-system complexity you haven't earned.