Home
Blog
Been There Done That
Students
Resume
Blog
I break prod, I fix prod. AI writes the postmortem — I provide the trauma.
2026/04/08
897 Migrations, Five Databases, One Order — Why Plain Deploy Worked
2026/04/08
A GitHub Actions Workflow Was ‘Enabled’ But Never Triggered — Here’s Why
2026/04/08
A SCIM Bridge Suspended Every User in the Org
2026/04/08
A Trivy Action Got Hacked — So I Vendored the Binary
2026/04/08
Axios 0.30.4 Was Compromised — Here’s How I Scanned 12 Repos in 30 Minutes
2026/04/08
CI Runner OOM’d During an Emergency Hotfix Build
2026/04/08
curlie Was Aliased to curl and Silently Broke My API Calls
2026/04/08
Database Triggers as Safety Nets for Missing Webhooks
2026/04/08
Docker Build 10 Minutes to 40 Seconds — Registry-Based Layer Caching
2026/04/08
Flux CRD Schema Break During Upgrade — Bootstrap Succeeded, Everything Else Failed
2026/04/08
GCP IAP Error 4003 — It Wasn’t a Permission Problem
2026/04/08
Kubelet CSRs Stuck on Bare Metal — Nodes Went Dark
2026/04/08
My Alert Said ns: , pod: — Label Mismatch Between cadvisor and kube-state-metrics
2026/04/08
NEG Names Are a Hidden Coupling Between Flux and Terraform
2026/04/08
Patroni Refused to Promote — ‘cannot execute LISTEN during recovery’
2026/04/08
The Compliance Auditor Asked ‘How Did You Generate This?’ — My Script Had No Logs
2026/04/08
You Can’t Revoke a Kubeconfig — Here’s What I Did Instead
2026/04/07
Flux postBuild Broke My PL/pgSQL — One Annotation Fixed It
2026/04/05
Designing a Flux Dependency Chain That Doesn’t Fight Itself
2026/04/03
Zero Static Credentials on Kubernetes — Workload Identity + ESO + 1Password
2026/04/02
DefectDojo Was Eating 6GB of RAM — uwsgi Workers Never Recycled
2026/03/31
588 Database Migrations on a Fresh Postgres — Why They All Failed
2026/03/24
My Script Deleted Staging — Flux Brought It Back in 10 Minutes