System Design Interview Prep
See how real systems are designed, then practise designing them yourself with an AI interviewer that asks follow-up questions and scores your design.
Design a URL Shortener
Like bit.ly or TinyURL · Easy
Design a service that turns long URLs into short links and redirects visitors to the original URL.
- Create a short link for a long URL
- Redirect a short link to the original URL
- Optional custom alias and expiry
- 100M new links per month
- Redirects are 100× more frequent than creates
- Redirect latency under 50 ms
Design a Rate Limiter
API gateway feature · Easy
Design a rate limiter that restricts how many requests each client can make to an API.
- Limit requests per user or API key per time window
- Return HTTP 429 when the limit is exceeded
- Different limits per plan
- Works across many API servers
- Adds under 5 ms latency
- Keeps working if the limiter store is briefly down
Design Pastebin
Text sharing service · Easy
Design a service where users paste text, get a shareable link, and others can view it.
- Create a paste and get a link
- View a paste by link
- Pastes can expire
- 10M pastes per day
- Pastes up to 10 MB
- High availability for reads
Design Instagram
Photo sharing social network · Medium
Design a photo-sharing app where users upload photos, follow others and scroll a home feed.
- Upload photos with captions
- Follow and unfollow users
- Home feed of followed users' posts
- Like and comment
- 500M daily active users
- Feed loads in under 200 ms
- Photos are never lost
Design WhatsApp
Real-time chat · Medium
Design a messaging app supporting one-to-one and group chats with delivery and read receipts.
- Send and receive messages in real time
- Group chats up to 500 members
- Sent, delivered and read receipts
- Messages arrive when an offline user reconnects
- 2B users, 100B messages per day
- Message delivery under 1 second
- No message loss or duplication
Design the Twitter Timeline
Social media feed · Medium
Design the home timeline of a Twitter-like service where users post short messages and see posts from people they follow.
- Post a tweet
- Home timeline of followed accounts, newest first
- Search tweets by keyword
- 300M daily active users
- Timeline loads in under 300 ms
- Eventual consistency is acceptable
Design a Notification System
Push, email and SMS · Medium
Design a system that sends notifications to users by push, email and SMS on behalf of other services.
- Other services trigger notifications through an API
- Deliver by push, email or SMS
- Respect user preferences and quiet hours
- Retry failed deliveries
- 10M notifications per day with spikes
- Never send the same notification twice
- A slow provider must not block others
Design Uber
Ride hailing · Hard
Design a ride-hailing service that matches riders with nearby drivers and tracks trips in real time.
- Riders request a ride
- Match with a nearby available driver
- Live driver location during the trip
- Fare calculation and payment
- Drivers send location every 4 seconds
- Match within 10 seconds
- Millions of concurrent drivers worldwide
Design YouTube
Video streaming · Hard
Design a video platform where creators upload videos and viewers stream them on any device.
- Upload videos
- Stream video in multiple resolutions
- View counts, likes and comments
- 500 hours of video uploaded per minute
- Playback starts in under 2 seconds globally
- Uploads must never be lost
Design Google Drive
File storage and sync · Hard
Design a cloud storage service that stores files and keeps them in sync across a user's devices.
- Upload and download files
- Sync changes across devices
- Share files with other users
- File version history
- 50M users, 10 GB each
- Large files up to 10 GB
- Strong consistency for file metadata
Design BookMyShow
Movie and event ticketing · Hard
Design a ticket booking system where users pick seats for a show and pay.
- Browse shows and seat maps
- Hold seats for 10 minutes during checkout
- Pay and confirm the booking
- Popular releases cause huge traffic spikes
- A seat must never be sold twice
- Checkout stays responsive under load
Design a Payment System
Like Stripe or UPI · Hard
Design a system that processes payments between customers and merchants through external payment providers.
- Accept a payment from a customer
- Pay out merchants
- Refunds
- Transaction history
- Exactly-once charging — never charge twice
- 99.99% availability
- All money movement is auditable