System Design
Design scalable, reliable distributed systems.
1,919 lessons·First 10 free
- 1What Is System Design?Free
- 2Why System Design MattersFree
- 3System Design vs CodingFree
- 4The System Design Interview ContextFree
- 5Real-World vs Interview System DesignFree
- 6Components of a System Design SolutionFree
- 7The Iterative Nature of DesignFree
- 8Common Misconceptions About System DesignFree
- 9Functional vs Non-Functional: Core DistinctionFree
- 10Identifying Functional RequirementsFree
- 11Common Non-Functional Requirements OverviewPro
- 12Performance Requirements: Latency and ThroughputPro
- 13Scalability Requirements: Growth ExpectationsPro
- 14Availability and Reliability RequirementsPro
- 15Consistency Requirements and TradeoffsPro
- 16Security and Compliance RequirementsPro
- 17Eliciting Requirements in InterviewsPro
- 18Prioritizing Requirements Under ConstraintsPro
- 19Why Back-of-the-Envelope Estimation MattersPro
- 20Orders of Magnitude and Powers of 10Pro
- 21Latency Numbers Every Engineer Should KnowPro
- 22Throughput vs LatencyPro
- 23QPS and Daily Active Users EstimationPro
- 24Peak Traffic MultipliersPro
- 25Storage Estimation BasicsPro
- 26Bandwidth Estimation from Data SizePro
- 27Memory Requirements for CachingPro
- 28Server Count EstimationPro
- 29Database Size Growth ProjectionPro
- 30CDN Bandwidth and Cost EstimationPro
- 31Common Pitfalls in EstimationPro
- 32Rounding and Approximation TechniquesPro
- 33Putting It All Together: Worked ExamplePro
- 34Start Simple: The Minimum Viable DesignPro
- 35Iterate Based on ConstraintsPro
- 36YAGNI: You Aren't Gonna Need ItPro
- 37Prefer Boring TechnologyPro
- 38Design for ChangePro
- 39Trade-offs Over Best PracticesPro
- 40Measure Before OptimizingPro
- 41Progressive Enhancement PatternPro
- 42Document Your DecisionsPro