$ blog / engineering
Engineering
Lessons from what I run into at work, learned from and written down.
$ blog / engineering
Lessons from what I run into at work, learned from and written down.
19 goroutines, one shared browser, exit 137. A postmortem tracing Go concurrency, GMP scheduling, memory layers, and the semaphore fix that stopped the bleeding.
An automated dependency update bumped the Golang version and cascaded through Docker, Alpine, and libvips, teaching nine lessons about version coupling, contaminated test oracles, and silent security gaps.
One mental model for reaching a remote database from your laptop: the five coordinates, the tunnel, docker packaging, and one-shot vs REPL queries.
A one-line migration ticket hid two opposite-facing TLS setups. Untangling the PKI behind it — the certificates, keys, and CAs — from inbound one-way TLS to outbound mTLS to Kafka.
A GIF crop bug that rendered garbage taught how images and animation really work — format trade-offs, libvips page-strips, and one load path for stills and animation.
One operation, three engines: query ClickHouse, Spark, and MongoDB by thinking in intent instead of memorizing three sets of syntax.
A production race condition taught four lessons about locks, atomicity, and safe publication.