Copy-Requirements

Learn to understand the requirements to formulate a good system design.

We will present this design problem as a mock interview. Interviewer-candidate dialog is clearly marked. You might pretend to be a candidate, and think of your own reply to the interviewer’s question before reading our sample replies. After completing this design problem, you may come back and see how the design will change as per your own replies. Such an exercise will help you better understand the design space.

Design question

Interviewer: Hi, let’s design Youtube today.

Candidate: So Youtube is a video streaming service where users share, view, comment, like, and save videos.

Before designing the system, let me first understand the requirements with a bit of detail.

Functional requirements

Candidate: I see the following functional requirements:

  1. Upload videos
  2. Stream videos
  3. Like/dislike videos
  4. Add comments to videos
  5. Search videos according to titles
  6. See stats of existing videos

Create a free account to access the full course.

By signing up, you agree to Educative's Terms of Service and Privacy Policy