There’s no single platform team that consists of only web engineers at SoundCloud, even though we consider ourselves to be part of the “Web Collective.” Instead, all web engineers are split into smaller, cross-functional teams across the organization. This structure definitely has its advantages, but it’s also left engineers in a situation where platform-specific experience and knowledge about platform-specific best practices are more difficult to access than they would be if we were all on the…
As part of our continuous effort toward making improvements to our API with the hope that we can relaunch API access to all developers, we’re making some critical security improvements. Please note that these are important and time sensitive and may cause disruptions in your app if you don’t make the necessary security upgrades.
Let's take a look at techniques we can use to confidently release updates to an internal library that's integrated into hundreds of projects across the company — even if they're API-breaking changes.
You can now retrieve metadata for our full SoundCloud catalog through our API by providing the new access
filter in your request.
How we established a team with a clear focus on data governance (and exactly what that means), allowing us to leverage the vast data available to SoundCloud — as the world’s largest open audio platform — to become a more data-driven company.
In a product company, changes are inevitable so as to best support the strategy and the vision. Often during such a change, new teams are formed and other ones are restructured. While there are many challenges to be solved during a big change, there’s one in particular that’s often overlooked: system ownership. Having experienced not-so-successful handovers, I was inspired to create a guideline that will help other teams do handovers differently.
As a part of our efforts to improve API use, we’re introducing a new Track
object that’s more up to date with our current data model. The following change is intended to standardize and simplify the response data. A new object will be used for all endpoints returning track-related information.
In this post, we share some of the best practices we apply when SoundCloud engineers take on out-of-hours support duties.
As our codebase scales, the need for cleaner architecture becomes more apparent. The dependency inversion principle (DIP) is one tool that helps us build cleaner relationships among our software modules. In this post, DIP is presented using atomic modules and is later applied to frameworks.
We take software testing very seriously at SoundCloud. As we scale our codebases and vary the testing harness, we've also faced some challenges with maintainability. Take a look at this post to learn about some of the tooling we've built to help us manage the execution of and derive insights from the dozens of thousands of tests every day.