Backstage Blog

RSS logo

Building Products at SoundCloud —Part I: Dealing with the Monolith

June 11th, 2014 by Phil Calçado

Most of SoundCloud’s products are written in Scala, Clojure, or JRuby. This wasn’t always the case. Like other start-ups, SoundCloud was created as a single, monolithic Ruby on Rails application running on the MRI, Ruby’s official interpreter, and backed by memcached and MySQL.

We affectionately call this system Mothership. Its architecture was a good solution for a new product used by several hundreds of thousands of artists to share their work, collaborate on tracks, and be discovered by the…

Read more…

Roshi: a CRDT system for timestamped events

May 9th, 2014 by Peter Bourgon

Let’s talk about the stream.

The SoundCloud stream represents stuff that’s relevant to you primarily via your social graph, arranged in time order, newest-first. The atom of that data model, an event, is a simple enough thing.

  • Timestamp
  • User who did the thing
  • Identifier of the thing that was done

For example,

If you followed A-Trak, you’d want to see that repost event in your stream. Easy. The difficult…

Read more…

Introducing JavaScript SDK version 2

May 1st, 2014 by Erik Michaels-Ober

SoundCloud is pleased to introduce a new major version of the SoundCloud JavaScript SDK. In version 2, we’ve rewritten much of the internal code, resulting in better performance for your JavaScript applications and support for more streaming standards, such as HTTP Live Streaming.

You can test the new version by pointing your JavaScript applications to https://connect.soundcloud.com/sdk-2.0.0.js.

We’ve also created a guide to help you upgrade from version 1 to version 2.

JavaScript SDK version…

Read more…

Irrational Fun: Find Yourself at Berlin Buzzwords

April 27th, 2014 by Erik Michaels-Ober

We were counting down the days until Berlin Buzzwords on May 25, when we realised that it would be great if you came too! With that in mind, we’ve created a contest. One lucky winner will receive a free ticket to Berlin Buzzwords, including travel expenses and accommodation. Here are the details about how to apply.


The ratio of a circle’s circumference to its diameter, represented by the Greek letter π, is an irrational number—it never terminates or repeats. Your goal is to find the SoundCloud…

Read more…

Security update: Heartbleed vulnerability in OpenSSL

April 11th, 2014 by Astera Schneeweisz
Heartbleed

On Monday, April 7th, 2014, a major security vulnerability in OpenSSL was made public. The vulnerability was filed as CVE-2014-0160 and later dubbed “Heartbleed”, because the bug lies within OpenSSL’s heartbeat extension, which is used for keepalive monitoring. As a result of the bug, process memory can be read out remotely by an attacker—potentially including certificates, keys, credentials, tokens, or other sensitive data processed by the server.

OpenSSL works as a cryptographic library that allows for authenticity and confidentiality across the entire Internet. Because the reported Heartbleed bug affects a vast number of internet services using OpenSSL to secure their services (such as HTTPS, SMTP, IMAPS, and POP3), a patched OpenSSL version was released

Read more…

Welcome to SoundCloud's redesigned developer site

April 11th, 2014 by Erik Michaels-Ober

We’ve taken some time to bring all our developer resources together into a single site. In doing so, we’ve reorganized the layout to make things easier to find and also given the site a fresh new look.

We hope you like it!

If you have any feedback about the new design, follow @SoundCloudDev on Twitter and let us know.

Read more…

Sponsoring CocoaPods

March 8th, 2014 by Erik Michaels-Ober

Cocoapods I’m excited to announce that SoundCloud is sponsoring the development of CocoaPods through a Travis Foundation grant. CocoaPods is an open-source dependency manager for Objective-C projects. Travis Foundation is a non-profit that pairs corporate sponsors with open-source projects to make open source even better.

At SoundCloud, our iOS team uses CocoaPods every day to manage the dependencies of our mobile apps. We hope that this sponsorship will lead to improvements that benefit the entire Mac…

Read more…

Smooth image loading by upscaling

February 20th, 2014 by Nick Fisher

The site soundcloud.com is a single-page application that displays a multitude of users’ images. At SoundCloud, we use a technique to make the loading of an image appear smooth and fast. When displaying an image on screen, we want it to display to the user as fast as possible. The images display in multiple locations from a tiny avatar on a waveform to a large profile image. For this reason, we create each image in several sizes. If you are using Gravatar, this technique also applies because you can fetch…

Read more…

Hassle-free concurrency in Android using RxJava

October 23rd, 2013 by Duana Stanley

Both our Android and iOS teams use the reactive programming paradigm to simplify asynchronous, concurrent code in our native mobile apps. For Android, we use Netflix’s RxJava. Matthias Käppler—a SoundCloud engineer and a contributor to the RxJava Android libraryblogs about the HOWs and WHYs of RxJava on Android.

Tomorrow in London, Matthias will be talking about RxJava at Droidcon. You can grab a drink with him and other members of our Android Team at the SoundCloud Droidcon Drinkup.

Read more…

Say hello to Sketchy the spam fighter

October 7th, 2013 by Ursula Kallio

Sketchy the spam fighter Sketchy is a spam-fighting, open-source software framework developed by SoundCloud engineers Matt Weiden, Rany Keddo, and Michael Brückner. Sketchy reduces malicious user activity on web applications. You can use it to address several common issues:

  • Detect when a user submits text that contains spam content.
  • Detect when a user submits multiple texts that are nearly identical.
  • Rate-limit malicious actions that users perform repeatedly.
  • Check user signatures such as IP addresses against external blacklist APIs.
  • Collect and consolidate reports of spam from users.

Read more…