Product Context
FitPulse is a consumer mobile app for workout tracking and wellness content. The team wants to add ML-powered personalization across the home screen: recommended workouts, articles, and push notification suggestions tailored to each user.
Scale
| Signal | Value |
|---|
| DAU | 18M |
| MAU | 65M |
| Peak home-feed QPS | 120K |
| Peak push-decision QPS | 35K |
| Content catalog | 9M items (workouts, plans, articles, videos) |
| New items/day | 180K |
| p99 latency budget (home feed) | 180ms end-to-end |
| p99 latency budget (push decision) | 80ms |
Users open the app 3.5 times/day on average, and the home screen returns 20 ranked items per session. About 40% of users are relatively cold-start each month with fewer than 5 meaningful interactions. The business goal is to improve 7-day retention and workout starts without materially increasing notification fatigue or serving cost.
Deliverables
- Define the functional and non-functional requirements for ML features in the mobile app.
- Propose an end-to-end architecture covering data collection, feature computation, model training, and online serving.
- Design a multi-stage recommendation pipeline for the home screen (retrieval → ranking → re-ranking) and explain whether push notification prediction should reuse the same models or use a separate path.
- Choose model types for each stage and justify them with latency, freshness, and interpretability tradeoffs.
- Define offline evaluation, online experimentation, and monitoring for drift, training-serving skew, and degraded user experience.
- Identify major failure modes, fallback behavior, and how you would launch safely.
Constraints
- Mobile clients are often on poor networks, so payload size and response time matter.
- User-level health data is sensitive; raw event retention is limited to 30 days in some regions.
- Freshness matters: newly published workout plans should become eligible within 10 minutes.
- The team has a moderate infra budget: GPU serving is allowed only for the heaviest stage, and only if clearly justified.
- Product requires guardrails for over-notification, content diversity, and safe recommendations for beginner users.