
System Design
Building systems that survive production.
01System Design (1): Thinking in Systems — Load, Latency, and the Art of Estimation
Learn the foundational skills of system design: back-of-envelope estimation, availability math, SLA definitions, and a …
02System Design (2): DNS, CDN, and Load Balancing — The First Three Hops
Every web request begins with DNS resolution, may traverse a CDN edge, and lands on a load balancer before reaching your …
03System Design (3): API Design — REST, gRPC, GraphQL, and Choosing Wisely
A practical comparison of REST, gRPC, and GraphQL — covering protocol design, real-world trade-offs, rate limiting …
04System Design (4): Caching — Where to Cache, What to Evict, and When Caching Hurts
A deep dive into caching strategies across every layer of the stack — from CDN to database buffer pools — covering …
05System Design (5): Message Queues and Event-Driven Architecture
A practical guide to message queues and event-driven systems — covering Kafka and RabbitMQ architectures, delivery …
06System Design (6): Microservices vs Monoliths — The Honest Tradeoff
An honest assessment of monoliths vs microservices — covering the distributed systems tax, service boundary design with …
07System Design (7): Data Pipelines — Batch, Stream, and the Lambda Architecture
A practical guide to data pipeline architectures — covering ETL vs ELT, batch processing with Spark, stream processing …
08System Design (8): Case Studies — URL Shortener, Chat System, News Feed
Three complete system design walkthroughs — a URL shortener, a real-time chat system, and a news feed — each following …