Please log in to watch this conference skillscast.
If you’ve ever glanced at Spotify’s release notes, you’ll find them quite underwhelming. No announcements of super awesome features, some random ramblings that may or may not be true. Of course, the team is always rolling out new features and their UI changes from day to day. And, it’s all personalised - the UI presents what’s relevant to you and some of you might even be lucky enough to receive new features before Spotify rolls it out to everyone.
Spotify uses two major backend components to control this. First, we have a web-based ab testing system that they can use to rollout features to random subsets of users, grouped by region, as well as targeting different platforms (Android, iOS, Desktop). A developer simply adds a flag to the system, and then can use the flag in the code to exclude or include different code paths. Second, we have a sophisticated UI content framework that accepts JSON data to render certain pages throughout the app with the latest and most relevant data for that user. The framework not only controls content, but can shape the layout of the page. Multiple backends can provide the content and the clients interpret the data and render it in a consistent way natively.
Breaking Spotify’s release cycle by using the backend to drive the UI and feature releases
Chris is an Android Engineer working on the radio product for Spotify. He is based out of the NYC office and is originally from Australia.