# tail -f blog.log
The Blog
Field notes on platform engineering, Kubernetes, Cloud Foundry and CI/CD — real incidents, generalised and stripped of anything landscape-specific.
The NetworkPolicy Drop That Looked Like Three Different Bugs
A missing egress port, a flawed debug test, and a live patch that kept silently reverting — how one dropped Kafka connection sent an investigation down three wrong paths first.
Zero-Downtime Kubernetes Deploys: The Checklist I Actually Use
Rolling updates, readiness probes, PodDisruptionBudgets and the CI/CD gates that turn 'it should be fine' into a guarantee.
Governing a Sovereign Cloud Platform Without Slowing Teams Down
Notes from building an operational delivery function for a regulated, national-infrastructure cloud platform — where governance has to be an enabler, not a gate.
Terraform at Scale: From One Landing Zone to Twenty Teams
What actually breaks when Terraform grows from a single account to a shared platform — state, modules, and the boring conventions that save you.
Why 'No Errors Found' Can Mean Your Tooling Couldn't Check
A short-lived cluster credential expired mid-investigation and quietly turned every log sweep into a false all-clear. The failure mode that should worry you most is the one that looks like success.
Leading a Platform Team Is Mostly a People Problem
Eight engineers, one 24/7 production platform, and a constant stream of requests that are rarely just technical. Notes on rotas, upskilling and the parts of the job nobody puts in the job description.
When the Backend Recovers but the App Still Can't Reach It
A message broker's HA failover completed cleanly in three minutes. Client apps kept failing for fifteen more. The gap between those two numbers is where the real bug was hiding.
The Leader Election That Was Looking for a Sidecar That Wasn't There
A Cloud Foundry app kept failing to connect to localhost:80 for something it never should have been talking to localhost about. It had brought a Kubernetes assumption with it that didn't survive the move.
Anatomy of a Cluster-Wide Outage: When One Component's Bad Luck Breaks Every Node
A CNI sync component lost both replicas to a run of bad scheduling luck, and for about an hour, no node in the cluster could route Service traffic — including nodes that never stopped reporting healthy.
Two Boring Pipeline Bugs That Teach a Bigger Lesson
A blank config default that silently meant 'no image pinned,' and a deploy stage for a component that no longer existed. Neither is exciting. Both should have been impossible.
The Pipeline That Didn't Fail — It Just Waited Forever
A submodule clone inside a CI task hit a credential prompt no human would ever see, and instead of failing, it just sat there. A hang is a worse failure mode than an error, and it's usually self-inflicted.
no posts under this label yet