Pandora, Pandora (service) on Wikipedia
Senior Software Engineer, Consumer Electronics · 2015–2017 · San Francisco
Holding Pandora's cast receiver through the year it stopped streaming stations and started streaming songs.
Pandora was neither terrestrial radio nor an on-demand service: it streamed stations under a licence that let a listener steer but never choose. No picking a track, no replay, no queue, and a ceiling on skips. Those were licensing terms rather than product decisions, which is why moving to on-demand was a different business and not a new feature. Buying Rdio out of bankruptcy was how Pandora set about it, keeping about a hundred of us and putting the licensing team onto direct deals with labels and publishers instead of paying a standard rate to play whatever came next.
This was 2015–2017, when Pandora had about 80 million active listeners. My surface through all of it was the Chromecast receiver, the screen your television shows when someone casts to it, and it had to grow every control the old licence had never allowed. Alongside it I built the rig that told us whether it still worked on the hardware people actually owned, and the same HTML5 codebase went into a Windows 10 app built to run from Xbox to phone.
- JavaScript
- Backbone
- SVG
- Chromecast
Key projects
Selected work from the Pandora years.
Signing in from inside someone else's app
Partner integrationsPandora inside Uber was an account-linking problem, not a player. A rider taps the music bar and a webview has to carry them from nothing to a working session without leaving the car: sign up, log in, or connect an account they already had, with an activation code binding that session to one specific device. Most of the work was the states nobody demos: a sign-up the form rejects, an email already in use, a session that timed out, a country the service was not licensed in. Each of those had to show the rider a next step, in copy that changed between rider and driver. The driver side shipped first, in June 2016, and the rider side followed. Uber had been in Rdio's client list before any of this, so it was a partner I met twice, at two companies.
Controls the licence never allowed
On-demandThe old product gave you a station, two thumbs and a ceiling on skips, because the licence it streamed under required exactly that: steer, don't choose. On-demand was a different licence and a different product, and the receiver had to grow the controls the old one had never permitted, repeat and repeat-one and shuffle and a queue you could look at. On a television the hard part is legibility rather than logic. These controls sit over whatever album art is playing, so I drew them as a set and tested every state against light art and dark art until each one read from across a room. I shipped that receiver UI for the launch of Pandora Premium on 13 March 2017, fifteen months after the acquisition that made it possible.
A Chromecast on its own network
ValidationA cast receiver is hard to test because nothing about it is local. A build has to reach a phone, the phone has to cast to a Chromecast, and the Chromecast has to reach the backend before a single assertion is worth making. So I wired the loop onto dedicated hardware: a build notification into an OSX box running the iOS simulator and an Android emulator, casting across a private router to a real Chromecast, results coming back out the far end. The assertions came straight from Pandora's own device-certification checklist, written as tests: what happens when idling passes its limit, when a thumbs-down arrives with no skips left, when a second stream is detected on the account, when playback sits paused too long. The receiver also had to run on hardware nobody upgrades, so I profiled the new interface against the old one on a first-generation Chromecast and watched where the animation budget actually went.
Music ran through three of these companies: an artist feed at TastemakerX, the catalogue itself at Rdio (more than 30 million songs), and here, where a licence decided what a listener was allowed to do.
Related context
- The receiver, in someone else's living room
A how-to video published in April 2017, a month after Premium launched. It isn't about me or about Pandora, but from 1:35 it shows the cast receiver running on a television, which is the only public footage of that surface I know of.
- Pandora's on-demand competitor, launching after the Rdio acquisition
The launch written up from the other side: what Pandora bought in 2015 and what it shipped fifteen months later.