Trying to be cogent.
I’m a software engineer with a focus on designing for simplicity, reliability and stability in distributed systems.
At SoundCloud I’m building tools to the musicians and artists who host content on the platform, and before that I was the Tech Lead of the Data Platform, working on the architecture of our data infrastructure, and guiding how we work with data across the company.
I cycle a lot, and my big event of the year has been the Haute Route Alps, riding in the mountains for a week.
This year we’ve welcomed a new tiny human into our lives!
SoundCloud Premier Distribution allows creators to distribute their music from SoundCloud to other streaming platforms and stores. For many of our users, this will be their first experience with the strict requirements of the music industry supply chain on metadata and media. Here we’ll look at how a system of automatic and manual validations allows users to get fast feedback as they prepare a release.
One incredible year of doing everything and nothing.
The poop kept coming. And coming. And coming. The dam didn't hold. There was poo on the wall.
We did a baby! Giving birth looks really hard, and my wife is a hero. The first week of Ellie's life has been a whirlwind of hospital visits, poo, sleep deprivation, and becoming besotted with a new tiny human.
We're having a baby! We have no idea what will happen, and don't understand what will take up so much time!
An incredible and joyful (and exhausting) week in beautiful places. What an experience.
On my third attempt at this beautiful but brutal course of 174km and 5500m of ascent I finished with a Brevet d'Or, the Gold Classification
We have a good solution for ownership of services in a microservices architecture. We can learn from this to define ownership of datasets in a way that reduces the total cost of maintenance and integration across teams.
I'm riding the Haute Route Alps 2017, from Nice to Geneva through the mountains. This describes what it is and how much it's going to hurt.
Record shredding allows nested data structures to be considered in a sort-of-tabular way, and stored in a columnar data store. This post describes the intuition behind how this can be done preserving message structure, from Dremel and Parquet.
We like our code to be "robust". This post looks at different failure modes against which a system needs to be protected
Being explicit about costs and implications when making choices makes future decisions easier when things change. A collaborative document can be a great implementation of this.
An introduction to compilation for the JVM, bytecode and JIT compilation, and benchmarking with JMH. It accompanies a talk I gave to the Berlin-Brandenburg Scala User Group.