Next-Track Logic for a Million-Song Radio Service Driven by One Listener Input
Company: Google
Role: Product Manager
Category: Machine Learning
Difficulty: medium
Interview Round: Other
A radio station draws its music from a catalog of more than one million songs. Design the algorithm that decides which song plays next, given that the listener may give only one input, on the landing page.
```hint Pick the input first
Decide what the single input should be before designing anything else: it sets how much the system knows when it chooses the very first song.
```
### Clarifying Questions
- Does each listener get their own stream, or is this one broadcast that everyone hears?
- After the landing page, can the system still observe skips, pauses or a listener leaving, or does it get no signal at all?
- Are listeners signed in with a listening history, or could each one be a first-time visitor?
- What do we know about each song: artist and genre tags, audio features, play counts, licensing limits?
### What a Strong Answer Covers
- The choice of the single input, weighed against the other inputs it could have been
- How the catalog is narrowed to candidates and ranked for the next slot, including cold start for new listeners and new songs
- Sequencing rules that keep the stream pleasant to listen to, plus any licensing or business limits
- How the system learns within and across sessions, and the metrics used to judge it
### Follow-up Questions
- How would you balance familiar songs against discovery, and how would you test where to set that balance?
- Many listeners leave during the first two songs. How would you find out why?
- A song released today has no play history. How does it reach anyone's station?
Overview: A technical product prompt about designing the logic that chooses the next song for a radio station drawing on more than a million tracks, when the listener may give only one input on the landing page. It tests picking that input, narrowing and ranking a huge catalog, sequencing a pleasant stream, and learning from listener behavior.