System design interview time management cheat-sheet


This is a personal cheat-sheet for system design interviews. It is heavily based on System Design in a Hurry: Delivery Framework on Hello Interview.

Requirements (~5 minutes)

Things to cover:

  • functional requirements (top 3 and below other nice things).
  • non-functional requirements (top 3-5 and below other nice things). Use numbers, be specific about the part of the system that needs it.
  • capacity estimation (don’t do it in the beginning if it is not important. Then do as you go with the interview, just mention this).

Core Entities (~2 minutes)

These will help you understand what you will need databases for. Important questions:

  • Who are the actors in the system? Are they overlapping?
  • What are the nouns or resources necessary to satisfy the functional requirements?

API or System Interface (~5 minutes)

Choose REST 80% of the time.

Write which endpoints you would have. Include type of the request, query, body structure etc. Functional requirements should help understand which endpoints are needed.

[Optional] Data Flow (~5 minutes)

Done for some backend systems, especially data-processing systems (examples include log aggregation system, real-time analytics pipeline, recommendation system, data sync/migration system, CI/CD pipelines).

High Level Design (~10-15 minutes)

Tip: Ask your recruiter what software you'll be using for your interview and practice with it ahead of time. You don't want to be fumbling with the software during your interview.

Make it simple. Talk through the process. Don’t waste time writing every column of the database. Be verbal about how data flows through the system and what state (either in databases, caches, message queues, etc.) changes with each request, starting from API requests and ending with the response.

Deep Dives (~10 minutes)

What you can do:

(a) ensuring it meets all of your non-functional requirements

(b) addressing edge cases

(c) identifying and addressing issues and bottlenecks and

(d) improving the design based on probes from your interviewer.

Total time: ~42 min

General advice: listen to your interviewer, they may point on the topic they would like you to talk about. And keep design simple until the update is necessary.