System Design4 min read

Top 20 System Design Questions for Senior Engineer Interviews

Master the most commonly asked system design questions with detailed approaches, trade-offs, and tips for senior engineering interviews at top tech companies.

By ShadeInterview Team|

System design interviews are a critical component of senior engineering interviews at top tech companies. Unlike coding interviews that test your algorithmic skills, system design interviews evaluate your ability to design large-scale distributed systems.

How to Approach System Design Questions

Before diving into specific questions, let us establish a framework for approaching any system design problem:

Step 1: Clarify Requirements

Always start by asking questions to understand:

  • Functional requirements: What should the system do?
  • Non-functional requirements: Scale, latency, availability needs
  • Constraints: Budget, timeline, existing infrastructure

Step 2: Estimate Scale

Calculate rough estimates for:

  • Daily/monthly active users
  • Read vs write ratio
  • Storage requirements
  • Bandwidth needs

Step 3: Design High-Level Architecture

Sketch the main components:

  • Client applications
  • Load balancers
  • Application servers
  • Databases
  • Caches
  • Message queues

Step 4: Deep Dive into Components

Pick 2-3 critical components to discuss in detail:

  • Data models
  • API design
  • Database choices
  • Caching strategies

Step 5: Address Bottlenecks

Identify potential issues and solutions:

  • Single points of failure
  • Performance bottlenecks
  • Scalability limits

Top 20 System Design Questions

1. Design a URL Shortener (like bit.ly)

Key considerations:

  • Hash generation strategy
  • Handling collisions
  • Read-heavy workload
  • Analytics and tracking

2. Design Twitter

Key considerations:

  • Timeline generation (fan-out on write vs read)
  • Real-time updates
  • Trending topics
  • Search functionality

3. Design Instagram

Key considerations:

  • Image storage and CDN
  • News feed generation
  • Stories feature
  • Direct messaging

4. Design WhatsApp

Key considerations:

  • Real-time messaging
  • End-to-end encryption
  • Message delivery guarantees
  • Group chat scaling

5. Design YouTube

Key considerations:

  • Video upload and processing
  • Adaptive bitrate streaming
  • Recommendation system
  • Comment system

6. Design Netflix

Key considerations:

  • Content delivery network
  • Video transcoding pipeline
  • Personalization engine
  • Offline viewing

7. Design Uber/Lyft

Key considerations:

  • Real-time location tracking
  • Matching algorithm
  • Surge pricing
  • ETA calculation

8. Design a Rate Limiter

Key considerations:

  • Algorithm choice (token bucket, sliding window)
  • Distributed rate limiting
  • Different limits for different users
  • Graceful degradation

9. Design a Web Crawler

Key considerations:

  • URL frontier management
  • Politeness policies
  • Duplicate detection
  • Distributed crawling

Key considerations:

  • Web crawling
  • Inverted index
  • PageRank algorithm
  • Query processing

11. Design a Chat System (Slack/Discord)

Key considerations:

  • Real-time messaging with WebSockets
  • Channel/room management
  • File sharing
  • Search functionality

12. Design Dropbox/Google Drive

Key considerations:

  • File synchronization
  • Conflict resolution
  • Chunking and deduplication
  • Version history

13. Design a Notification System

Key considerations:

  • Multiple channels (push, email, SMS)
  • Priority and batching
  • User preferences
  • Delivery guarantees

14. Design a News Feed System

Key considerations:

  • Content ranking
  • Real-time updates
  • Personalization
  • Content moderation

15. Design an E-commerce Platform

Key considerations:

  • Product catalog
  • Shopping cart
  • Inventory management
  • Payment processing

16. Design a Parking Lot System

Key considerations:

  • Spot allocation
  • Entry/exit management
  • Payment system
  • Real-time availability

17. Design a Key-Value Store

Key considerations:

  • Consistency model
  • Partitioning strategy
  • Replication
  • Conflict resolution

18. Design a Distributed Cache

Key considerations:

  • Cache eviction policies
  • Consistency with database
  • Hot spot handling
  • Cache warming

19. Design a Ticketing System (like Ticketmaster)

Key considerations:

  • Inventory management
  • Handling high concurrency
  • Seat selection
  • Queue management

20. Design a Metrics/Monitoring System

Key considerations:

  • Data collection
  • Time-series database
  • Aggregation strategies
  • Alerting system

Essential Concepts to Master

Databases

  • SQL vs NoSQL trade-offs
  • Database sharding
  • Replication strategies
  • ACID vs BASE

Caching

  • Cache invalidation strategies
  • Distributed caching
  • Cache-aside vs write-through
  • CDN caching

Message Queues

  • Pub/sub patterns
  • Message ordering
  • Exactly-once delivery
  • Dead letter queues

Load Balancing

  • Layer 4 vs Layer 7
  • Health checks
  • Session affinity
  • Geographic load balancing

Preparation Tips

  1. Practice regularly: Dedicate 30-60 minutes daily to system design practice
  2. Study real systems: Read engineering blogs from top companies
  3. Understand trade-offs: Every design decision has pros and cons
  4. Draw diagrams: Visual communication is essential
  5. Practice explaining: System design is as much about communication as technical knowledge

Good luck with your system design interviews!

Tags

System DesignSenior EngineerArchitectureScalability