Backstage Blog

RSS logo

Project Necromancy

June 5th, 2018 by Christine Patton

Or, how to raise a project from the dead with tools you probably have lying around at home.

Read more…

Engineering Levels at SoundCloud

May 24th, 2018 by Peter Vida

An absolutely crucial part of the experience of being an engineer at SoundCloud is learning and growing as a person. Pretty much everyone we hire mentions this aspect as one of their main motivations for joining the company. And while retaining highly talented and motivated people and helping them develop is naturally valuable for SoundCloud as a company, it’s also profoundly beneficial for the employees themselves.

Read more…

Keeping Counts In Sync

May 11th, 2018 by Lorand Kasler

Track play counts are essential for providing a good creator experience on the SoundCloud platform. They not only help creators keep track of their most popular songs, but they also give creators a better understanding of their fanbase and global impact. This post is a continuation of an earlier post that discussed what we do at SoundCloud to ensure creators get their play stats (along with their other stats), both reliably and in real time.

Read more…

Running Android UI Test Suites on Firebase Test Lab

May 4th, 2018 by Marvin Ramin

Testing mobile applications is not always an easy feat. In addition to defining what to test and determining how to write those tests, actually running tests can also be problematic — in particular, UI test suites running on real mobile devices or emulators sometimes run for an extensive amount of time.

Read more…

Managing Unplanned and Support Tasks

March 26th, 2018 by Kristof Adriaenssens

One challenge engineering teams often face is dealing with work that doesn’t revolve around developing new features but that still requires the team’s attention and time. The Content Engineering Team here at SoundCloud is no exception, so we iterated on a process to deal with unplanned and support tasks to end up with fewer interruptions and more time to spend on implementing planned features.

Read more…

Automatic Stubbing of Network Requests to Deflakify Automation Testing

January 26th, 2018 by Donal O'Brien

Apple introduced automated UI testing in Xcode 7. This was a great addition for developers because this native support promised, among other things, an improvement in the flakiness notoriously associated with automation tests. As many of us developers have experienced, tests can sometimes fail even when there has been no modification to the test or underlying feature code.

Read more…

PageRank in Spark

January 24th, 2018 by Josh Devins

SoundCloud consists of hundreds of millions of tracks, people, albums, and playlists, and navigating this vast collection of music and personalities poses a large challenge, particularly with so many covers, remixes, and original works all in one place.

Read more…

Insights from SoundCloud’s DeveloperBridge Trainee Program

January 18th, 2018 by Tiffany Conroy

Back in 2016, the SoundCloud People Team collaborated with engineering management in an effort to bring more junior engineers into the company. The result was DeveloperBridge, a paid junior engineering program that ran for 12 months and was based out of our Berlin headquarters.

Read more…

How SoundCloud Uses HAProxy with Kubernetes for User-Facing Traffic

December 7th, 2017 by Matthias Rampke

A little less than two years ago, SoundCloud began the journey of replacing our homegrown deployment platform, Bazooka, with Kubernetes. Kubernetes automates deployment, scaling, and management of containerized applications.

Read more…

Leveraging frameworks to speed up our development on iOS - Part 1

October 16th, 2017 by Pedro Piñera

Growth in code bases come with exciting scalability challenges. As the size of our iOS codebase and team at SoundCloud grew, we faced challenges: long compile times and conflicts. Our productivity started to suffer as a result. We took inspiration from the work done in the backend (Building Products at SoundCloud) and applied it to mobile development. The main goal was to get back to a state where development is fun, fast, and would scale as the number of contributors grew. We modularized our iOS project by splitting it up into modules with well-defined responsibilities and public interfaces that interconnect them.

Read more…