Tech Interview Preparation Module 7 – LLD and system design rounds
Running a 45-minute system design round
Lead a 45-minute system design round from requirements to deep dives, with a block-by-block plan and an original ticketing prompt worked through.
What you will learn
- Run a design conversation yourself, from the first requirement to the last trade-off
- Plan the 45 minutes across requirements, estimates, API, data model, design and deep dives
- Draw diagrams an interviewer can follow while you talk
- Distinguish a systems design round from a product or API design round, and plan the minutes of each
Before you start
What you’ll learn · Before you start
What you will learn
- Run a design conversation yourself, from the first requirement to the last trade-off
- Plan the 45 minutes across requirements, estimates, API, data model, design and deep dives
- Draw diagrams an interviewer can follow while you talk
- Distinguish a systems design round from a product or API design round, and plan the minutes of each
Before you start
On this page
Meta’s guide gives its design interview 45 minutes and says the question “will be something very high-level and it will be up to you to drive the conversation.” Nobody designs a whole system in 45 minutes; the round scores where you spend them, and whether the interviewer can follow you from the first requirement to the last trade-off.
Here the minutes are laid out block by block on an original prompt, ticket sales for a college festival, with the estimates worked out by a program you can run and the order that keeps the interviewer with you.
Not affiliated
MySmartCoPilot is independent of the employers named here; how they describe their design rounds is taken from their own pages, listed under References.
A 45-minute plan, and the order that keeps the interviewer with you
Seven blocks cover a round: 5 minutes of requirements, 3 of estimates, 5 for the API, 5 for the data model, 12 for the high-level design, 12 for deep dive: The part of a design round in which you take one component of your design in detail, with its data, its failure cases and the trade-offs of each choice. and 3 to wrap up (MySmartCoPilot’s recommendation). Walk through them:
- Minutes 0–5
Requirements, written where both of you can see them
Say the prompt back, then ask for the functional requirements, what users do, and the non-functional ones, how many users, how fast and how available. The two lists become the contract for the rest of the round.
- Minutes 5–8
Estimates that change a decision
Work out only the numbers that choose between designs, such as peak requests a second, writes a second and the size of the data, and say what each one decides.
- Minutes 8–13
The API
Name the calls the clients make, with their inputs and outputs, starting with the main path. These are what every box you draw later must serve.
- Minutes 13–18
The data model
List the entities, their keys and the one query each must answer quickly, and say which data must never be lost or sold twice.
- Minutes 18–30
The high-level design the first full picture
Draw five to seven boxes and walk the main write path, then the read path, numbering the arrows as you speak.
- Minutes 30–42
Deep dives into one or two risky parts
Take the parts the estimates said are hard, with their failure cases and the trade-off of each choice, and let the interviewer pick if they have a preference.
- Minutes 42–45
Wrap-up
Name the bottleneck at ten times the load, what fails first and what you would build next, in three sentences.
The timeline has 7 events, from Minutes 0–5 to Minutes 42–45.
The order is the point. Each block hands the next what it needs: the requirements say what to estimate, the estimates say which part is hard, the API and the data model say what the boxes must serve, and the deep dives go where the numbers pointed. Amazon’s SDE III page asks for the same habits: treat the interviewer as a customer, note your assumptions, and ask what twice or ten times the growth would do to the design.
Here are the back-of-the-envelope estimate: A quick calculation in round numbers, such as requests a second, writes a second or gigabytes of data, made to find out which parts of a design will be hard. for the festival prompt, three concert nights of 4,000 seats, 30,000 students who may buy up to two tickets each, and sales that open at six in the evening:
"""Back-of-envelope estimates for the festival ticketing prompt, and what each one decides."""
STUDENTS = 30_000 # who may buy
NIGHTS, SEATS_PER_NIGHT = 3, 4_000
MAX_PER_BUYER = 2
ARRIVE_SHARE = 0.6 # share of students who try in the first two minutes
ARRIVE_SECONDS = 120
REQUESTS_PER_BUYER = 6 # event page, seat map, hold, pay, confirm, ticket
WRITES_PER_BUYER = 2 # the hold and the payment confirmation
PEAK_FACTOR = 2 # the first 30 seconds run at twice the average
TICKET_BYTES, BUYER_BYTES = 500, 1_000
seats = NIGHTS * SEATS_PER_NIGHT
buyers = round(STUDENTS * ARRIVE_SHARE)
peak_requests = buyers * REQUESTS_PER_BUYER / ARRIVE_SECONDS * PEAK_FACTOR
peak_writes = buyers * WRITES_PER_BUYER / ARRIVE_SECONDS * PEAK_FACTOR
asked = buyers * MAX_PER_BUYER
storage_mb = (seats * TICKET_BYTES + STUDENTS * BUYER_BYTES) / 1_000_000
print(f"{'seats on sale':<28}{seats:>8,}")
print(f"{'buyers in the first 2 min':<28}{buyers:>8,}")
print(f"{'requests a second, peak':<28}{peak_requests:>8,.0f}")
print(f"{'writes a second, peak':<28}{peak_writes:>8,.0f}")
print(f"{'seats asked for':<28}{asked:>8,} ({asked / seats:.1f} per seat)")
print(f"{'data to store':<28}{storage_mb:>5.0f} MB")
print()
print(
f"- {peak_requests:,.0f} requests a second: a few app servers, one load balancer."
)
print(f"- {peak_writes:,.0f} writes a second on {seats:,} seat rows: one database.")
print(
f"- {asked / seats:.0f} seats asked for each seat sold: fairness is the hard part,"
)
print(" so the deep dives go to the queue and the holds, not to throughput.") Output
seats on sale 12,000 buyers in the first 2 min 18,000 requests a second, peak 1,800 writes a second, peak 600 seats asked for 36,000 (3.0 per seat) data to store 36 MB - 1,800 requests a second: a few app servers, one load balancer. - 600 writes a second on 12,000 seat rows: one database. - 3 seats asked for each seat sold: fairness is the hard part, so the deep dives go to the queue and the holds, not to throughput.
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 festival_estimates.py
Runs on this device, in your browser. The first run downloads Python (about 13.5 MB), which is kept for the next runs.
Your run, in this browser
Three minutes of arithmetic move the whole round. At 1,800 requests a second at the peak and 600 writes a second on 12,000 seat rows, one database is enough, so sharding never needs a minute; three seats asked for each seat on sale make fairness the hard part, so the deep dives go to the queue and the holds.
Design rounds also come in more than one kind. A systems design round weighs distributed systems, scale and performance, while a product architecture round weighs the API, data ownership and the client-server design.
Key idea
Spend each block on what the next block needs, and spend the deep dives where the estimates say the design is hard.
Checkpoint
Check: The 45-minute plan and its order
The festival round, minute by minute, with the interviewer’s notes Pro: opens with a Pro, Premium or Ultimate pass
In this part:
- The same prompt run badly: a message queue at minute 2
- Diagrams an interviewer can follow while you talk
- Systems design, product architecture and API rounds: what changes
- Finding the missing step in a transcript
- A self-mock with a rubric
- Practise: the plan, the round and its kinds
- Interview questions
- How do you start a system design interview?
- Twelve minutes are left for deep dives, and you can see three risky parts in your design. How do you choose what to go deep on, and what do you say about the parts you leave?
- Your estimate says the system needs about 200 requests a second, but the interviewer seems to expect a large distributed design. What do you do?
- Your recruiter tells you that the design round is product architecture rather than systems design. How do your preparation and your 45-minute plan change?
- Key takeaways
2 diagrams · 1 runnable example (Python) · 3 interview answers · about 26 minutes
Opening this part with your pass…
This part opens with any MySmartCoPilot pass.
- Pro pass · 1 week₹79$2.99
- 30 days₹179$5.99
- 1 year₹1,699$45
One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.
Passes can’t be bought right now, so this part can’t be opened at the moment. The free part above stands on its own. If you have a pass, enter your licence key.
It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).
Terms in this lesson
- back-of-the-envelope estimate
- A quick calculation in round numbers, such as requests a second, writes a second or gigabytes of data, made to find out which parts of a design will be hard.
- deep dive
- The part of a design round in which you take one component of your design in detail, with its data, its failure cases and the trade-offs of each choice.
References
- Software Engineer Full Loop Interview Guide: the design interview (linked from the onsite preparation page) (Meta Careers)
- SDE III interview preparation: system design, high-level and low-level design (Amazon.jobs)
- SDE II interview preparation: the system design question (Amazon.jobs)
- Remote interviewing: drawing and whiteboard tools (Amazon.jobs)
- Atlassian engineering interview guide: the systems design interview (Atlassian)
Related tools
Report a problem with this lesson
Kept only in this browser. Your Learn progress