Skip to content

Requirements Clarification (Step 1 Deep Dive) โ€‹

AdvancedAdvanced3+ yrs experience Deep technical material โ€” distributed-systems theory, low-level implementation details, and case studies of real production systems.Prerequisites: Production experience with at least one distributed system. Comfort reading research papers and RFCs.

Time Budget: 5โ€“10 minutes โ€” The most critical phase. Never skip it.

The goal of this phase is to transform a vague, open-ended prompt (e.g., "Design Twitter") into a well-scoped, concrete problem you can actually solve in 45 minutes.


Why It Matters โ€‹

Interviewers intentionally give you an ambiguous prompt. They want to observe:

  • Do you make assumptions or ask questions?
  • Can you prioritize features under constraints?
  • Do you understand the difference between functional and non-functional requirements?

A candidate who jumps straight into drawing boxes has already lost points before writing a single line.


The Clarification Flow โ€‹


The 4 Question Buckets โ€‹

Organize your clarifying questions into these four categories:

BucketGoalExample Questions
๐ŸŸฃ FeaturesScope what to buildWhat are the must-have features? What can we skip?
๐Ÿ”ต UsersUnderstand traffic patternsWho uses this? Are they mobile or web? Authenticated?
๐ŸŸก ScaleDrive technical decisionsHow many users? Reads per second? Writes per second?
๐Ÿ”ด ConstraintsAvoid wrong choicesAny SLA? Budget? Specific latency limits?

Worked Example: Design a URL Shortener โ€‹

Interviewer: "Design a URL Shortener like bit.ly."

Step A โ€” Ask About Features โ€‹

You: "Before I dive in, I want to make sure I understand the scope. Should I focus on the core URL shortening and redirection, or do we also need analytics, custom aliases, and expiration?"

Interviewer: "Focus on shortening a URL, redirecting users, and let's add custom aliases. Skip analytics for now."

โœ… Functional Requirements confirmed:

  • Given a long URL, generate a short URL (e.g., sho.rt/abc123)
  • Redirect a user who visits the short URL to the original long URL
  • Users can optionally specify a custom alias (e.g., sho.rt/my-brand)
  • Short URLs expire after a configurable time (default: 1 year)

Step B โ€” Ask About Users & Scale โ€‹

You: "What's the expected scale? Are we building this for a startup or something like bit.ly at full production scale?"

Interviewer: "Let's assume 100 million URLs shortened per day and 10 billion redirects per day."

๐Ÿ“Š Back-of-envelope estimation:

text
Writes (URL Shortening):
  100M URLs/day รท 86,400 sec/day โ‰ˆ ~1,160 writes/sec

Reads (Redirects):
  10B redirects/day รท 86,400 sec/day โ‰ˆ ~115,700 reads/sec

Read-to-Write Ratio:  ~100:1  โ†’ Read-heavy system

Storage (10 years):
  100M URLs/day ร— 365 ร— 10 = 365 Billion URLs
  Each record ~500 bytes โ†’ ~182 TB of data

Step C โ€” Ask About Constraints & Non-Functionals โ€‹

You: "Any latency requirements for the redirect? And should we optimize for high availability or strict consistency?"

Interviewer: "Redirects should be fast, under 50ms ideally. High availability is more important than perfect consistency."

โœ… Non-Functional Requirements confirmed:

RequirementValue
Availability99.99% (four nines)
Redirect Latency< 50ms (P99)
ConsistencyEventual (acceptable)
DurabilityURLs must never be lost
Scale~100K reads/sec at peak

The Scoped Problem (Output of Step 1) โ€‹


The Dialogue Pattern โ€‹

Here is how a real Requirements Clarification conversation sounds, broken down beat-by-beat:


Red Flags vs. Green Flags โ€‹

๐Ÿ”ด Red Flag (What NOT to do)๐ŸŸข Green Flag (What TO do)
Jump straight into drawing boxesAsk clarifying questions first
Build everything (feature creep)Explicitly agree on what's out of scope
Assume scale without askingEstimate DAU/MAU/RPS based on numbers given
Skip summarizing requirementsRepeat requirements back to the interviewer
Treat all requirements equallyPrioritize must-haves vs. nice-to-haves
Ask 10+ questions in a rowGroup questions logically, ask 2-3 at a time

Quick Reference Cheat Sheet โ€‹

text
FUNCTIONAL                          NON-FUNCTIONAL
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€   โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
What the system DOES                How the system PERFORMS
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€   โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โœ“ Feature list (user stories)       โœ“ Latency (< 50ms P99)
โœ“ API surface (endpoints)           โœ“ Throughput (100K req/sec)
โœ“ Data the system stores            โœ“ Availability (99.99%)
โœ“ User interactions                 โœ“ Consistency (strong / eventual)
                                    โœ“ Durability (data never lost)
                                    โœ“ Scalability (10x growth plan)

Next Steps โ€‹

Once requirements are clear, move to Step 2: Back-of-the-Envelope Estimation โ†’ where you estimate the scale, throughput, and storage required for your system.

TIP

Always keep your non-functional requirements visible (written on the whiteboard or noted down). They act as guardrails throughout the rest of your design.

WARNING

Spending more than 10 minutes on clarification is a red flag. Be efficient โ€” ask the most impactful questions and move on.

Released under the ISC License.