Chapter 9: Appendices & Reference

9.5 Appendix E: Study Plans

These plans structure your preparation based on your experience level and time available.

All plans assume you are using this handbook as the primary resource, supplemented by Grokking the System Design Interview for additional practice problems and video walkthroughs.

4-Week Study Plan (Engineers with Some Experience)

You already understand basic concepts like databases, APIs, and caching.

You need to deepen your knowledge, fill gaps, and practice applying concepts to interview problems.

Week 1: Core Building Blocks. Read Chapter II, Lessons (Networking, Storage, Caching, Load Balancing). Focus on the comparison tables and trade-off discussions. Complete estimation exercises from Chapter I. Practice problem: Design a URL Shortener.

Week 2: Advanced Building Blocks + System Properties. Read Chapter II, Lessons (CDN, Proxies, Message Queues). Read Chapter III, Lessons (Scalability, Availability). Practice problems: Design a Messaging System. Design a Notification System.

Week 3: Consistency, Architecture, and Advanced Topics. Read Chapter III, Lessons (Consistency, Architecture Patterns). Read Chapter IV, Lessons (Search, Unique IDs, Rate Limiting). Practice problems: Design a Social Media Feed. Design a Rate Limiter. Design a Distributed Cache.

Week 4: Interview Practice. Read Chapter VIII, Lesson 1 (The Interview Framework). Practice 6-8 problems from Chapter VIII, Lesson 2 under timed conditions (35 minutes each). Review solutions and identify gaps. Re-read the relevant chapters for any concepts you struggled with.

8-Week Study Plan (Beginners)

You have basic programming knowledge but limited exposure to system design concepts. This plan builds understanding from the ground up.

Weeks 1-2: Foundations. Read Chapter I (Introduction, Thinking Like a System Designer). Practice back-of-the-envelope estimation daily (5 minutes each). Read Chapter II, Lessons (Networking, Storage/Databases). Study the glossary terms for each chapter.

Weeks 3-4: Core Building Blocks. Read Chapter II, Lessons (Caching, Load Balancing, CDN, Proxies, Message Queues). For each lesson, draw the architecture diagrams from memory after reading. Practice problems: Design a URL Shortener. Design a Paste Service.

Weeks 5-6: System Properties and Architecture. Read Chapter III (Scalability, Availability, Consistency, Architecture Patterns). Read Chapter IV, Lessons (Search, Data Processing, Unique IDs, Rate Limiting). Practice problems: Design a Chat System. Design a Video Streaming Service. Design a Key-Value Store.

Week 7: Advanced Topics. Read Chapter IV, Lessons (Security, Distributed Concepts, Performance). Read Chapter V, Lesson (OOD Concepts) if OOD interviews are expected. Practice problems: Design a Social Media Feed. Design a Ride-Sharing Service.

Week 8: Interview Simulation. Read Chapter VIII, Lesson (Interview Framework). Practice 8-10 problems under timed conditions. Do at least 2 mock interviews with a friend or on a practice platform. Review all key takeaways from each chapter.

12-Week Deep-Dive Plan (Staff/Principal Level Preparation)

You have production system design experience.

You need to sharpen your ability to evaluate architectural alternatives, discuss trade-offs at depth, and demonstrate staff-level thinking.

Weeks 1-2: Refresh and deepen fundamentals. Skim Parts I-II for gaps. Focus on the sections that cover internal mechanisms: B+ tree indexing internals, Kafka partition management, consistent hashing, cache eviction algorithms. Read the recommended papers from Appendix D (at least the Dynamo, Raft, and Spanner papers).

Weeks 3-4: System properties and consistency. Deep-dive into Chapter III (all lessons). Focus on consistency models, CAP/PACELC trade-offs, consensus algorithms (understand Raft well enough to explain it on a whiteboard), and distributed transaction patterns (2PC, Saga). Practice: Design a Distributed Key-Value Store with tunable consistency.

Weeks 5-6: Architecture patterns and advanced topics. Chapter III, Lesson (all architecture patterns including cell-based and hexagonal). Chapter IV (Search, Data Processing, Distributed Patterns). Focus on understanding when to use each pattern and how to evaluate alternatives. Practice: Design a Payment System. Design a Stock Exchange.

Weeks 7-8: Modern and emerging topics. Chapter VII (AI/ML, LLM, Real-Time, Data-Intensive, Blockchain). Focus on the areas most relevant to your target companies. Practice: Design a Recommendation Engine. Design an LLM-Powered Customer Service Bot.

Weeks 9-10: OOD and infrastructure. Chapter V (OOD, Design Patterns, SOLID). Chapter VI (Cloud, CI/CD, Testing). Practice OOD problems: Design a Parking Lot. Design an LRU Cache. Practice system design with operational focus: monitoring, deployment strategies, disaster recovery.

Weeks 11-12: Interview simulation. Practice 12-15 problems under timed conditions, alternating between system design and OOD. Conduct mock interviews focusing on staff-level expectations: architectural alternatives, organizational considerations, and long-term system evolution. Review all key takeaways and the interview framework.

Daily Practice Schedule and Spaced Repetition Tips

Daily (20-30 minutes): Read one section of the handbook. After reading, close the book and write down the key takeaways from memory. Compare with the actual takeaways. This active recall is far more effective than re-reading.

Every other day (15 minutes): Practice one estimation exercise. "How much storage does Instagram need for photos per year?" "How many servers does a messaging system with 10M DAU need?" Speed and accuracy improve with practice.

Weekly (60-90 minutes): Complete one full practice problem under timed conditions. Sketch the design on paper before reviewing the solution.

Spaced repetition: Review the key takeaways from chapters you read last week. Concepts you recalled easily need less review. Concepts you struggled with need another pass. This spacing effect (reviewing at increasing intervals: 1 day, 3 days, 7 days, 14 days) is the most efficient way to move information into long-term memory.