insights
Notes from production
Longer write-ups on the problems I get called about most: Kubernetes stuck in a bad state, cloud bills nobody can explain, and RAG/LLM systems that worked in a demo and fell over in production. Written the way I'd explain it to another engineer, with the commands I actually ran.
EKS vs GKE vs Self-Managed Kubernetes: Where the Cost Actually Goes
A cost comparison that starts from the actual bill instead of the pricing page. What EKS, GKE and self-managed Kubernetes really charge for, which line items dominate, the surprises that show up in month three, and a model you can fill in with your own numbers.
Ingress vs Gateway API: Planning the Move Now That ingress-nginx Is Retired
What Gateway API actually gives you over Ingress, what the ingress-nginx retirement means if you are still running it, and a migration path that moves route by route instead of all at once.
Choosing a Vector Database for Self-Hosted RAG: What Actually Decides It
A selection guide for self-hosted RAG vector stores that starts with index memory math and filtering requirements rather than benchmark charts. Covers pgvector, Qdrant, Weaviate, Milvus, and when the answer is "you do not need one yet".
A Zero-Downtime Kubernetes Migration Runbook That Survives Contact With Production
The runbook I use to move production onto Kubernetes without an outage window: parallel environments, weighted ingress, session and state handling, the rollback triggers agreed in advance, and the order that keeps every step reversible.
Karpenter vs Cluster Autoscaler: Which One Should Be Scaling Your Nodes?
A practical comparison of the two Kubernetes node autoscalers, from someone who has migrated production clusters between them. What each actually does, where consolidation earns its keep, and the operational cost nobody mentions.
Kubernetes OOMKilled: Debugging Exit Code 137 Without Just Raising the Limit
Exit code 137 is the easiest Kubernetes failure to "fix" wrongly. A field guide to telling an undersized limit from a leak, reading working-set memory the way the kernel does, and the runtimes that ignore your cgroup limit entirely.
Your AI Agent Works 70% of the Time. Here Is What the Other 30% Is Made Of.
Why agent demos hit a reliability ceiling, how to build the eval harness that tells you where the failures actually are, and the five fixes that move an agent from impressive to shippable.
How to Cut an LLM API Bill 50-70% Without Anyone Noticing a Quality Drop
The four levers that actually move an OpenAI or Anthropic bill — gateway visibility, caching, model routing, and token trimming — and how to prove you didn't degrade quality doing it.
Debugging Kubernetes Ingress: What 502, 503, and 504 Are Actually Telling You
A request-path playbook for Kubernetes ingress errors — how to read 502 vs 503 vs 504, walk ingress to Service to endpoint to pod, and find the layer that is actually broken.
Self-Hosted RAG in Production: The Issues That Never Show Up in the Demo
Why RAG systems that demo beautifully fall apart in production, and the concrete fixes for retrieval quality, hallucination, cost, and staleness that a demo never forces you to solve.
Kubernetes Cost Optimization: Where the Money Actually Goes and How to Cut It
A practical breakdown of where Kubernetes clusters bleed money and the concrete order of operations to cut the bill 20-50% without hurting reliability.
Kubernetes CrashLoopBackOff in Production: A Debugging Playbook That Actually Works
A field playbook for debugging CrashLoopBackOff in production without panic-restarting pods, built from real incidents where the "obvious" fix was wrong.
Living through one of these right now?
Book a free 30-minute call. We diagnose it together, and you walk away with a plan you can act on. You’ll get a straight read either way.