Common Problems
Design Strava
Try This Problem Yourself
Practice with guided hints and real-time feedback
Understanding the Problem
Functional Requirements
- Users should be able to start, pause, stop, and save their runs and rides.
- While running or cycling, users should be able to view activity data, including route, distance, and time.
- Users should be able to view details about their own completed activities as well as the activities of their friends.
- Adding or deleting friends (friend management).
- Authentication and authorization.
- Commenting or liking runs.
Non-Functional Requirements
- The system should be highly available (availability >> consistency).
- The app should function in remote areas without network connectivity.
- The app should provide the athlete with accurate and up-to-date local statistics during the run/ride.
- The system should scale to support 10 million concurrent activities.
The Set Up
Defining the Core Entities
The API
High-Level Design
1) Users should be able to start, pause, stop, and save their runs and rides.
2) While running or cycling, users should be able to view activity data, including route, distance, and time.
3) Users should be able to view details about their own completed activities as well as the activities of their friends.
Potential Deep Dives
1) How can we support tracking activities while offline?
2) How can we scale to support 10 million concurrent activities?
3) How can we support realtime sharing of activities with friends?
4) How can we expose a leaderboard of top athletes?
Currently up to 25% off
Hello Interview Premium
On This Page
Understanding the Problem
Functional Requirements
Non-Functional Requirements
The Set Up
Defining the Core Entities
The API
High-Level Design
1) Users should be able to start, pause, stop, and save their runs and rides.
2) While running or cycling, users should be able to view activity data, including route, distance, and time.
3) Users should be able to view details about their own completed activities as well as the activities of their friends.
Potential Deep Dives
1) How can we support tracking activities while offline?
2) How can we scale to support 10 million concurrent activities?
3) How can we support realtime sharing of activities with friends?
4) How can we expose a leaderboard of top athletes?

Schedule a mock interview
Meet with a FAANG senior+ engineer or manager and learn exactly what it takes to get the job.