Design Home Feed Ranking for a Community-Based Discussion Platform

Quick Overview

An ML system design question about ranking a personalized home feed of posts from topic communities on a large discussion platform. It tests multi-stage candidate generation and ranking, combining predicted actions into one score, diversity, cold start, freshness and online evaluation.

Design Home Feed Ranking for a Community-Based Discussion Platform

Company: Reddit

Role: Machine Learning Engineer

Category: ML System Design

Difficulty: easy

Interview Round: Onsite

Design the ranking system for the home feed of a large online discussion platform. Assume users join topic communities, posts in those communities collect votes and comments, and the home feed shows each user an ordered, endlessly scrolling list of posts. The report gives only the name of the problem, so the candidate sources, the objective and the scale are open: settle them with the interviewer before designing. ```hint Too many posts to score Estimate how many posts are eligible for one user and how many a heavy model can score within one request's latency budget, then decide how to bridge the gap. ``` ```hint Many actions, one order Decide how several predicted actions, such as opening, upvoting, commenting on or hiding a post, become a single score, and who chooses the weights. ``` ### Clarifying Questions - Does the feed contain only posts from communities the user has joined, or also recommended posts from other communities? - What should the feed optimize in the long run: engagement, time spent or return visits, and which guardrails apply? - How many daily active users and new posts per day are there, and what latency budget does a feed request have? - How soon after posting must a post be eligible to appear in feeds? - What should a brand-new user who has joined no communities see? ### What a Strong Answer Covers - An objective that combines predicted actions with negative feedback and guardrails, tied to long-term goals - A multi-stage design: candidate generation from joined communities and recommendations, filtering, a light and a heavy ranker, and re-ranking - User, post, community, author and real-time engagement features, served from batch and streaming stores - Training from impression logs: labels, position bias, negative sampling and retraining cadence - Re-ranking for diversity across communities, freshness and policy, plus cold start for users, posts and communities - Offline metrics, online experiments with guardrails, feedback loops and monitoring ### Follow-up Questions - A new user has joined no communities. What does the first feed look like, and how quickly does it adapt? - A few very large communities dominate everyone's feed. How do you keep smaller communities visible without hurting engagement? - After a model launch, opens rise but hides and reports rise too. What do you change? - A breaking post must reach interested users within minutes. Which parts of the pipeline set that delay?

Overview: An ML system design question about ranking a personalized home feed of posts from topic communities on a large discussion platform. It tests multi-stage candidate generation and ranking, combining predicted actions into one score, diversity, cold start, freshness and online evaluation.

Reddit logo
Reddit
Aug 13, 2026
easyMachine Learning EngineerOnsiteML System Design
0
0

Design the ranking system for the home feed of a large online discussion platform. Assume users join topic communities, posts in those communities collect votes and comments, and the home feed shows each user an ordered, endlessly scrolling list of posts. The report gives only the name of the problem, so the candidate sources, the objective and the scale are open: settle them with the interviewer before designing.

Clarifying Questions Guidance

  • Does the feed contain only posts from communities the user has joined, or also recommended posts from other communities?
  • What should the feed optimize in the long run: engagement, time spent or return visits, and which guardrails apply?
  • How many daily active users and new posts per day are there, and what latency budget does a feed request have?
  • How soon after posting must a post be eligible to appear in feeds?
  • What should a brand-new user who has joined no communities see?

What a Strong Answer Covers Guidance

  • An objective that combines predicted actions with negative feedback and guardrails, tied to long-term goals
  • A multi-stage design: candidate generation from joined communities and recommendations, filtering, a light and a heavy ranker, and re-ranking
  • User, post, community, author and real-time engagement features, served from batch and streaming stores
  • Training from impression logs: labels, position bias, negative sampling and retraining cadence
  • Re-ranking for diversity across communities, freshness and policy, plus cold start for users, posts and communities
  • Offline metrics, online experiments with guardrails, feedback loops and monitoring

Follow-up Questions Guidance

  • A new user has joined no communities. What does the first feed look like, and how quickly does it adapt?
  • A few very large communities dominate everyone's feed. How do you keep smaller communities visible without hurting engagement?
  • After a model launch, opens rise but hides and reports rise too. What do you change?
  • A breaking post must reach interested users within minutes. Which parts of the pipeline set that delay?