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.
Sometimes keeping your team up to date both weekly and candidly, without adding extra meetings and friction to your workday, is difficult. If only there were a newsletter they could subscribe to to keep updated…
“To me, legacy code is simply code without tests.” — Michael Feathers
If untested code is legacy code, why aren’t we testing data pipelines or ETLs (extract, transform, load)? In particular, data pipelines built in SQL are rarely tested. However, as software engineers, we know all our code should be tested. So in this post, I’ll describe how we started testing SQL data pipelines at SoundCloud.
As part of our efforts to improve our APIs, we’re introducing updates on how we paginate over tracks. This only affects developers and apps that aren’t strictly relying on the next_href
field, but rather custom manipulating the offset
to request a page.