System Design Questions Roadmap
Join the 100 day System Design Questions coding challenge. Master System Design Questions with daily challenges, projects, and expert guidance.
Start coding today!
Join the 100 day System Design Questions coding challenge. Master System Design Questions with daily challenges, projects, and expert guidance.
Start coding today!
Day 1 - Design a URL shortening service (eg: bitly)
A URL shortening service is a web-based tool that takes a long URL and converts it to a shorter URL. Additionally, users should be redirected from short URL to the original long URL.
Day 2 - Design a scalable microservices architecture
Design a scalable microservices architecture for a modern e-commerce platform. The platform needs to handle high traffic loads and support various functionalities such as user authentication, product catalog management, order processing, payment processing, and analytics. Consider factors such as fault tolerance, resilience, scalability, and ease of deployment in your design. Additionally, discuss how you would ensure communication between microservices, handle data consistency, and manage dependencies between services. Provide insights into the technologies, tools, and architectural patterns you would employ to build and deploy this microservices architecture effectively
Day 3 - Design a content delivery network (CDN)
Design a content delivery network (CDN) for a global video streaming service. The CDN should efficiently distribute video content to users worldwide while minimizing latency and maximizing performance. Consider factors such as geographic distribution, caching strategies, load balancing, fault tolerance, and security in your design. Discuss how you would handle edge caching, content replication, and dynamic content delivery. Additionally, address how you would optimize the CDN for different types of devices and network conditions. Provide insights into the technologies, protocols, and architectural principles you would utilize to build and manage this CDN effectively
Day 4 - Design a distributed file storage system (eg: Dropbox)
Design a distributed file storage system similar to Dropbox that allows users to store and share files across multiple devices and platforms. The system should be highly available, scalable, and fault-tolerant, capable of handling large amounts of data with efficient storage and retrieval mechanisms. Consider factors such as data replication, synchronization, access control, versioning, and encryption in your design. Discuss how you would handle file metadata, user authentication, and authorization. Additionally, address how you would ensure data consistency and integrity across distributed nodes. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this distributed file storage system effectively.
Day 5 - Design a real-time multiplayer online game
Design a real-time multiplayer online game that supports a large number of concurrent players. The game should provide an engaging and immersive experience with low latency and high responsiveness. Consider factors such as game mechanics, networking, server infrastructure, client-server communication, and synchronization in your design. Discuss how you would handle player interactions, game state management, and cheating prevention. Additionally, address scalability, fault tolerance, and load balancing to accommodate varying player loads and ensure a seamless gaming experience. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this real-time multiplayer online game effectively.
Day 6 - Design a video streaming service like YouTube
Design a video streaming service similar to YouTube that allows users to upload, view, share, and interact with videos. The service should support a large library of videos, accommodate a high volume of concurrent viewers, and provide a seamless viewing experience across various devices and network conditions. Consider factors such as content delivery, video transcoding, storage, user authentication, recommendation systems, and monetization options in your design. Discuss how you would handle video ingestion, content distribution, and user-generated content moderation. Additionally, address scalability, fault tolerance, and data privacy and security measures. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this video streaming service effectively.
Day 7 - Design a ride-sharing system (eg: Uber or Lyft)
Design a ride-sharing system similar to Uber or Lyft that connects passengers with drivers for on-demand transportation services. The system should provide a seamless experience for both passengers and drivers, allowing passengers to request rides and drivers to accept and complete those requests efficiently. Consider factors such as real-time location tracking, route optimization, fare calculation, payment processing, and driver-passenger matching in your design. Discuss how you would handle user authentication, driver verification, and ratings/reviews for both passengers and drivers. Additionally, address scalability, fault tolerance, and surge pricing mechanisms to accommodate varying demand and ensure service availability. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this ride-sharing system effectively.
Day 8 - Design a social media feed system (eg: Facebook's news feed)
Design a social media feed system similar to Facebook's news feed that displays personalized content to users based on their interests, connections, and activity. The system should provide a dynamic and engaging user experience, presenting a mix of posts, photos, videos, and other content types from friends, followed pages, and recommended sources. Consider factors such as content ranking algorithms, content freshness, user engagement metrics, and privacy settings in your design. Discuss how you would handle content ingestion, storage, retrieval, and distribution efficiently. Additionally, address scalability, fault tolerance, and caching strategies to handle large volumes of user-generated content and ensure low latency. Provide insights into the technologies, data models, and architectural patterns you would employ to build and deploy this social media feed system effectively.
Day 9 - Design a distributed messaging system
Design a distributed messaging system that allows for real-time communication between users across various devices and platforms. The system should support features such as one-to-one messaging, group messaging, multimedia messaging, and message delivery status tracking. Consider factors such as scalability, fault tolerance, message ordering, and message persistence in your design. Discuss how you would handle user authentication, message encryption, and access control to ensure data privacy and security. Additionally, address message routing, load balancing, and latency optimization to provide a seamless messaging experience. Provide insights into the technologies, protocols, and architectural patterns you would employ to build and deploy this distributed messaging system effectively.
Day 10 - Design a recommendation system (eg: Netflix's movie recommendations)
Design a recommendation system similar to Netflix's movie recommendation engine that provides personalized recommendations to users based on their viewing history, preferences, and behavior. The system should analyze user interactions with content, such as watching history, ratings, likes, and dislikes, to generate accurate and relevant recommendations. Consider factors such as recommendation algorithms, data collection, feature engineering, and model training in your design. Discuss how you would handle cold-start problems for new users and items, as well as data sparsity issues. Additionally, address scalability, real-time recommendation generation, and experimentation to continually improve recommendation quality. Provide insights into the technologies, machine learning models, and architectural patterns you would employ to build and deploy this recommendation system effectively.
Sponsor Us|Community|Blog|Youtube
Have Feedback or want to contribute? Email: hello[@]100DaysOfCode.io
100DaysOfCode@2024