Backstage Blog

RSS logo

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…

Building Clojure Services at Scale

September 20th, 2013 by Duana Stanley

SoundCloud has a service-oriented architecture, which allows us to use different languages for different services. With concurrency and scaling in mind, we started to build some services in Clojure due to its interoperability with the JVM, the availability of good quality libraries, and we just plain like it as a language.

How do you build distributed, robust, and scalable micro-services in Clojure? Read what Joseph Wilk, an engineer and Clojure enthusiast at SoundCloud, has to say.

Read more…