Blog
Engineering notes.
Written from doing the work — opinionated, specific, and aimed at engineers who already know the basics.
How to build a reliable multi-environment cloud foundation
Dev, staging and production that actually behave the same way. Most of the reliability problem is solved before a single service is deployed.
Designing a production-ready Kubernetes platform
Kubernetes is easy to start and hard to operate well. The design decisions that determine which one you end up with.
GitOps vs traditional CI/CD: choosing based on operating model
GitOps isn't strictly better than a traditional push-based pipeline. It's a different tradeoff, and the right choice depends on how your team actually operates.
Where cloud cost optimization should start
Not with rightsizing. Not with reserved instances. The first step is visibility, and most teams skip straight past it.
Observability is not dashboards: what engineering teams should actually measure
A dashboard nobody opens until an incident isn't observability. What to measure, and why most teams are measuring the wrong layer.
How to design a deployment pipeline that can recover from failure
A rollback plan you've never executed isn't a rollback plan. What a pipeline needs to actually recover, not just deploy.
Terraform environments without state chaos
Workspaces feel convenient until someone applies to the wrong environment by accident. A structure that makes that mistake hard to make.
Why your Kubernetes platform becomes expensive before it becomes reliable
Kubernetes bills grow in a predictable order: overprovisioned defaults first, idle namespaces second, uncoordinated autoscaling third. Here's the order to fix them in.