Skip to content
Cobalt Rentals

How Spotify uses GitHub

Spotify streams music to 217 million active users across iOS, Android, web browsers, desktop apps, and smart devices. To keep delivering innovative features and maintain seamless experiences across all platforms, Spotify's development teams collaborate using GitHub Enterprise Server for internal projects and GitHub Enterprise Cloud for open source work and external partnerships.

Hero image for the story: Spotify

The challenge

Product differentiation and user experience are critical in an increasingly crowded streaming industry. With a growing set of features, Spotify's development team must collaborate to ensure everything from the client to the back-end infrastructure works seamlessly together. For a user-centric brand, it's essential that nothing breaks during regular updates.

Open source and innersource

Spotify builds on open source foundations. The recommendation-driven "Discover Weekly" playlists are powered by Scio, an open source project built on Apache Beam that computes recommendations for hundreds of millions of users and runs complex processing jobs on thousands of machines in parallel. The team maintains Scio as open source because they believe in the model—thousands of contributors bring thousands of ideas, greater diversity of thought, and ultimately more robust solutions.

To bring open source innovation to proprietary projects, Spotify uses innersource, which allows developers to run internal projects as if they were open source: working openly, learning from each other, and reusing code across the company. As Product Manager Laurent Ploix explained, "We encourage people to contribute to someone else's code. Instead of submitting a JIRA ticket and waiting for a response, anyone can contribute."

Ploix sees shared ownership as a route to higher quality and speedier delivery. "You need both openness and ownership," he said. "When developers own code, they don't change it for others or work on it exclusively. It means they feel strongly about it. They care about the quality, and they're proud of it." Teams who own projects take on roles similar to open source maintainers, receiving and triaging bugs, ideas, and code, and managing deprecation or archiving of projects.

Continuous integration and developer feedback

Continuous integration (CI) is central to Spotify's ecosystem. The team built CI systems that integrate with GitHub Enterprise to provide developers with the exact information they need to make informed decisions. "Our builds generate a lot of data, and it's sometimes difficult to find the relevant feedback," says Marcus Forsell Stahre, Senior Engineer at Spotify. "Our integrations with GitHub enable us to surface it in the pull request and shorten the feedback loop."

Ploix noted that custom tools and webhooks help surface relevant feedback, and he sees the GitHub API and Checks API as opportunities to further streamline the review process. "The API has the potential to transform the developer experience. We use a lot of bots to provide insight into the impact a pull request will make—but it tends to pollute the conversation. We want to make this information easier to take in and act on."

Developer experience and onboarding

When Spotify developers need help, they turn to the GitHub Enterprise Support Team. "We always compare the types of support we get from vendors," explained Ploix. "We hear back quickly from GitHub with insight into what's going on—we've been really happy with it." The Spotify team also meets regularly with GitHub Solutions Engineers for in-depth support on API usage and larger strategic issues.

As Spotify grows and recruits more developers, most new hires already know GitHub from contributing to open source projects. "People know what a pull request is because it's how they contribute to open source projects," Ploix noted. "We have many developers who are well-versed with GitHub, either for personal development or previous roles. With GitHub Enterprise, no one has to relearn the wheel."

Ploix also appreciates the freedom teams have to fork an existing project and work on it without touching the original source code. "The sandbox environment GitHub provides allows our developers to experiment with new ideas. They don't have to worry about breaking anything fundamental. This sort of creativity is encouraged, and it's helped make the Spotify client what it is today."