↿Home
Music Platform (Work)

Worked on a Music Platform belonging to a major UK company which was used by over 150,000 artists storing over 45TB of audio data. Was on the project for 3 years, and was the technical lead for 2 years.

Provided support for the client, delivering regular progress updates and collaborating with them to identify their product needs, create new tickets and agree on priorities. Dealt with all emerging technical issues and delivered several major changes during my time there.

Music Migration

Led the delivery of a migration of all our audio data. The migration consisted of passing the all the audio files stored in S3 through an AWS Lambda function which used ffmpeg to normalize the sound, strip metadata and convert to a more standard format.

The quantity of audio data (~20TB at the time) meant the migration took a lot of time (~20 days) and we hit lots of edge cases within our ffmpeg processing. Had to methodically go through all the failures and fix or justify each one to minimize data loss during the migration. In the end the migration was a success, with all the non-migrated files being corrupted and unused for a significant amount of time.

Using Opensearch for advanced search features.

Scoped and delivered an integration with AWS Opensearch to enable some advanced machine-learning powered search features. Created our Opensearch code + schema, along with a migration process to move our data from other sources of truth into Opensearch.

To enable the machine-learning features we sent every audio file to an external service which replied with machine-learning generated 'similarity' vector along with generated audio tags (e.g. bpm, genre, mood). We then stored this data in Opensearch and added support for filtering search results by these values.

Moved our existing search functions from using SQL queries to instead using Opensearch queries, including supporting the existing pagination API.

Migration from Akka to Tapir

Scoped and delivered a migration from Akka to Tapir, two different http frameworks for Scala

In 2022, Lightbend announced that the Akka http framework was going to be moving to a commercial licensing model. The client deemed this license too expensive so I prototyped, scoped and delivered a migration to an alternative tech stack of Tapir, http4s, cats-effect and fs2.

This migration was very complicated, affecting almost every single file in our Scala web server, from database queries to endpoint definitions. In the end I delivered the migration successfully and under budget.

UX Redesign

Scoped and delivered a complete redesign of one of our public websites. Worked closely with the UX designers, having regular meetings to discuss the designs and arrive at a final design we all liked and agreed could be delivered within budget.

Organized the work, assigning tickets to junior developers and relaying with the client with regular demos and updates to ensure they were happy with the process. Occassionally consulting with the UX designers to clarify or update parts of the design which proved more difficult to implement than expected.

In the end delivered under budget, and was received very well.