System design interviews feel open-ended, which is exactly why a structure helps. Interviewers consistently tell me the same thing: the candidates who impress them are the ones who slow down at the start.
Here's how I'd spend the first ten minutes of a 45-minute round.
Minutes 0–3: functional requirements
Ask what the system must do, and get agreement on a short list. For a URL shortener:
- Create a short link from a long URL
- Redirect a short link to the original
- Optional: custom aliases, expiry, click analytics
Then explicitly park the optional ones: "I'll design for the first two and leave hooks for analytics." Scoping is a senior skill.
Minutes 3–5: non-functional requirements
This is where the design actually comes from. Ask about:
- Scale — writes per second, reads per second
- Latency — is a redirect allowed to take 200 ms?
- Availability vs consistency — is a stale redirect acceptable for a few seconds?
- Durability — can we ever lose a link?
Minutes 5–7: back-of-the-envelope estimates
Keep it rough and fast. The goal is to discover which part of the system is hard.
- 10k writes/sec → ~860M new links a day
- 100:1 reads → ~1M redirects/sec at peak
- ~500 bytes per record → ~430 GB a day before replication
Now you know: reads dominate, storage grows fast, and caching is going to matter more than anything else.
Minutes 7–10: the API and data model
Write the contract before the boxes:
POST /shorten { url, alias?, ttl? } -> { code }
GET /:code -> 301 Location: <url>And the core record: code, url, created_at, expires_at, owner_id. Two minutes here makes every later component easier to justify.
Then, and only then, draw
With requirements, numbers and an API agreed, the high-level design almost draws itself: a stateless app tier, a key-value store partitioned by code, a cache in front for hot links, and an async pipeline for analytics.
The one-line summary
The interviewer isn't looking for the "right" architecture. They're looking for someone who asks good questions, makes reasonable assumptions, and can explain every box on the board. The first ten minutes is where you prove it.