Loading content...
After clarifying requirements, you now face a crucial decision: What will you actually design?
The prompt says "Design Uber." But Uber is a massive system: rider app, driver app, matching, routing, payments, surge pricing, safety, ratings, customer support, fleet management, and more. You have 40-50 minutes remaining. Attempting to design everything is a recipe for failure—you'll cover each feature superficially, demonstrating depth in none.
The art of scoping is knowing what to include, what to exclude, and how to communicate those boundaries clearly.
Scoping isn't about limiting your design—it's about focusing your expertise. The best candidates design a subset of the system with exceptional depth, rather than the whole system with embarrassing shallowness.
By the end of this page, you will master the strategic skill of problem scoping: how to define appropriate boundaries, prioritize features, create phased designs, communicate scope decisions, and avoid common scoping pitfalls that derail otherwise strong candidates.
Scoping failures are among the most common reasons candidates underperform in system design interviews. The failure modes are distinct but equally damaging:
Failure Mode 1: Scope Too Broad
Failure Mode 2: Scope Too Narrow
Failure Mode 3: Scope Misaligned
| Scoping Quality | Time Used | Depth Achieved | Interviewer Impression |
|---|---|---|---|
| ❌ Too Broad | Rushed, overtime | Superficial everywhere | Can't prioritize, poor judgment |
| ❌ Too Narrow | Finished early | Deep but limited | Underestimates complexity |
| ❌ Misaligned | Well-paced but wrong focus | Deep in wrong areas | Poor communication |
| ✅ Well-Scoped | Comfortable pacing | Deep in core areas | Strong judgment, structured thinking |
The ideal scope is like Goldilocks' porridge—not too broad, not too narrow, just right. You want enough features to demonstrate system design competence, but few enough to demonstrate depth. Typically, 2-4 core features with supporting infrastructure hits this zone.
Effective scoping follows a systematic process. Rather than arbitrarily choosing features, use a framework that ensures strategic, defensible decisions:
The MCDF Framework:
This framework creates transparent boundaries that interviewers can follow and engage with.
Scoping should be collaborative, not unilateral. By checking with the interviewer after proposing scope, you ensure alignment. If they want to see something different, they'll redirect you—that's information, not failure.
Must-have features are the minimum viable system—the features without which the system doesn't provide its core value. Identifying them requires asking: "What is the irreducible essence of this system?"
The Essence Test:
Example: Twitter
Core essence: Users post short messages that others can read.
Must-haves:
Not must-haves (important but deferrable):
| System | Core Essence | Must-Have Features |
|---|---|---|
| URL Shortener | Create short URLs that redirect | URL creation, URL redirection, URL storage |
| Chat Application | Users exchange messages in real-time | Send message, receive message, message ordering |
| Ride Sharing | Match riders with nearby drivers | Rider request, driver matching, location tracking |
| E-commerce | Browse products and complete purchases | Product catalog, cart management, checkout/payment |
| Social Feed | View personalized content from connections | Post creation, follow relationships, feed generation |
| Notification System | Deliver messages to users across channels | Event ingestion, routing logic, delivery to channels |
Can you describe the system's purpose in one sentence? The nouns and verbs in that sentence point to your must-haves. 'Twitter lets users post short messages that followers can read' → users, posts, followers, reading = must-haves.
The critical path is the primary user journey through your system—the sequence of operations that represents the core value proposition. This is where you'll spend most of your design effort.
Why Critical Path Matters:
In a 45-minute interview, you can realistically design 3-5 components with depth. The critical path tells you which components. Everything on the critical path must be solid; things off the path can be sketched loosely.
Critical Path Identification Process:
1234567891011121314151617181920212223242526
**Primary User:** Rider**Primary Goal:** Get from point A to point B via a driver **Critical Path (Rider Perspective):**1. Open app (Authentication Service)2. Enter pickup/dropoff location (Location Service)3. See available drivers and estimated price (Matching Service, Pricing Service)4. Request ride (Ride Request Service)5. Get matched with driver (Matching Service)6. Track driver location in real-time (Location Service, WebSocket/Push)7. Complete ride (Ride Service)8. Pay and rate (Payment Service, Rating Service) **Components on Critical Path:**- Authentication ✓ (essential but can simplify)- Location Service ✓ (design in depth)- Matching Service ✓ (design in depth)- Pricing Service ✓ (design in depth)- Payment Service ✓ (mention, defer complexity)- Real-time updates ✓ (technology choice, not full design) **Not on Critical Path (Defer):**- Driver onboarding- Surge pricing algorithm details- Customer support- Analytics and reportingSecondary Paths:
Most systems have multiple user types with different journeys. For Uber, there's also the driver path:
You likely won't fully design all paths. Choose the most interesting/complex one for depth, and briefly acknowledge others exist.
Communicating Your Choice:
"I'll focus on the rider's journey from requesting a ride through matching and completion. The driver experience mirrors many of these components. I'll note where they differ but won't design the driver onboarding flow in detail."
This shows awareness of the full system while justifying your focus.
It's easy to get pulled into fascinating details off the critical path. Resist this. If the interviewer asks about something off-path, give a brief answer and offer to return to it if time permits. Stay focused on your core design.
Deferring features isn't admitting defeat—it's demonstrating prioritization. The key is how you defer. Poor deferrals seem like ignorance; strategic deferrals demonstrate judgment.
The Deferral Formula:
"I'm going to defer [feature] for now because [reason]. This would involve [brief technical insight], which I'm happy to discuss if we have time."
This formula:
Categories of Deferrals:
1. Orthogonal Systems — Systems that plug in but don't change core architecture
Deferral rationale: "These are important but standardized. The interesting design is elsewhere."
2. Advanced Features — Extensions to core functionality
Deferral rationale: "These enhance but aren't essential. I'll note where they plug in."
3. Edge Cases — Rare scenarios requiring special handling
Deferral rationale: "Critical for production but not necessary to demonstrate design skills."
Keep a mental (or written) list of deferrals. If you finish early or the interviewer asks 'What else?', you have topics ready. This turns deferrals into future discussion points rather than missing features.
One powerful scoping technique is phased design—presenting your solution as evolving through stages. This approach mirrors real-world system development and demonstrates maturity in how systems are actually built.
Why Phased Design Works:
12345678910111213141516171819202122232425262728
**Phase 1: MVP (What we'll design in depth)**- Users can create accounts- Users can post tweets (text only)- Users can follow other users- Users can view their home timeline- Simple chronological feed **Phase 2: Scale (We'll discuss architecture for)**- Sharding tweet storage- Caching layer for hot tweets- Async feed generation (fanout)- CDN for media **Phase 3: Features (We'll mention but not design)**- Retweets, likes, replies- Mentions and hashtags- Search functionality- Direct messages **Phase 4: Optimization (Future considerations)**- Algorithmic feed ranking- Real-time trending- Recommendation system- Analytics and ML pipelines "I'll design Phase 1 in full, discuss the scaling challenges of Phase 2, and mention how Phases 3-4 would plug in. Sound good?"Transitioning Between Phases:
As you design, explicitly mention when you're addressing different phases:
"For the MVP, a single database with read replicas works fine. In Phase 2, we'd shard by user ID when we hit read scaling limits."
"I'm designing the chronological feed first. In Phase 3, we'd introduce a ranking service that sits between the timeline service and the client."
This gives interviewers clear hooks to dig deeper if they want, while keeping you focused on the MVP path.
Phasing is a tool, not a crutch. If you define 10 phases to defer everything, you've missed the point. Most designs need 2-3 phases at most. The first phase should be substantial—demonstrating your core design skills.
How you communicate scope decisions matters as much as the decisions themselves. The goal is to make your reasoning transparent, invite collaboration, and ensure alignment with the interviewer's expectations.
The Scope Presentation:
After clarifying requirements and before detailed design, take 1-2 minutes to explicitly state your scope:
1234567891011121314151617181920212223
"Alright, let me summarize what I understand and propose a scope. We're designing a real-time chat application for 50 million users, focusing on one-on-one and group messaging with delivery guarantees. For this session, I'll focus on:- Message sending and receiving flow- Real-time delivery architecture (WebSockets)- Message storage and retrieval- Delivery status (sent, delivered, read)- Group messaging (up to 500 members) I'll touch on but not fully design:- User authentication (assume OAuth/SSO)- Media attachments (assume blob storage + CDN)- Push notifications for offline users (mention integration points) I'm explicitly deferring:- Voice/video calling- End-to-end encryption details (would focus on if asked)- Admin moderation tools Does this scope work for you, or would you like me to adjust?"Write 'IN SCOPE' and 'DEFERRED' lists on your design canvas. This serves as a shared contract with the interviewer. When discussions wander, you can both point back to the agreed scope. It also prevents 'scope creep' mid-interview.
Not every interviewer will accept your proposed scope. Some will push back—either to test your flexibility or because they have specific areas they need to evaluate. Handling pushback gracefully is a skill.
Common Pushback Scenarios:
1. "Can you include [feature] in your design?"
2. "I think [feature] is too complex for an interview."
3. "Why did you exclude [feature]?"
When interviewers push back on scope, they're not criticizing you—they're collaborating. This mirrors real work, where stakeholders adjust requirements based on discussion. Respond with flexibility, not defensiveness.
The Pivot Strategy:
If the interviewer significantly changes scope mid-design, pivot cleanly:
Interviewers sometimes pivot scope deliberately to see how you handle changing requirements. It's a signal of flexibility and adaptability—both valuable traits.
Different system types have different natural scopes. Understanding typical scope for common system design problems helps calibrate your expectations.
The complexity varies:
Here's a calibration guide for common interview problems:
| System Type | Typical Full Features | Recommended Interview Scope | Deep Dive Areas |
|---|---|---|---|
| URL Shortener | Create, redirect, analytics, custom URLs, expiry | Full create/redirect flow | URL encoding, redirect optimization, analytics at scale |
| Chat Application | 1:1, groups, media, calls, encryption, search | 1:1 and group text messaging | Real-time delivery, message ordering, presence |
| Twitter/Feed | Posts, follows, retweets, likes, trending, DMs, search | Post creation and feed generation | Fanout strategies, caching, timeline generation |
| Ride Sharing | Request, match, price, route, pay, rate, driver ops | Request and matching flow | Location tracking, matching algorithm, ETA |
| E-commerce | Catalog, cart, checkout, payment, reviews, search, recs | Browse to checkout flow | Inventory management, cart persistence, checkout |
| Video Streaming | Upload, transcode, stream, recommend, comments | Upload and streaming flow | Transcoding pipeline, CDN, adaptive bitrate |
The simpler the system, the more comprehensive your scope can be. For a URL shortener, you might cover 80% of features. For a social network, you might cover 20% but with 4x the depth. Adjust expectations accordingly.
Reading the Room:
Interview level also affects scope expectations:
When in doubt, propose scope and ask if it matches what the interviewer wants to evaluate. They'll tell you.
Even candidates who understand scoping in theory make common mistakes in practice. Recognizing these pitfalls helps you avoid them:
At the 20-minute mark, do a mental scope check. Are you on track to cover what you promised? If you're behind, explicitly narrow: 'I want to make sure I cover the most important parts—let me simplify [area] and focus on [core].'
Let's see complete scoping decisions for two common interview problems:
12345678910111213141516171819202122232425262728293031
**Requirements Gathered:**- 500M daily active users- Photo and video sharing, stories- Feed with personalization- Comments, likes, direct messaging- Explore/discover page- p99 latency < 500ms for feed **Scoping Decision:** "Instagram is a massive system. For this session, I'll focus on: IN SCOPE (Deep Design):✓ Photo upload and storage pipeline✓ Home feed generation and delivery✓ Follow relationship management✓ Feed caching strategy MENTIONED (Architecture hooks):○ Video handling (treated as extension of photo pipeline)○ Stories (24-hour expiry, separate storage tier)○ Comments and likes (counters, async updates) DEFERRED:✗ Direct messaging (separate real-time system)✗ Explore/recommendation (ML-heavy, different design)✗ Ads integration✗ Admin/moderation tools This gives us the core Instagram experience—upload, follow, and feed. Sound good?"1234567891011121314151617181920212223242526272829
**Requirements Gathered:**- API gateway for microservices architecture - Multiple rate limiting rules (per user, per API, global)- 100K requests/second- Sub-millisecond overhead per request **Scoping Decision:** "A rate limiter is more focused, so I can cover it comprehensively. IN SCOPE (Full Design):✓ Core rate limiting algorithms (token bucket, sliding window)✓ Distributed rate limiting across multiple nodes✓ Configuration and rule management✓ Response handling (429s, headers, retry-after)✓ Storage layer for counters (Redis/in-memory) MENTIONED:○ Integration with API gateway○ Monitoring and alerting on limits DEFERRED:✗ Machine learning for adaptive limits✗ Complex billing integration✗ Historical analytics dashboards Given the system's focused nature, I expect to cover most of this. Let me know if there's a particular aspect you'd like to emphasize."Notice how the Instagram scope is much narrower (few features, deep) while the rate limiter scope is broader (most features, comprehensive). This matches their relative complexity. Adjust your scope ambition to the problem.
Strategic scoping separates candidates who finish confidently from those who scramble at the end. Let's consolidate the key insights:
What's Next:
With scope defined, you'll inevitably make assumptions about unstated details—user behavior, traffic patterns, technology choices. The next page covers Documenting Assumptions—how to make implicit assumptions explicit, communicate them clearly, and use them strategically throughout your design.
You now understand how to transform broad requirements into focused, achievable design boundaries. Scoping isn't limiting—it's focusing. Next, we'll learn to handle the assumptions that fill the gaps your questions didn't cover.