System Design
Concepts, LLD, HLD and a 15-day plan.
1. Fundamentals & Estimation
Requirements gathering, back-of-envelope estimation, latency numbers, availability math, SLI/SLO/SLA, CAP/PACELC and consistency models, plus estimation and trade-off scenarios.
2. Scalability, Caching & Load Balancing
Horizontal scaling, load-balancing algorithms, CDN, caching patterns, sharding, consistent hashing, replication, partitioning, rate limiting and API gateway design with scaling scenarios.
3. Data Stores & Messaging
SQL vs NoSQL selection, Kafka vs RabbitMQ vs SQS, delivery semantics, outbox, event sourcing and CQRS, idempotency, ordering and backpressure with design scenarios.
4. Microservices & Resilience
Service boundaries, discovery, sagas, circuit breakers, bulkheads, retries, tracing, deployment strategies, consensus, distributed locks and observability with failure scenarios.
5. Low-Level Design
Object-oriented design theory (SOLID, patterns, approach framework) and 20 classic LLD problems in Java - parking lot, elevator, LRU, rate limiter, Splitwise, BookMyShow, chess and more.
6. High-Level Design
Twenty end-to-end system design walkthroughs - URL shortener, news feed, chat, payments, web crawler, distributed cache, ticket booking, job scheduler and more - with requirements, estimates, APIs, data models, diagrams, trade-offs and failure modes.
7. 15-Day Strategy & Interview Framework
A practical plan and framework for system design interviews - step-by-step approach, estimation, trade-off communication, common mistakes, a day-by-day 15-day schedule and a mock interview checklist.