System Design Visualized
Lesson 3.4

Step 2: Propose a high-level design and get buy-in

Play this lessonThis lesson comes with an interactive animation you can break, a live-code challenge and a chapter quiz.

Now develop a high-level design together with the interviewer. Treat them as a teammate.

  • Draft an initial blueprint and ask for feedback.
  • Draw box diagrams with the key components: clients (mobile/web), APIs, web servers, data stores, cache, CDN, message queue…
  • Do back-of-the-envelope calculations to check the blueprint fits the scale. Think out loud.
  • If possible, walk through a few concrete use cases. This often reveals edge cases.
  • Should you include API endpoints and the database schema? It depends on the problem. For "design Google search" that's too low-level; for a news feed it's fine.

For the news feed, the design splits into two flows: feed publishing and news feed building.

Key takeaways

  • Boxes and arrows first; details later.
  • Check the blueprint against estimates.
  • Get the interviewer's agreement before going deeper.

Remember it, then prove it

Create a free account to save your progress, get spaced-repetition reviews of what you miss, and design real systems in the interview simulator.

Start free