Design a machine learning system that recommends the next video to a user as they swipe through a continuous video feed. This is not the main homepage feed — it is the secondary "watch next" experience that activates after a user taps on a video from the feed, subreddit, or search results. Each upward swipe should surface a new, relevant video.
Background
Reddit's short-form video experience allows users to discover content by swiping vertically through an endless stream of videos. The system must balance relevance (topically related to the seed video and the user's interests), freshness (surfacing new uploads), and diversity (avoiding repetitive content from the same subreddit or creator). Because the user is already in a "lean-back" consumption mode, engagement signals like watch-through rate, replay, and share are more important than click-through rate.
Key Components to Discuss
Candidate Generation — How do you source and narrow down millions of videos to a shortlist of a few hundred?
Ranking Model — How do you score and order candidates so that the most engaging video appears next?
Sequential Modeling — How do you use the user's in-session swipe history to refine recommendations in real time?
Exploration & Exploitation — How do you surface fresh or niche content without degrading engagement?
Serving Architecture — How do you pre-fetch and serve recommendations with sub-100 ms latency while the user is mid-swipe?
Discussion Points
What features capture user intent within a swipe session vs. long-term preferences?
How would you handle the cold-start problem for brand-new videos with zero engagement history?
How do you avoid filter bubbles while keeping recommendations relevant?
What metrics would you use for offline evaluation vs. online A/B testing?