System Design & Distributed Systems
FAANG Senior Interview Prep — from fundamentals to classic design problems and advanced distributed systems theory
Phase 1 — Foundations (Weeks 1-2)
How to approach SD interviews, framework, trade-offs
TCP/UDP, HTTP, DNS, CDN, WebSockets
REST, gRPC, GraphQL, webhooks, long polling, SSE
SQL vs NoSQL, ACID, BASE, data modeling
Phase 2 — Core Building Blocks (Weeks 3-5)
L4/L7 LB, algorithms, health checks, HAProxy/Nginx
Cache strategies, eviction, Redis, Memcached, CDN caching
Indexing, sharding, replication, partitioning, query optimization
Kafka, RabbitMQ, SQS, pub/sub, event-driven architecture
Hash rings, virtual nodes, partition strategies
Phase 3 — Distributed Systems Theory (Weeks 6-8)
CAP, PACELC, strong/eventual/causal consistency
Paxos, Raft, ZAB, leader election, split brain
Single-leader, multi-leader, leaderless, quorum
2PC, 3PC, Saga pattern, TCC, idempotency
Lamport clocks, vector clocks, HLC, causality
Phase 4 — Scalability Patterns (Weeks 9-11)
Vertical vs horizontal, stateless services, auto-scaling
Service decomposition, API gateway, service mesh, sidecar
Token bucket, leaky bucket, sliding window, distributed RL
UUID, Snowflake, ULID, Twitter Snowflake, DB sequences
Bloom filter, Count-Min Sketch, HyperLogLog
Phase 5 — Storage & Data Systems (Weeks 12-14)
S3, HDFS, GFS, blob storage
Inverted index, Elasticsearch, full-text search, ranking
InfluxDB, TimescaleDB, ClickHouse, OLAP vs OLTP
Batch vs stream, MapReduce, Spark, Flink, data lake
Phase 6 — Reliability & Observability (Weeks 15-16)
SLA/SLO/SLI, failure modes, circuit breaker, bulkhead, retry
Prometheus, Grafana, ELK, distributed tracing, alerting
AuthN/AuthZ, OAuth2, JWT, mTLS, zero trust
Phase 7 — Classic FAANG Design Problems (Weeks 17-22)
TinyURL, hash generation, analytics
Distributed rate limiting, Redis-based
Dynamo-style, consistent hashing, conflict resolution
Push, email, SMS, fanout, priority, templates
WhatsApp/Messenger, presence, delivery receipts, E2E
Facebook/Twitter feed, fanout-on-write vs read, ranking
Video upload, transcoding, streaming, CDN, recommendations
Web crawler, indexing, PageRank, serving
Geo-spatial, matching, ETA, surge pricing
Tweets, timeline, trends, search
File sync, chunking, dedup, conflict resolution
BFS crawling, URL frontier, politeness, dedup
Trie, prefix search, ranking, real-time suggestions
Memcached/Redis cluster, consistent hashing, replication
Concurrency, seat locking, payment, consistency
Stripe-like, idempotency, reconciliation, ledger
Phase 8 — Advanced & Frontier Topics (Weeks 23-24)
CRDTs, operational transforms, collaborative editing
SWIM, gossip dissemination, failure detection
Multi-region, active-active, latency optimization
Feature store, model serving, A/B testing infra
The 4-step framework, time management, communication
Notes & Resources
Resources
Books
- "Designing Data-Intensive Applications" (DDIA) by Martin Kleppmann — THE bible
- "System Design Interview" Vol 1 & 2 by Alex Xu — most interview-focused
- "Understanding Distributed Systems" by Roberto Vitillo — practical intro
- "Database Internals" by Alex Petrov — deep dive on storage engines
- "Building Microservices" by Sam Newman — microservices patterns
Online
- system-design-primer (GitHub)
- ByteByteGo Newsletter
- Grokking the System Design Interview (Educative)
- MIT 6.824 Distributed Systems
How to Use
- Read each topic — understand concepts deeply, don't just memorize
- Practice designs on paper/whiteboard — simulate interview conditions
- Time yourself — 35-40 min per design, leave 5 min for Q&A
- Teach it back — if you can't explain it simply, you don't understand it