Blogs
(7 articles)Thoughts on software development, technology, and building things that matter.
- 15 min read
Why Netflix put its CDN inside internet providers
A normal CDN was already close to viewers. The deeper reason Netflix shipped servers into ISP networks was to decide where—and when—its heaviest traffic crossed the internet.
NetflixCDNDistributed SystemsNetworkingRead Article - 14 min read
Shuffle Sharding: How AWS Gives Every Customer a Different Failure Domain
Isolation usually means separation. Shuffle sharding does the opposite — it deliberately overlaps tenant worker sets while making complete collisions rare. I follow AWS's public Route 53 design, implement the mechanism in Java, and stress it with one poisoned tenant.
Distributed SystemsAWS ArchitectureFault IsolationRead Article - 18 min read
Why LinkedIn made Pinot's serving layer rebuildable
I spent a week misreading one sentence in the Pinot docs. Working out what it actually meant changed how I think about which machine is allowed to own your data.
Apache PinotDistributed SystemsReal-Time AnalyticsRead Article - 4 min read
Your '100 requests per second' rate limiter probably allows 200
Fixed-window counters are the default rate limiter in most codebases, and they let through double the configured rate at every window boundary. Here is why, and what to use instead.
System DesignBackendReliabilityRead Article - 4 min read
Idempotency keys are harder than a unique index
Storing the key and returning early handles the easy retry. The interesting failures are concurrent duplicates, changed request bodies, and crashes between the write and the response.
FinTechSystem DesignPostgreSQLRead Article - 4 min read
Kubernetes doesn't schedule GPUs like it schedules CPUs
CPU is compressible and divisible, GPU is neither. That single difference explains device plugins, whole-device allocation, and why half your fleet sits idle at 20% utilisation.
KubernetesMLOpsPlatformRead Article - 5 min read
SELECT FOR UPDATE SKIP LOCKED is a queue, until it isn't
Postgres makes a decent job queue for longer than most people expect. Here is what actually breaks first, and the specific throughput at which it stops being the right answer.
PostgreSQLBackendSystem DesignRead Article