What to Expect in a System Design Interview
System design interviews are typically 45-60 minutes long and given to candidates interviewing for mid-level to senior engineering positions (SDE II and above at most companies). You will be asked to design a large-scale distributed system like Design Twitter or Design Uber from scratch.
Unlike coding interviews where there is a correct answer, system design interviews are open-ended. Interviewers evaluate your ability to gather requirements, make trade-offs, communicate clearly, and demonstrate breadth and depth of technical knowledge. The goal is not to build a production-ready system, but to show how you think about complex problems.
System Design Interview Structure
- Requirements gathering (5-10 min): Clarify functional requirements (features) and non-functional requirements (scale, latency, availability).
- High-level design (15-20 min): Draw the major components and data flow. Include clients, load balancers, web servers, databases, caches, and message queues as needed.
- Deep dive (15-20 min): The interviewer will ask you to go deeper into 1-2 components. Be ready to discuss database schema, API design, caching strategy, or scaling approach in detail.
- Trade-offs and wrap-up (5-10 min): Discuss bottlenecks, failure scenarios, and how you would evolve the system over time.
Most Frequently Asked Questions by Company
Different companies have different favorite system design questions based on their products:
- Google: Design Google Maps, YouTube, Google Docs, Web Crawler, Typeahead
- Meta: Design Facebook News Feed, Instagram, Messenger, WhatsApp
- Amazon: Design Amazon e-commerce, Inventory System, Rate Limiter, S3
- Netflix: Design Netflix streaming, Recommendation System, CDN
- Uber: Design Uber/Lyft, Surge Pricing, Real-time Location Tracking
- Twitter/X: Design Twitter Timeline, Trends, Search