Skip to content

System Design Notes

My working notes from preparing for system design interviews. Each problem is written as the questions an interviewer would ask, with the answers I would give.

Eight classic problems, each broken into the questions that come up in a real interview: requirements, core entities, API, high-level design, then the deep dives that separate a pass from a strong pass.

  • Ticketmaster: consistency for bookings, availability for search
  • Uber: geospatial matching and fare estimation
  • Web Crawler: fault tolerance, politeness, deduplication
  • TinyURL: key generation, redirects, read-heavy scaling
  • Google Docs: real-time collaboration and conflict resolution
  • Tinder: swipe stacks, matching, location
  • Dropbox: chunked uploads, sync, metadata
  • LeetCode: sandboxed code execution and live leaderboards

Some pages mix English and Chinese. That’s how I took the notes, and I’ve left them that way.