Our sale goes live at midnight and last year the site fell over in the first four minutes. You have six weeks. How do you design for this year's spike?
What they are really testing: They want to see if you can reason about a step function in load rather than gradual growth, and whether you know that autoscaling does not help you in the first sixty seconds.
A real interview question
Our sale goes live at midnight and last year the site fell over in the first four minutes. You have six weeks. How do you design for this year's spike?
What most people say
drag me
“I would set up autoscaling and add more instances, and put a CDN in front so it can handle the traffic.”
Autoscaling reacts in minutes and the outage happened in four, so this answer does not engage with the actual failure, and it never names which component broke or what gets sacrificed under load.
The follow-ups they ask next
The waiting room itself gets hammered at midnight. Now what?
Keep it dumb and static, serve it from the CDN as an edge rendered page with a token, and make sure it holds no per user state in the origin.
How do you decide what to turn off first?
Rank features by revenue contribution per unit of load, then shed the expensive low value ones first, and agree that ranking with product before the day, not during the incident.
What the interviewer is listening for
- Asks for last year's peak and the exact component that failed
- Says explicitly that autoscaling cannot answer a step function and pre warms instead
- Protects checkout and degrades everything else behind flags
- Load tests above last year's peak to find the next bottleneck
What sinks the answer
- Reaches for autoscaling as the whole answer
- Adds caching without saying what staleness is acceptable
- Cannot name a single feature they would sacrifice on the night
- Never load tests, so the plan is a hypothesis on the biggest revenue day of the year
If you genuinely do not know
Say this instead of freezing. Reasoning out loud from what you do know beats silence every single time, and a good interviewer is listening for exactly that.
“I have not owned a sale day yet, but here is the reasoning I would use. I would get last year's peak and the exact failure point, pre warm rather than autoscale, protect checkout, and agree in advance which features we switch off if it hurts.”
Keep going with system design
Mid
Design a log and metrics ingestion pipeline for a platform with about 200 services. Engineers need to search logs and alert on metrics.
Mid
Design an image upload and processing service for a marketplace app. Users upload photos from their phone, and we need thumbnails and a moderation check before the listing goes live. Walk me through it.
Senior
Design an event-driven order processing system for an e-commerce site. Payment, inventory, and shipping are separate services.
Senior
Design an analytics pipeline that produces a daily report for the leadership team by 8am. The data comes from a production database and a stream of app events.
Senior
Design a system that must never lose a message. It ingests payment notifications from a partner and each one must be processed exactly once.
Senior
We have about 50 product teams and every one of them has rolled their own pipeline. Design a CI/CD platform that all 50 can use. Take me through it.
Knowing the answer is not the same as recalling it under pressure
Sign in to send the questions you fumble to spaced recall, so they come back right before you would forget them, and learn the concepts behind them with hands-on labs.
Start free