SoundCloud for Developers

Discover, connect and build

Backstage Blog RSS

  • December 7th, 2017 Architecture Microservices How SoundCloud uses HAProxy with Kubernetes for user-facing traffic By Matthias Rampke

    A little under two years ago, SoundCloud began the journey of replacing our home-grown deployment platform, Bazooka, with Kubernetes. Kubernetes automates deployment, scaling, and management of containerized applications.

    Read more...

  • October 16th, 2017 iOS Architecture Leveraging frameworks to speed up our development on iOS - Part 1 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...

  • October 4th, 2017 Data Science Machine Learning Analytics Data SoundCloud's Data Science Process By Josh Devins

    Here at SoundCloud, we’ve been working on helping our Data Scientists be more effective, happy, and productive. We revamped our organizational structure, clearly defined the role of a Data Scientist and a Data Engineer, introduced working groups to solve common problems (like this), and positioned ourselves to do incredible work! Most recently, we started thinking about the work that a Data Scientist does, and how best to describe and share the process that we use to work on a business problem. Based on the experiences of our Data Scientists, we distilled a set of steps, tips and general guidance representing the best practices that we collectively know of and agree to as a community of practitioners.

    Read more...

  • September 27th, 2017 Project Management Engineering Management Deliver software faster by managing work in progress, not by adding overtime By Matt Weiden

    Product development flow (flow) is the rate at which our products are developed, from idea to deployment. Good flow means that products should pass through the development cycle quickly and continuously.

    Read more...

  • July 28th, 2017 Microservices Finagle Scala Functional Programming Inside a SoundCloud Microservice By Matthias Käppler

    If you're a regular visitor to this blog, you might be aware that we have been transitioning to a microservices based architecture over the past four to five years, as we have shared insights into the process and the related challenges [on][1] [multiple][2] [occasions][3]. To recap, adopting a microservices architecture has allowed us to regain team autonomy by breaking up our monolithic backend into dozens of decoupled services, each encapsulating a well defined portion of our product domain. Every service is built and deployed individually, communicating with other services over the network via light-weight data interchange formats such as JSON or Thrift. What we haven't touched on so far is how a microservice at SoundCloud looks backstage.

    Read more...