Design an app-store app recommendation system
Company: Google
Role: Machine Learning Engineer
Category: ML System Design
Difficulty: medium
Interview Round: Technical Screen
You are building an **app recommendation system** for a mobile app store.
## Goal
Recommend apps to a user on surfaces such as:
- Home feed / “Recommended for you”
- Category pages
- Search results (optional extension)
## Requirements (assume if not specified)
- **Personalized ranking** for each user.
- **Cold start** support for new users and new apps.
- **Real-time adaptation** to recent user actions (clicks/installs) within minutes.
- **Business constraints:** respect policy/safety filters and optionally support sponsored placements.
## Input signals
You may use:
- User events: impressions, clicks, installs, uninstalls, time spent, ratings
- App metadata: category, text description, tags, developer, price, locale, device compatibility
- Context: country, language, device type, time
## Output
For a given user and context, produce a ranked list of apps (top-K) with latency suitable for an online product.
Describe:
1) Overall architecture (offline + online)
2) Candidate generation and ranking approach
3) Feature engineering and model choices
4) Data/label definitions and evaluation metrics
5) Cold-start, exploration, and feedback-loop mitigation
6) Monitoring, A/B testing, and reliability considerations
Quick Answer: This question evaluates a candidate's competency in end-to-end machine learning system design for recommender systems, covering personalization, candidate generation and ranking, real-time inference, cold-start handling, feature engineering, evaluation metrics, and production monitoring.