The System Design Interview for Senior Engineers
A guided, multi-course journey that builds this skill from the ground up. Work through the chapters in order, or jump to any lesson.
Progress0%
Why Systems Become Distributed: Benefits and CostsScaling: Vertical, Horizontal, and Partitioning BasicsAvailability, Reliability, and Single Points of FailureSLIs, SLOs, and Error Budgets as Design InputsConsistency Under Replication Lag and Network PartitionsLatency, Throughput, and Tail LatencyLittle’s Law: From QPS to Concurrency and OverloadOperability and Cost as Design Constraints
Building Blocks of System Design: Mapping Requirements to ComponentsDNS, TCP, and TLS: The Network Path Before Your ServiceLoad Balancing: Health Checks, Routing Algorithms, and Failure DomainsCaching and CDNs: Placement, Invalidation, and FreshnessDatabases: SQL vs. NoSQL, Replication, and ShardingObject Storage and Key-Value Stores: Separating Metadata From ContentMessage Queues and Pub/Sub: Decoupling, Backpressure, and Delivery GuaranteesRate Limiting Algorithms and Distributed CountersObservability: Metrics, Logs, and Traces Tied to SLIs