Technical Writing
Notes on distributed systems, AI infrastructure, databases, and observability. Written for engineers who want depth, not surface-level takes.
Why Every Backend Engineer Eventually Ends Up Learning 7 Different Databases
Every database is choosing whether it pays its cost during writes, during reads, or in how bytes sit on disk. Once I started reading them that way, picking one stopped being a comparison and started being a question about which cost I could absorb.
Kafka, Parallel Consumers, and the 6-Hour Testing Bottleneck
We were running 70,000 security tests in about 6 hours on a shared queue, and I was explicitly not allowed to solve it by adding machines. What that constraint forced was per-message offset tracking, a hard 4-minute timeout, and a state file on disk.
You Don't Need Kafka Internals. You Need Four of Them.
Every Kafka guide hands you the same nine-row config table. In practice almost every failure I've debugged came down to four things: the log's shape, two timeouts people conflate, the rebalance tax, and the fact that auto-commit is a correctness bug with a config flag.