🏗️
System Design L4 PRO · 105 lessons What FAANG-tier interviews actually ask
105 lessons across 6 modules: fundamentals (Big-O, capacity math), scalability & caching, databases & storage, messaging & microservices, and real-world case studies (Twitter feed, Netflix, Uber dispatch, Stripe webhooks, Calendly race conditions).
✅ Before you start
· Built at least one app that talks to a database. SQL basics expected · Know what HTTP / TCP / DNS do at a sentence level. We'll deep-dive each · Open to drawing on paper or tldraw — we sketch box-and-arrow constantly ℹ️ Heads-up on the format: These lessons are concept explanations + quizzes + predict-the-output exercises. The code samples don't execute in your browser because Pyodide can't spin up an HTTP server / database / TCP socket. To run them, copy snippets into your own machine — or pair this track with Foundations (which DOES run live in-browser via Skulpt).
🗺 Map 📚 Curriculum
🔒 Latency numbers every engineer should know
🔒 Vertical vs horizontal scaling
🔒 Caching: when, where, what
🔒 Sharding (horizontal partitioning)
🔒 CDN: edge caching for static assets
🔒 Microservices vs monolith
🔒 Mock interview: design URL shortener
🔒 Distributed locks (Redlock pattern)
🔒 Service discovery (DNS vs registry)
🔒 API Gateway at scale: routing, auth, rate-limit, observability
🔒 🎯 Review: System design module 1 recap
🔒 CQRS (Command Query Responsibility Segregation)
🔒 Sagas for distributed transactions
🔒 Read-through vs write-through cache
🔒 Cache stampede prevention (singleflight)
🔒 Eventual consistency in practice
🔒 Optimistic vs pessimistic concurrency
🔒 Designing a URL shortener at 100K req/s
🔒 Designing a feed (Twitter/Instagram timeline)
🔒 Designing a chat system (WhatsApp scale)
🔒 Designing rate-limited search
🔒 Designing a notification fanout
🔒 Capstone: design a multi-tenant SaaS
🔒 CDN tier design: push vs pull, cache invalidation
🔒 WebSocket scaling: sticky sessions vs broker
🔒 Pub/Sub patterns: Kafka, NATS, Redis pub/sub
🔒 Backpressure in streaming: windowing, dropping, buffering
🔒 Database choice cheatsheet
🔒 🎯 Review: System design module 2 recap
🔒 Data partitioning vs sharding nuances
🔒 Read-your-writes consistency
🔒 Linearizability vs eventual consistency
🔒 Two-phase commit (and why it's mostly avoided)
🔒 Schema evolution (forward/backward compatibility)
🔒 Multi-region deployment (active-active vs active-passive)
🔒 Disaster recovery: RPO and RTO
🔒 Designing a video upload + transcoding pipeline
🔒 Designing a payment system
🔒 Designing a recommendation system
🔒 Designing search autocomplete
🔒 Designing a distributed task scheduler
🔒 Designing a typeahead/search API for product catalog
🔒 Designing a content moderation pipeline
🔒 Capstone: design Uber/Lyft-style ride matching
🔒 Lambda vs Kappa architectures
🔒 Change Data Capture with Debezium
🔒 Event sourcing — state is a fold over events
🔒 CQRS — separate read and write models
🔒 Saga pattern — distributed transactions
🔒 🎯 Review: System design module 3 recap
🔒 Outbox pattern — atomic 'commit + publish'
🔒 Service mesh — mTLS + observability for free
🔒 Multi-tenant data isolation
🔒 Distributed rate limiting via Redis Lua
🔒 SSE vs WebSocket vs long-poll
🔒 Push notification fan-out at scale
🔒 Search architecture — when to reach for Elasticsearch
🔒 Predict: back-of-envelope for global LB
🔒 S3 lifecycle — when to move to Glacier
🔒 Scenario: cross-region failover drill
🔒 RPO vs RTO — pick your tradeoffs
🔒 FinOps — attribute and right-size
🔒 🏆 Capstone — global SaaS for 10M MAU
🔒 🎯 Review: System design module 4 recap
🔒 Design URL shortener: capacity math first
🔒 Design newsfeed (Twitter/X timeline)
🔒 Design chat (WhatsApp scale)
🔒 Design Uber: ride-matching at scale
🔒 Design Netflix video streaming
🔒 Design Stripe payments idempotency
🔒 Design Google Docs: collaborative editing
🔒 Design Instagram photo upload
🔒 Design feature flags service
🔒 Design Slack notifications
🔒 Design search: Elasticsearch architecture
🔒 Design CDN cache invalidation
🔒 Design Spotify recommendations
🔒 Design email service (SendGrid scale)
🔒 Design Kafka: log-as-broker
🔒 Design GitHub Actions: CI dispatch
🔒 Design Calendly: scheduling collisions
🔒 Design Stripe webhooks: at-least-once delivery
🔒 Design log aggregation (Datadog scale)
🔒 Design observability (SLOs and error budgets)
🔒 🏆 System Design final capstone
Tip: click any lesson to revisit it. After your first attempt, the “Show example” button reveals the full solution.