code
Once every two weeks, we prepare new versions of our mobile apps to be published to the app stores. Being confident about releasing software at that scale — wit…
At KotlinConf 2019, I talked about the power of types. In essence, I discussed limiting the number of primitives we use in our code in favor…
A large portion of an Android app’s build time can consist of Dagger annotation processing, and most developers agree that productivity is…
Planet Earth vs. Jupiter. There is the same order of magnitude between the ratio of these two planets and the amount of code that defined…
A previous post on this blog ended with the following paragraph: “We might also replace JSON with a more efficient serialization protocol…
Most SoundCloud backend engineers have good feelings about the old backend engineering take-home challenge. It’s commonly been characterized…
Code refactoring is an essential part of the job of software developers. As time goes on, technology evolves, product requirements change…
“To me, legacy code is simply code without tests.” — Michael Feathers If untested code is legacy code, why aren’t we testing data pipelines or ETLs (extract, tr…
This is the story of how we used the Strangler pattern to migrate our public API from a monolithic codebase to a fully fledged BFF over the…
I’m a backend developer who worked extensively writing code in Golang before joining SoundCloud. SoundCloud mostly uses Scala for its…





