Blog
Tutorials, guides, and insights to help you become a better developer.

A measured walk through the hash ring: how much of your cache modulo hashing really destroys, how many virtual nodes you actually need for even distribution, and the 32-bit collision bug that makes the textbook implementation return unroutable keys.
AdminAugust 7, 202613 min read
Redis does more; Memcached does one thing faster. Here's exactly when that trade-off matters — plus why Valkey is now the open-source default in 2026.
AdminAugust 5, 202614 min read
You have a UserService that needs a Database. Your OrderService needs UserService, Database, and a PaymentGateway. Your NotificationService needs EmailClient and UserService.
AdminJuly 31, 20266 min read
If you're still writing pages/api/... files in a new Next.js project, stop. Route Handlers are the App Router's replacement, and they're meaningfully better — typed, streaming-capable, and built on the same Web platform APIs that Cloudflare.
AdminJuly 15, 20267 min read
Call fib(45) naively and JavaScript will make over a billion recursive calls. Call it twice and you double that. Your CPU fan kicks on, the browser tab freezes, and the function you thought was fast becomes your performance bottleneck.
AdminJune 10, 20266 min read
Kafka is a distributed commit log, not a message queue. Segments on disk, the ISR, the KRaft controller quorum and zero-copy fetches — and how each one explains a config option you've had to set.
AdminMay 6, 202610 min read