This video is a mock system design interview where Kevin, a computer science student, designs the Reddit homepage feed. The interviewer, Jenn, guides Kevin through clarifying questions, calculations, and high-level design considerations, focusing on scalability and data management for a system handling millions of daily users and posts.
The interviewer, Jenn, asked the following questions:
"How would you design Reddit's homepage feed?" (This is the main system design question.)
"Let's say 50 million [daily users]." (Clarifying question about user volume)
"Let's go with 25 [posts] for now." (Clarifying question about the number of posts per page)
"Should we like design for like all these different post types?" (Clarifying question about post types)
"Should we like care about like uh like building like this kind of like home page uh like feed for logged in users or um is it fine to just like do like anonymous users?" (Clarifying question about logged-in vs. anonymous users)
"How are you assuming the 300 characters value?" (Clarifying question about the character count estimation for text posts)
"Is this is this like an excerpt that you would see of a post or is it the entire contents?" (Clarifying question about whether the character count refers to an excerpt or full post content)
"Is there anything that you can do to reduce this number off the bat?" (Question prompting optimization for data size)
"How would you be avoiding stale data?" (Question about data freshness and staleness)
"What first of all what's your let's go back to the strategy that you're using to collect those those posts uh 25 posts um and then how would you make sure that you are constantly giving back if the user is visiting Reddit five times a day um each time i'm assuming that those 25 posts are going to have to be fresh right?" (Question about the data refresh strategy)
"What's the criteria for sharding here?" (Question about the criteria for sharding the database)
"How are you differentiating between whether a subreddit is active or not?" (Question about the criteria for classifying active vs inactive subreddits)
"What do you think is the most challenging part about approaching questions like this?" (Final reflective question)