API Versioning Without Tears: Sunset Headers, Major Versions, and a Go Implementation
Sooner or later every API team hits the wall: a client depends on behavior you need to change. The field
Sooner or later every API team hits the wall: a client depends on behavior you need to change. The field
One Tuesday your API’s most popular endpoint works fine. Two Tuesdays later, a mobile app that has been calling it
Every Go codebase has one: that function with a growing switch statement. It starts with two cases — a direct
Continue readingThe Strategy Pattern in Go: Replacing Switch Statements with Interfaces
Every engineering team eventually faces the same daunting question: what do we do with the legacy monolith? The temptation is
Most security failures I’ve investigated over twenty years share a root cause: security was somebody else’s job, checked at the
Continue readingImplementing DevSecOps: Integrating Security into the Development Process
Systems that need to be up and running around the clock can’t treat failure as an exception — it’s the
Continue readingBuilding Resilient and Fault-Tolerant Systems: Tips and Techniques