Design a News Aggregator with Interest-Based Personalized Feeds

Quick Overview

Design a news aggregation service that ingests articles from many publishers and serves each user a feed they can customize by interests, driving the full flow from ingestion to a ranked personalized feed. It tests ingestion and deduplication, story clustering, interest modeling, feed generation and ranking, caching, freshness and scale.

Design a News Aggregator with Interest-Based Personalized Feeds

Company: Rippling

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

Design a news aggregation service in the style of Google News: it gathers articles from many publishers and shows each user a feed of stories. The key requirement is that users can customize their feed based on their interests. You are expected to drive the end-to-end flow yourself, from a publisher's article being ingested to that article appearing, ranked, in the feeds of the users it interests. The report gives no scale or freshness targets, so agree on them with the interviewer. ```hint Follow one article Trace a single article from the moment a publisher posts it to the moment it appears in a feed, and list every step that has to happen on the way. ``` ```hint Where the feed is assembled Ask whether each user's feed should be computed ahead of time or when it is requested, given how many users share the same interests. ``` ### Clarifying Questions - How do users express interests: choosing topics, following sources, people, places or other entities, muting them, or also through implicit signals from what they read? - What scale should the design support: publishers, new articles per day, daily active users and feed requests per second? - How fresh must the feed be for breaking news, and how far back in time does it reach? - Should coverage of the same event by many publishers be grouped into one story? - Is the feed localized by region and language? - Does the service show full articles, or headlines and snippets that link to the publisher? ### What a Strong Answer Covers - Requirements and back-of-the-envelope scale, with the interest-customization requirement shaping the design - Ingestion from publishers, deduplication, grouping articles into stories, and topic and entity classification - A per-user interest model combining explicit choices with implicit signals, and how it is stored and updated - Feed generation: candidate retrieval by interest, ranking on relevance, freshness, quality and diversity, and the precompute-versus-request-time decision - Data model and APIs for articles, stories, interests and feeds, with caching - Breaking-news freshness, failure handling, monitoring, and end-to-end latency ### Follow-up Questions - A major story breaks. How does it reach the feeds of interested users within minutes? - A user follows only one niche topic, and it had no news today. What does their feed show? - How do you stop the feed from filling up with many articles about the same event? - How would you measure whether personalization helps, and keep users from being trapped in a filter bubble?

Overview: Design a news aggregation service that ingests articles from many publishers and serves each user a feed they can customize by interests, driving the full flow from ingestion to a ranked personalized feed. It tests ingestion and deduplication, story clustering, interest modeling, feed generation and ranking, caching, freshness and scale.

Rippling logo
Rippling
Nov 1, 2026
mediumSoftware EngineerTechnical ScreenSystem Design
1
0

Design a news aggregation service in the style of Google News: it gathers articles from many publishers and shows each user a feed of stories. The key requirement is that users can customize their feed based on their interests. You are expected to drive the end-to-end flow yourself, from a publisher's article being ingested to that article appearing, ranked, in the feeds of the users it interests. The report gives no scale or freshness targets, so agree on them with the interviewer.

Clarifying Questions Guidance

  • How do users express interests: choosing topics, following sources, people, places or other entities, muting them, or also through implicit signals from what they read?
  • What scale should the design support: publishers, new articles per day, daily active users and feed requests per second?
  • How fresh must the feed be for breaking news, and how far back in time does it reach?
  • Should coverage of the same event by many publishers be grouped into one story?
  • Is the feed localized by region and language?
  • Does the service show full articles, or headlines and snippets that link to the publisher?

What a Strong Answer Covers Guidance

  • Requirements and back-of-the-envelope scale, with the interest-customization requirement shaping the design
  • Ingestion from publishers, deduplication, grouping articles into stories, and topic and entity classification
  • A per-user interest model combining explicit choices with implicit signals, and how it is stored and updated
  • Feed generation: candidate retrieval by interest, ranking on relevance, freshness, quality and diversity, and the precompute-versus-request-time decision
  • Data model and APIs for articles, stories, interests and feeds, with caching
  • Breaking-news freshness, failure handling, monitoring, and end-to-end latency

Follow-up Questions Guidance

  • A major story breaks. How does it reach the feeds of interested users within minutes?
  • A user follows only one niche topic, and it had no news today. What does their feed show?
  • How do you stop the feed from filling up with many articles about the same event?
  • How would you measure whether personalization helps, and keep users from being trapped in a filter bubble?