Phase 8 of 9 · 11 lessons
High-level design questions
Practise the classic HLD questions with the full framework: requirements, estimates, API, data model, design, deep dives and trade-offs.
Each question reuses the core concepts. URL shortener is caching and IDs; chat is real-time connections and partitioning; news feed is fan-out; payments are transactions and idempotency. Try each one yourself for 30 minutes before reading the notes.
Lessons, in order
-
8.1
Design a URL shortener (like bit.ly)
Turn long URLs into short links, like bit.ly/x7Kp2a, that redirect to the original.
-
8.2
Design a distributed rate limiter
A service that limits how many requests each client can make, enforced consistently across many API servers.
-
8.3
Design a notification system
Send notifications (mobile push, SMS, email) to users reliably, at large scale.
-
8.4
Design a chat app (like WhatsApp)
One-to-one and group messaging, with delivery receipts and online status.
-
8.5
Design a news feed (like Twitter or Instagram)
Show each user a feed of recent posts from the people they follow.
-
8.6
Design a video streaming platform (like YouTube or Netflix)
Upload, process and stream videos to millions of viewers.
-
8.7
Design a ride-hailing app (like Uber)
Match riders with nearby drivers in real time, track trips and charge fares.
-
8.8
Design a payment system
Process payments reliably: charge customers, record every money movement, and never lose money or charge twice.
-
8.9
Design search autocomplete
Suggest the top completions as the user types into a search box.
-
8.10
Design a real-time leaderboard
Show live rankings of players by score, including each player's own rank.
-
8.11
Design a distributed cache
A shared in-memory key-value cache, like Redis or Memcached, spread across many machines.