2025-11-03
Linux
networking
Spent half a day on a production issue where a service was reachable externally but health checks timed out internally. Turned out two rules in the FORWARD chain were in the wrong order. iptables matches top-down and stops at first hit — no second chances for the same packet.
2025-10-21
Go
performance
Memory crept up to 2 GB within three days of launch. Restarts bought time but weren't a fix. Enabled the pprof endpoint and watched goroutine count climb ~60 per minute. Root cause: an unclosed channel left receivers blocked forever.
2025-10-08
Nginx
TLS
Every time I set up a reverse proxy I end up looking up the same things. Writing them down: upstream health checks, header forwarding, TLS termination, buffer tuning. Mostly for myself.
2025-09-14
Docker
ops
Three usual culprits: wrong base image, no layer caching strategy, build artifacts left behind. Multi-stage builds and an Alpine base got us most of the way there. Notes on what worked and what didn't.
2025-08-29
PostgreSQL
databases
What do cost, rows, actual time, and loops actually mean? Is a Seq Scan always bad? When does an index make things worse? A few real query examples to make the numbers less abstract.