System design interviews come in several flavors, and understanding which type you're facing is crucial for proper preparation. Each type has different expectations, evaluation criteria, and approaches.
Product Design Interviews
Product design interviews are the most common type of system design interview. You'll be asked to design a user-facing application like Twitter, Uber, or Netflix.
What Interviewers Look For
- User empathy: Understanding who uses the product and why
- Feature scoping: Prioritizing what to build
- Scalability mindset: Designing for millions of users from the start
- API clarity: Clean, intuitive interfaces
Example Questions
- Design Twitter/X
- Design a food delivery app like DoorDash
- Design Instagram
- Design a video streaming service
For product design interviews, always start by clarifying who the users are and what their primary use cases are. This demonstrates product thinking.
Infrastructure Design Interviews
Infrastructure design interviews focus on building the foundational systems that other applications depend on. These are typically asked at more senior levels.
What Interviewers Look For
- Deep technical knowledge: Understanding of distributed systems
- Trade-off analysis: CAP theorem, consistency models
- Fault tolerance: Handling failures gracefully
- Performance optimization: Latency, throughput considerations
Example Questions
- Design a distributed cache (like Redis)
- Design a message queue (like Kafka)
- Design a rate limiter
- Design a URL shortener
Object-Oriented Design (OOD)
Object-oriented design interviews, sometimes called "low-level design," focus on the detailed design of a specific component using OOP principles.
What Interviewers Look For
- Clean abstractions: Well-defined classes and interfaces
- Design patterns: Appropriate use of Factory, Strategy, Observer, etc.
- SOLID principles: Single responsibility, open/closed, etc.
- Extensibility: Easy to add new features
Example Questions
- Design a parking lot system
- Design an elevator system
- Design a library management system
- Design a chess game
Machine Learning System Design
A specialized type of interview for ML/AI roles, focusing on building ML-powered applications.
What Interviewers Look For
- ML fundamentals: Understanding of model training, evaluation
- Data pipelines: Feature engineering, data collection
- Production ML: Model serving, monitoring, retraining
- Product integration: How ML enhances user experience
Example Questions
- Design a recommendation system
- Design a search ranking system
- Design a fraud detection system
- Design a content moderation system
How to Identify the Interview Type
Before your interview, try to identify which type you'll face:
- Check the job description: ML roles often have ML system design
- Ask your recruiter: They can usually tell you the format
- Research on interview prep sites: Look for company-specific information
- Consider the level: Infrastructure design is more common for senior roles
Preparation Strategy
| Interview Type Preparation Guide | |
|---|---|
| Name | Description |
Product Design | Focus: User flows, APIs, scaling | Practice: Design popular apps |
Infrastructure | Focus: Distributed systems, trade-offs | Practice: Study building blocks |
OOD | Focus: Design patterns, SOLID | Practice: Practice with coding problems |
ML System Design | Focus: ML pipelines, model serving | Practice: ML-specific resources |
Don't assume all system design interviews are the same. Preparing for product design won't help you in an infrastructure interview.
What's Next
Now that you understand the types of interviews, let's dive into the key concepts you'll need regardless of which type you face.