Phase 1 — Clarify & Scope
Interviewer: Design a news aggregator — think Google News or Apple News. What do you want to clarify?
Candidate: Key questions:
- Are we crawling the open web for news articles, or relying on publisher RSS/Atom feeds?
- What's the primary feature: a personalized news feed, trending stories, or topic-based browsing?
- How do we handle duplicate stories (10 sources reporting the same event)?
- What's the freshness requirement — how quickly should breaking news appear?
- Scale: users, publishers, articles per day?
Interviewer: Both web crawling and RSS/Atom feeds. All three features: personalized feed, trending, and topic browsing. Deduplicate coverage of the same story (cluster related articles). Breaking news: < 5 minutes from publication to appearing in feeds. 100 million users, 50,000 news sources, 10 million articles per day.
Candidate: Let me size this:
Interviewer: What are the core requirements?
Candidate:
- Ingest articles from 50K publishers via RSS and web crawl
- Deduplicate: cluster articles covering the same story into a "story cluster"
- Classify articles: topic (politics, sports, tech), entity extraction (people, companies)
- Personalized feed: rank stories by relevance to user's interests and reading history
- Trending: global and per-topic trending stories
- Breaking…
In the full tutorial
- Phase 2 — High-Level Architecture
- Phase 3 — Deep Dive & Evolution
- Phase 4 — Robustness & Operations