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.

0 of 11 done

Lessons, in order

  1. 8.1

    Design a URL shortener (like bit.ly)

    Must knowHLD

    Turn long URLs into short links, like bit.ly/x7Kp2a, that redirect to the original.

  2. 8.2

    Design a distributed rate limiter

    Must knowHLD

    A service that limits how many requests each client can make, enforced consistently across many API servers.

  3. 8.3

    Design a notification system

    Must knowHLD

    Send notifications (mobile push, SMS, email) to users reliably, at large scale.

  4. 8.4

    Design a chat app (like WhatsApp)

    Must knowHLD

    One-to-one and group messaging, with delivery receipts and online status.

  5. 8.5

    Design a news feed (like Twitter or Instagram)

    Must knowHLD

    Show each user a feed of recent posts from the people they follow.

  6. 8.6

    Design a video streaming platform (like YouTube or Netflix)

    Must knowHLD

    Upload, process and stream videos to millions of viewers.

  7. 8.7

    Design a ride-hailing app (like Uber)

    Should knowHLD

    Match riders with nearby drivers in real time, track trips and charge fares.

  8. 8.8

    Design a payment system

    Must knowHLD

    Process payments reliably: charge customers, record every money movement, and never lose money or charge twice.

  9. 8.9

    Design search autocomplete

    Should knowHLD

    Suggest the top completions as the user types into a search box.

  10. 8.10

    Design a real-time leaderboard

    Should knowHLD

    Show live rankings of players by score, including each player's own rank.

  11. 8.11

    Design a distributed cache

    Should knowHLD

    A shared in-memory key-value cache, like Redis or Memcached, spread across many machines.