Design a recommendation system from scratch
Company: Meta
Role: Machine Learning Engineer
Category: System Design
Difficulty: medium
Interview Round: Onsite
## Recommendation System Design (two scenarios)
Design a recommendation system **from scratch**. Cover both scenarios:
1. **Location/POI recommendation:** Recommend places (restaurants, attractions, stores) to a user.
- Users may be searching, browsing a map, or opening a “For You” page.
- Relevance depends on location, time, preferences, popularity, and context.
2. **Short-video recommendation:** Recommend a ranked feed of short videos.
- Users scroll continuously; feedback is implicit (watch time, skips) and explicit (likes, follows).
### What to cover
- Product goals and success metrics
- Data collection: what events/data to log and how to obtain bootstrap data
- High-level architecture (offline training + online serving)
- Candidate generation and ranking strategy
- Handling cold start (new users/items)
- Latency/scale considerations and reliability
- Experimentation (A/B tests) and iteration loop
Quick Answer: This question evaluates expertise in recommender systems and related competencies including machine learning-based candidate generation and ranking, data instrumentation and logging, cold-start strategies, and large-scale system design concerns such as latency, throughput, and reliability.