Youtube
Interview question: Design Video Sharing platform like Youtube
Video sharing platforms include allowing content creators to upload their media in the form of video and viewers to watch the uploaded content with varying screen sizes and internet speed.
Step 1: Use Case Discussion
- Interviewee: So we have to support uploaders who upload new content and enable the uploaded content to be available for viewers.
- Interviewer: Yes.
- Interviewee: For how many daily active users should we scale the system?
- Interviewer: Let's consider half the scale of youtube active users as of now (2020). So let’s say we want to scale it for 1 billion active users.
- Interviewee: Do we have like or subscribe features? Do we have to show the number of likes per video or the number of subscribers? Should commenting also be included?
- Interviewer: Yes.
- Interviewee: Do we also include commenting on comments? Or likes for comments?
- Interviewer: Comments can be liked. But let’s not include commenting on comments. So if person ‘A’ has commented on a video, person ‘B’ can like A’s comment, but cannot reply to this comment.
- Interviewee: Should our platform enable watching videos on different screen sizes and in different resolutions?
- Interviewer: Yes.
- Interviewee: Should we also include subtitles?
- Interviewer: No. Let's not discuss subtitles for now.
- Interviewee: Do we also have to design a recommendation service?
- Interviewer: No.
- Interviewee: Should we include search functionality to search for videos?
- Interviewer: Yes.
Thus by the above discussion, we have gathered requirements as follows:
- Daily Active Users: 1B
- Creators should be able to upload media content in the form of videos.
- Viewers should be able to view content with different screen sizes and in different resolutions
- Videos include like, comment, and subscribe features.
- The platform should include a search box.
- We should also be able to view user profiles. i.e. all videos uploaded by a user.