4 Things: Problems, Concepts, Tidbits, Skim topics 2 Types: HLD vs LLD
Weekly Targets
| Week | Focus | What to Cover |
|---|---|---|
| Week 1 | Foundation + Interview Framework | HLD interview flow, requirements, APIs, scale estimation, SQL vs NoSQL, caching basics |
| Week 2 | Core Distributed Concepts | sharding, replication, consistency, CAP, ACID, indexes, load balancing, Bit.ly, Dropbox |
| Week 3 | Queues + Async Systems | PubSub, Kafka basics, queues, retries, idempotency, job scheduler, web crawler |
| Week 4 | Contention + Transactions | distributed locks, 2PC, Saga, Ticketmaster, hotel reservation, payment systems |
| Week 5 | Realtime + Feed Systems | WebSockets, realtime messaging, fanout, WhatsApp, FB News Feed, live comments |
| Week 6 | Storage + Search + Geo | object storage, time-series DB, indexing, geo systems, Uber, Google Docs |
| Week 7 | LLD + Mixed Design Reps | SOLID, OOP, design patterns, parking lot, elevator, cache, feature flags |
| Week 8 | Mock Interviews + Final Revision | full mocks, weak-area repair, reusable building blocks, confidence reps |
Assumptions
- Goal is interview-ready system design thinking, not memorization
- Problems, Concepts, Tidbits, and Skim Topics will run together
- Problems → deep practice + articulation
- Concepts → strong understanding + tradeoffs
- Tidbits → lightweight familiarity + conversational understanding
- Skim Topics → recognition-level awareness only
- Not every system design problem needs full implementation depth
- Reusable building blocks matter more than memorizing architectures
- Most systems are combinations of:
- caching
- queues
- storage
- indexing
- partitioning
- consistency models
- realtime communication
- Mock interviews and articulation practice are mandatory
- LLD focus is practical engineering maturity, not memorizing all GoF patterns
- Communication quality is part of system design evaluation
- Existing real-world engineering experience should be leveraged aggressively
System Design Affirmation
Goal is not just drawing boxes. Goal is demonstrating senior/staff-level engineering thinking.
For every design:
- Clarify requirements and constraints
- Estimate scale before designing
- Explain tradeoffs continuously
- Think in reusable building blocks
- Discuss bottlenecks and failure handling
- Explain why a component exists
- Evolve the system step-by-step
Strong candidates:
- communicate clearly under ambiguity
- prioritize practical solutions
- reason about scaling gradually
- discuss tradeoffs calmly
- connect concepts to real systems
- guide the interviewer through decisions
For distributed systems concepts:
- focus on intuition first
- implementation depth only where useful
- attach concepts to real systems immediately
For LLD:
- prioritize extensibility, maintainability, and clarity
- prefer clean interfaces over pattern memorization
- discuss tradeoffs instead of overengineering
Remember:
Structured thinking > complex architecture.
Consistency > binge studying.
Confidence comes from repeated articulation and mock discussions.