21 System Design Interview Problems I Use to Prepare for Senior Engineer Interviews
I Collected 20+ Real System Design Interview Problems — Practice With Me
Software Engineering Interview coming up? Join ByteByteGo now for a structured preparation. They are also offering a rare 50% discount now on their lifetime plan
Hello guys, if you’re preparing for system design interviews, one thing is clear: brushing up on basic concepts won’t cut it anymore.
While it’s important to know System Basics like Caching, Replication, Rate limiting, API Gateway, Load Balancer, NoSQL vs SQL etc, today’s interviews are far more practical, and interviewers expect you to design real-world systems that are scalable, fault-tolerant, and performant.
Whether you’re aiming for top tech companies like Google, Meta, Amazon — or up-and-coming AI startups — mastering system design is non-negotiable, even for senior developers.
I know many friends who were confident enough to crack any System Design interviews and ignored preparation due to their busy life, only to find that it was a struggle during the interview.
The good news? You don’t need to hunt around for scattered resources like articles, blogs, YouTube channels or Udemy courses.
One platform that stands out for system design prep is Codemia.io, Leetcode for System Design.
Real-world system design questions
Clear explanations with free solutions for many problems
A diagramming editor to practice like real interviews
An ever-growing library curated by senior engineers
Editorial solutions created by experts
AI-assisted learning and problem-solving
Expert evaluation
All this makes Codemia.io a go-to resource for System Design interview prep, and I have been using it for my interview preparation now.
Earlier, I talked about Is Codemia.io a Good Place to Prepare for System Design? and in this post, I’ll share 20 must-solve system design problems, including free questions and solutions from Codemia.io that you should absolutely practice before your next interview.
They have both free and paid questions, and I am going to share them both for you.
Top 5 Free System Design Interview Problems with Solutions
These are completely free to access, and they include detailed editorials, diagrams, and architecture breakdowns on Codemia.
1. Design a URL Shortening Service (Like TinyURL)
In this problem, you will learn to implement hash-based URL shortening, handle collisions, and manage redirection at scale.
Here are both Functional and non-functional requirements
Functional:
1. Given a long URL, create an associated short URL.
2. Given a short URL, return the associated long URL.
Non-Functional:
Availability — This service has to be highly available. Especially functionality (2) (redirection).
Response time — Functionality (2) has to have a low response time, e.g., less than 10ms. Functionality (1) (creating a short URL) can take more time, less than 10 seconds.
Scalability — We will get more and more requests to create short URLs, so the storage has to be highly scalable.
By the way, you should keep the requirements scope small. You only have 35–50 min in an interview. If you have a lot of requirements, you’d risk running out of time.
We could add other requirements, like a custom link. But we will start with a small set of requirements. Easier to expand later than shrink.]
You can further see the 📘 Solution once you have tried it yourself.
2. Design Twitter
In this problem, you will design a messaging app like X with Follow/unfollow logic, timeline generation, tweet distribution, and fanout strategies explained.
Here are detailed functional and non-functional requirements for you:
Functional:
User can tweet (send) up to 140 character message.
User can follow other users.
User can like other users’ tweets.
User’s home feed will show tweets from the users they are following.
The home feed will show top K popular tweets, based on the number of likes they receive and the number of followers the author has.
Non-Functional:
Scalability. It will have to serve a very large population, e.g., 500M DAU.
Response time. The user has to see tweets quickly. When the user opens the home feed, the first 10 tweets should show up within 500ms.
Availability.
See the 📘 Solution once you have tried your hand.
3. Design Ticketmaster
This is a great System design problem to learn Concurrency handling, seat locking, and avoiding double bookings.
Here are the detailed functional and non-functional requirements:
Functional:
User can:
Search for a theater by city or ZIP code.
After selecting a theater, search for movies shown in the theater.
After selecting a movie, select which show (e.g. show starting at 1PM, 3 PM, 5PM, …)
After selecting a show, the user is presented with a list of available seats.
The user can select the seats and finalize the booking.
Non-Functional:
We focus on the following aspects, as they are the most important:
Consistency — once a booking is made, it has to be respected. No double bookings.
Concurrency — multiple users are interacting with the service to view seats and book seats. Make sure the system handles concurrent accesses and provides consistent bookings.
Scalability
Fault Tolerance
You can also refer to the 📘 Solution once you have tried your hand.
4. Design a Parking Lot System
This is another free System Design problem on Codemia.io where you would design using Object-Oriented Design and handle both functional and non-functional requirements like
Functional:
User can reserve a parking spot.
User pays for the reservation.
User can park a car on the parking spot.
User can leave before the reservation time expires.
One common error case to handle is when a user makes a reservation but fails to show up. In this case, we would charge for the first 24 hours..
Non-Functional:
Scalability. We are designing this for an international company that has 1000s of parking lots across nations.
Availability.
Consistency. Once a reservation is made, the parking spot must be available for the user. No double-booking.
Once you have tried it yourself, you can also see the 📘 Solution here
15 Hard System Design Problems for Interviews (Paid)
While these are paid on Codemia, they are worth every penny if you’re serious about mastering advanced system design.
5. Design Facebook Messenger
This problem is about designing a real-time chat, message delivery, synchronization across devices, and storage optimization.
Functional Requirements:
Send/receive real-time text messages between users
Support group chats with multiple participants
Deliver messages across multiple devices with synchronization
Non-Functional Requirements:
Message delivery latency < 100ms for real-time experience
99.9% uptime to ensure reliable communication
Support 1 billion+ concurrent users with horizontal scaling
6. Design a Resource Allocation Service
This System design problem is perfect for scheduling systems like Uber, Lyft, or shared resource booking tools.
Functional Requirements:
Match available resources (drivers/vehicles) to user requests
Real-time tracking and status updates of resource location
Handle booking confirmations and cancellations
Non-Functional Requirements:
Response time < 3 seconds for resource matching
99.95% availability during peak hours
Scale to handle 100K+ concurrent booking requests
7. Design a Fitness Tracking App
As part of this question, you need to propose a solution that can track steps, integrate GPS, sync across devices.
Functional Requirements:
Track daily steps, distance, and calories burned
GPS integration for route mapping and location tracking
Sync fitness data across mobile, web, and wearable devices
Non-Functional Requirements:
Battery optimization — minimal impact on device battery life
Data accuracy within 95% for step counting and GPS tracking
Offline capability — function without internet connectivity
8. Design a Weather Reporting System
Ingest and distribute real-time sensor data, cache weather forecasts, and scale APIs.
Functional Requirements:
Ingest real-time weather data from multiple sensor sources
Provide weather forecasts and current conditions via API
Cache and serve weather data for millions of locations
Non-Functional Requirements:
Data freshness — weather updates within 5 minutes of sensor reading
API response time < 200ms for weather queries
99.99% availability for critical weather services
9. Design Pastebin
This System design problem can teach you about expiration logic, storing snippets, and short link redirection.
Functional Requirements:
Store and retrieve text snippets with unique URLs
Support automatic expiration of pastes after a specified time
Generate short, shareable links for easy access
Non-Functional Requirements:
Handle 1M+ paste creations per day
Data durability — 99.999% reliability for stored pastes
Low storage cost through compression and efficient data structures
10. Design a Nested Comments System
When you are asked this problem on interview, focus on tree structures, pagination, and moderation workflows.
Functional Requirements:
Support hierarchical comment threads with unlimited nesting
Paginate comments for performance on large threads
Implement comment moderation and spam filtering
Non-Functional Requirements:
Load comment trees in < 300ms for a good user experience
Support 10K+ comments per thread without performance degradation
Scalable architecture to handle viral content with millions of comments
11. Design Online Presence Indicator
Track real-time status updates, efficient updates via websockets, and availability caching.
Functional Requirements:
Track and display real-time user online/offline status
Update presence across all user sessions and devices
Provide last-seen timestamps for offline users
Non-Functional Requirements:
Status updates propagated within 1–2 seconds via WebSockets
Minimize bandwidth usage for presence updates
99.9% accuracy in presence detection
12. Design a Vending Machine System
This problem was asked to me on J P Morgan interview, and it’s about Inventory management, embedded system integration, and payment gateway design.
Functional Requirements:
Track inventory levels and product availability
Process payments through multiple methods (cash, card, mobile)
Dispense products and provide change/receipts
Non-Functional Requirements:
99.9% uptime for payment processing
Real-time inventory synchronization across all machines
Secure payment processing with PCI compliance
13. Design a Tagging Service
Design a solution that supports Tag hierarchy, search performance, and recommendation systems.
Functional Requirements:
Create hierarchical tag structures and relationships
Support fast tag-based search and filtering
Generate personalized tag recommendations
Non-Functional Requirements:
Search response time < 100ms for tag queries
Support billions of tags with efficient indexing
Auto-complete suggestions within 50ms
14. Design Craigslist
Design a Craigslist-like system that can categorize listings, search index, and ad posting flows.
Functional Requirements:
Post classified ads in categorized sections
Search and filter listings by location, category, price
Support user communication through anonymous email relay
Non-Functional Requirements:
Handle 50M+ listings with fast search performance
99.5% uptime for ad posting and browsing
Search results returned within 500ms
15. Design Multi-Device Screenshot Capture System
You need to design a solution where you can manage screenshots from remote devices, sync, and store them securely.
Functional Requirements:
Capture screenshots from remote devices on-demand
Sync and store screenshots across cloud storage
Provide secure access controls for screenshot viewing
Non-Functional Requirements:
Screenshot capture latency < 5 seconds
Secure transmission with end-to-end encryption
Support 1000+ concurrent device connections
16. Design a Network Path Analyzer
Design a System to track, simulate, and monitor multi-hop network paths.
Functional Requirements:
Trace and analyze multi-hop network paths between endpoints
Simulate network conditions and monitor path performance
Generate network topology visualizations
Non-Functional Requirements:
Real-time path analysis with < 100ms latency
Support monitoring 10K+ network paths simultaneously
99.9% accuracy in path detection and metrics
17. Design an Employee Swap System
You need to design a system like a job board within your org — matching roles with available employees.
Functional Requirements:
Match employees with available positions based on skills
Handle swap requests and approval workflows
Maintain employee profiles and role requirements
Non-Functional Requirements:
Matching algorithm response time < 2 seconds
Support 100K+ employee profiles with efficient search
99.5% system availability during business hours
18. Design a Conference Room Booking System
Can you design a system with calendar integration, booking slots, room conflicts, and availability display.
Functional Requirements:
Book meeting rooms with time slot management
Integrate with calendar systems (Outlook, Google Calendar)
Handle booking conflicts and room availability checks
Non-Functional Requirements:
Booking confirmation within 1 second
99.9% accuracy in conflict detection
Support 1000+ concurrent booking requests
19. Design a Video View Count System
You need to design a system to optimize counting at a large scale, prevent fraudulent views, and aggregate with accuracy.
Functional Requirements:
Count and aggregate video views in real-time
Detect and prevent fraudulent/bot views
Provide view analytics and reporting dashboards
Non-Functional Requirements:
Handle 1M+ views per second with accurate counting
99.99% data consistency for view counts
Anti-fraud detection with < 1% false positive rate
20. Design an API Rate Limiter
Design a System to implement the sliding window or token bucket algorithm at scale for rate-limiting APIs.
Functional Requirements:
Implement rate limiting using sliding window or token bucket algorithms
Support per-user, per-API, and global rate limits
Provide rate limit status and remaining quota information
Non-Functional Requirements:
Rate limiting decision in < 1ms
99.99% availability for rate-limiting service
Scale to handle 1M+ API requests per second
21. Design a Resource Management System (OOD)✨ Bonus
This one is anObject-Oriented Design problem to prepare for FAANG and tier-1 companies. Includes class diagram practice.
Functional Requirements:
Allocate and deallocate system resources (CPU, memory, storage)
Track resource usage and availability in real-time
Implement resource scheduling and priority management
Non-Functional Requirements:
Resource allocation latency < 10ms
Support 10K+ concurrent resource requests
99.99% accuracy in resource tracking and allocation
Why Codemia.io Is My Go-To System Design Interview Prep Platform?
I have read books, tried many courses and while all of them provide value the most value I have got from practicing the problem my myself and using AI for assistant.
Also, most platforms just give you a PDF solution or a video. But Codemia.io gives you:
Real-world, open-ended problems
Rich editorials with diagrams and best practices
A built-in diagramming tool to practice visually
Discussion board, solution submissions, and design patterns
AI Assistance on both problem-solving and evolution.
Whether you’re a beginner or preparing for Staff Engineer interviews, Codemia.io has questions from simple CRUD systems to large-scale distributed architectures.
They also have this nice System Design roadmap, where you can click the topic and practice the related System Design problems
For example, when you click Artificial Intelligence, you can see these problems to practice
💡 Pro Tip: Start with the free problems + editorials. Once you’re comfortable, invest in the premium ones to tackle the more complex scenarios.
Conclusion
That’s all about the Top 20 System Design Problems you can practice on Codemia.io, online, to hone your software design skills. These questions also touch on different topics like handling load, handling concurrency etc.
System Design isn’t just an interview topic anymore — it’s a must-have skill for modern software engineers. Nowadays, your ability to design scalable systems can determine whether you land that Staff Engineer, SDE III, or Senior Software Engineer role.
With Codemia.io, you get a structured way to learn, free questions to practice, and a real-world environment to simulate interviews.
So, bookmark this list, tackle one problem a week, and you’ll be amazed at how fast your system design confidence grows.
Ready to get started? Check out Codemia.io System Design Library and pick your first problem today!
Thanks for reading this article so far. If you like this article, then please share it with your friends and colleagues. If you have any questions,s feel free to ask in the comments.
P. S. — They are also offering 20% discount now, and you can get access for just $59 for one year; the original price is $120, so you have a chance to save$60 and also learn System design better.









