system-design/interview-framework.md

46. The Interview Framework (RESHADED)

System design interviews aren't about getting the "right" answer; they're about demonstrating structured thinking under uncertainty. The interviewer is hiring for whether you can lead a design discussion in a real mee…

~6 min read·updated 5/29/2026

46. The Interview Framework (RESHADED)

System design interviews aren't about getting the "right" answer; they're about demonstrating structured thinking under uncertainty. The interviewer is hiring for whether you can lead a design discussion in a real meeting.

46.1 The 45-minute structure

Time budget for a typical FAANG interview:

PhaseTimeWhat
1. Clarify requirements5 minfunctional + non-functional
2. Capacity estimation5 minQPS, storage, bandwidth
3. High-level design5 minboxes & arrows
4. API & data model5 mininterfaces, schemas
5. Deep dive15 min2-3 hard problems
6. Bottlenecks & scale10 minwhat breaks at 10×, 100×

The clock is unforgiving. Practice keeps you on pace.

46.2 RESHADED (HelloInterview's framework)

A mnemonic for the interview structure:

  • Requirements
  • Estimation
  • Storage
  • High-level design
  • API design
  • Data schema
  • Evolution / scale
  • Deep dive

Adapt to your interviewer's pace and signals. Some want estimates first; some want a sketch. Read the room.

46.3 Phase 1: Requirements (5 min)

Functional

  • "Walk me through what users do."
  • 3-5 core features. Don't try to design every Twitter feature; pick the read & write paths.
  • Confirm scope: "out of scope is direct messages and ads, right?"

Non-functional

  • Scale: users, QPS read/write, geographic distribution.
  • Latency targets: P50, P99 for key operations.
  • Consistency requirements: strict (banking) vs eventual (likes).
  • Availability target.
  • Read:write ratio.

Edge cases & constraints

  • Mobile / web / API?
  • Data retention?
  • Security/PII?
  • Compliance?

Get specific numbers. Vague handwaves about "lots of users" won't drive design. If interviewer hedges, propose: "let's say 100M MAU."

46.4 Phase 2: Estimation (5 min)

(See chapter 2.) Quick math:

  • DAU from MAU.
  • QPS from DAU × actions/day ÷ 86,400.
  • Peak QPS (3-5× average).
  • Storage / day, / year.
  • Bandwidth in / out.
  • Memory for cache.
  • Number of servers (rough).

Round aggressively. Use 100K not 86,400. State assumptions out loud.

If you skip this, design choices later sound arbitrary. Numbers anchor the conversation.

46.5 Phase 3: High-level design (5 min)

Sketch on the whiteboard / virtual canvas:

[Client] → [Load balancer] → [API gateway / app servers]
                                  │
                          ┌───────┼─────────┐
                       [DB]   [Cache]   [Async queue]
                          │
                  [Other services]

Walk through the request path:

  • "User loads timeline → request hits LB → routed to timeline svc → checks cache → falls back to DB → returns."

Key components named with reasoning ("Postgres because relational + ACID; Redis for low-latency cache").

Don't go deep yet. Don't draw 30 boxes. Stay at the level the interviewer can see the system.

46.6 Phase 4: API & Data Model (5 min)

API

For each main flow, sketch the endpoint:

POST /tweets
GET /home_timeline?cursor=...
GET /users/{id}/timeline
POST /follows

REST vs gRPC discussion if relevant.

Pagination: cursor-based by default. Mention idempotency where applicable.

Data model

Tables (or document/wide-column shapes):

tweets (id, author_id, text, media_url, created_at)
follows (follower_id, followee_id, created_at)
timeline_cache: ZSET per user

For each:

  • Sharding key
  • Indexes
  • Estimated size

46.7 Phase 5: Deep dive (15 min)

Pick 2-3 of:

  • Caching strategy
  • Replication / consistency
  • Sharding
  • Async pipeline / fan-out
  • Hot key handling
  • Search index
  • Real-time push (WebSocket fan-out)

The interviewer often nudges: "let's talk about scale of timelines" or "how do you handle a celebrity?"

Show trade-offs. "Push fan-out has cheap reads but expensive writes for celebrities; pull is opposite; hybrid is the standard answer."

For each chosen topic:

  1. The problem.
  2. The naive solution.
  3. Why it doesn't scale / what breaks.
  4. The improved solution.
  5. Trade-offs.

This pattern shows judgment.

46.8 Phase 6: Bottlenecks & scale (10 min)

"What breaks at 10× load? At 100×?"

Walk through:

  • DB writes saturate → shard or write to a queue.
  • Read load on cache → multi-tier (L1 in process + L2 distributed).
  • Hot keys → replicate, local cache, dedicated capacity.
  • Geographic latency → multi-region, CDN, edge.

Cover failure modes:

  • Cache cluster down → fallback path exists?
  • DB primary down → failover plan?
  • Cross-region partition → CP or AP behavior?

46.9 Communication patterns

State your assumptions

Out loud, all the time. Wrong assumption is fine; silent assumption is wasted effort.

Drive the discussion

Don't wait for prompts. "Next, I want to talk about timeline caching."

Time-box yourself

"I'll spend 5 min on requirements; let me know if you'd rather I focus elsewhere."

Ask for confirmation

"Does push fan-out with celebrity pull sound reasonable? Should I dive in or is there another area you'd like me to cover?"

Number-driven decisions

Don't say "we should cache." Say "with 500K reads/sec and 99% cache hit ratio, we offload to ~5K DB reads/sec, which Postgres handles."

Acknowledge what you don't know

"I'm not sure about the exact threshold for CDN cost-effectiveness; in this scope I'd assume CDN is right at >100GB/day egress."

46.10 Common red flags (avoid these)

  • Jumping to a solution before requirements. "I'd use Cassandra" with no question asked = bad.
  • No numbers. "Lots of QPS" doesn't drive design.
  • Cargo-culting tools. "We'd use Kafka and Cassandra and ES and..." without justification.
  • Hand-waving over hard problems. "Then the data is consistent" needs explanation.
  • Ignoring failure modes. Real systems break.
  • One-way conversation. Not engaging interviewer's hints.
  • Going down rabbit holes. Spending 20 min on schema while ignoring scaling.
  • Forgetting to discuss trade-offs. Every choice has alternatives.

46.11 Common patterns of strong candidates

  • Structured. Phases visible.
  • Numbers-driven.
  • Trade-off-aware. "X pros, Y cons; in this context I'd pick X."
  • Engages the interviewer. Asks if going right direction.
  • Acknowledges complexity without getting paralyzed.
  • Mentions concrete tools but doesn't fetishize them.
  • Anticipates follow-ups. "We'd need a fan-out service; let me come back to that."

46.12 Behavioral signals

The interviewer is also assessing:

  • Pragmatism: do you over-engineer?
  • Communication: can you collaborate?
  • Curiosity: do you ask interesting questions?
  • Judgment under uncertainty: do you commit to a direction with stated trade-offs?

46.13 What to do when stuck

  • "Let me think about that for a moment."
  • Reason out loud: "If we had X, we could do Y; but we don't, so let's consider..."
  • Ask: "Is there a constraint I'm missing?"
  • Move on if a hard sub-problem isn't critical to the overall design; flag and return.

Don't fake it. Interviewers see through.

46.14 Mock practice

Ten mocks > 100 hours of reading.

  • Pramp (free): peer-to-peer.
  • interviewing.io: paid, ex-FAANG interviewers ($150-200/mock).
  • HelloInterview: video walkthroughs and mock service.
  • Solo whiteboard: time yourself; record; re-watch.
  • Friend / colleague: any interviewer with real systems experience helps.

Aim for: at least 8-10 full mocks before a real interview.

46.15 Per-company flavor

  • Google: emphasis on scale, fundamentals, distributed systems, papers (Spanner, Bigtable, GFS). Coding interviews often interleave.
  • Meta: pragmatic system design; production-realistic; less academic.
  • Amazon: leadership principles infused; "tell me about a system you built." Design + behavioral hybrid.
  • Microsoft: similar to Google; Azure-aware sometimes.
  • Stripe / DoorDash / Uber: domain-relevant designs (payments, marketplaces).

Adjust depth and emphasis accordingly.

46.16 The day-of mindset

  • Eat, sleep, hydrate.
  • Have water at the desk.
  • Have paper, pen, dual monitor / decent setup.
  • Read the question twice before designing.
  • Repeat the question back: "So you want me to design a system that does X for N users..."
  • Ask clarifying questions for the first 3-5 minutes; don't sprint to design.
  • Manage clock visibly: "We have 45 min; I'll spend 5 on each phase."

46.17 After the interview

  • Self-debrief: what went well? What didn't?
  • Track patterns across interviews.
  • Adjust prep accordingly.

Key takeaways

  • Use a framework (RESHADED or the 6-step). Phases visible to interviewer.
  • Numbers drive design. Estimate early; refer back.
  • Show trade-offs explicitly; never present an architecture as "the answer."
  • Communicate continuously; no silent thinking.
  • Mock practice is the single highest-leverage prep activity.

// 1 view

main
UTF-8·typescript