Design an app similar to Netflix or Youtube
Functional Requirements:
1. Users can upload videos
2. Users can view videos
3. Search videos by video title
4. Videos should have like and view counts
5. Users can comment on videos
Related Problems
Functional Requirements
1. As users type text in a search box, show the top 10 auto complete results with very low latency
2. Analytics will be collected on what the user types
Design a service with the following functional requirements
1. Users should be able to upload and download files
2. The files should be able to be shared with other users
3. Changes to the files should be pushed to other users with the content on their machine
4. There must be no risk of file corruption
5. Keep track of different versions of the files so they may be rolled back
6. Users should be able to edit files without an internet connection and the changes sync up when a connection becomes available
A CDN (Content Distribution Network or Content Delivery Network) is a geographically distributed file storage service that is designed to serve static content to a large number of geographically distributed users quickly. Design a basic distributed storage system that could be used as a CDN.
Design a platform, similar to leetcode, which allows software engineers to prepare for coding interviews by answering coding questions and posting feedback on other users solutions. The platform should allow users with the correct permissions to be able to host coding competitions. The functional requirements are for a user to view a list of problems, view a specific problem, view specific coding solutions for that problem. The competitions also have their own functional requirements such as the ability to run and judge a user's code, and a live leaderboard and some metric for choosing who wins the competition. For non functional requirements, availability is of the most importance. Security when running the users code is also important. The competition needs to support 100k users and the live leaderboard should be give fresh results.