Things I learned about SoundCloud

At Mobile@Scale 2016

Bohdan Orlov

Badoo

SoundCloud

  • 175+M Montly active users
  • 20 mobile engineers
  • 2 apps (iOS, Android and React Native)

Find way to share

  • BFF - mobile oriented API
  • Skippy - C++ audio playback library
  • Ideas and experience - priceless

Lava layers

"Successive, well intentioned , changes to architecture throughout the lifetime of the project can lead to a fragmented and hard-to-maintain codebase"

Android

  • Vertical approach
  • Feature by feature
  • Iterative using features flags

iOS

  • "Big bang" approach
  • Dispose legacy code (from agency)
  • Write new code applying "architecture"

Confront technical debt.

Pros

  • nice architecture
  • got rid of legacy
  • dramatically reduced crash rate 

Cons

  • No releases during conversion
  • Some of existing features had to be dropped

Rewriting iOS app

Team organisation

  • Tried Feature Teams
  • Engineers feelt isolated
  • Reverted *

* but will try again

Other things

  • Core Data
  • Reactive Cocoa

  • Dependency inversion (?)

  • Release trains with feature flags

  • CocoaPods based feature separation (failed)

Don't do

well intentionedpremature

changes

Made with Slides.com