The system design interview is fundamentally broken (and what would be better)

by spark_utopia786
system design
general
senior
83
4.1k

Hot take: 45 minutes to design a complete distributed system is absurd. No real engineering decision is made this way.

In the real world, system design involves:

  • Reading existing code and architecture docs
  • Discussing with team members over days/weeks
  • Prototyping and benchmarking
  • Iterating based on production data

In an interview, you're expected to design Twitter from scratch in 45 minutes. You're essentially testing how well someone has memorized design patterns, not their actual engineering ability.

What would be better:

  1. Take-home design doc (like Stripe does) - give candidates 48 hours to write a design document for a real problem. Then review it in person.
  2. Code review - have candidates review an existing system design and identify issues.
  3. Incremental design - start with a working system and ask candidates to evolve it to handle new requirements.

I know the take-home approach has its own problems (time commitment, bias towards candidates with more free time), but at least it tests something closer to real work.

What do you all think? Is the current format the best we can do?


Markdown supported