2015: MSTY - The Music Messenger AppRuby on Rails v4.2, PostgreSQL, Redis, ElasticSearch, Heroku, AWS S3 and EC2
MSTY is a music messaging mobile app that allows users to share curated music, photos and text messages with their friends. It was the first app of its class to have music distribution rights, and it was featured as Apple Editor's Choice worldwide.
It's built as an Android / iOS native app with a JSON API Backend written in Ruby on Rails.
I joined MSTY at the very beginning and single-handedly designed, architected and coded the entire Backend infrastructure, with an obssessive focus on reliability, performance and scalability.
My main responsibilities involved everything related to servers, from coding to monitoring, to responsibility for response times, uptime, maintenance plans, disaster recovery, etc.
- Apple's Editor's Choice: In August 2015, MSTY was featured as Apple Editor's Choice in the UK and 10 other countries, and as "Best New App" in 143 countries. Also featured for a month as #1 place in "Best of August Amazing Apps".
- Performance: After the initial development phase, I worked extensively on performance, through stress tests and profiling,
reaching a sustained throughput high enough to serve 4 million daily active users, with only a single medium-sized PostgreSQL instance,
and a response time in production consistently under 20ms (p95).
The architecture relies strongly on Redis, not just as a simple cache, but also making extensive use of its data structures (particularly sorted sets) to do complex operations without having to hit PostgreSQL. It also makes heavy usage of message queues and background workers (Sidekiq) to do any jobs that don't need to be realtime.
- Multi-device synchronization: A single user can have MSTY installed on multiple devices, and everything they do is propagated and synchronized to all of them. Reinstalling the app also leads to zero data loss, all state is reconstructed from servers information.
- Automated music curation: Automatic ingestion of content from music labels, with automatic editing of songs using optimal clip points for previews, while also allowing overrides by human curators to provide better cuts where appropriate.
- Fully featured search: Implemented on top of a small Elastic Search cluster; allows users to find songs by artist, track name, lyrics, tags, genre and other metadata, with "search as you type" functionality (prefix searching through edge N-grams), fuzzy matching, and suggestions to correct typos.
- Admin Panel: MSTY has a sophisticated admin panel that allows the music curators to add music, manage playlists, image templates, translations and other resources. It also provides troubleshooting information to support staff, and charts with database monitoring information and KPIs for the business management. Finally, external entities also have access to the admin to run interactive advertising campaigns over mass media, engaging with audiences through the app.
- Automated testing: 100% code coverage using TestUnit and developed using TDD methodology. Continuous integration done with Codeship.
- DDEX Standards Compliance: Developed infrastructure to receive full catalogs and updates from music labels (dozens of terabytes, millions of songs), process updates to metadata, and comply with regional music rights and takedowns. Also provided sales and financial reporting. All this was done following the Music Industry DDEX Standards.
Back to Professional Portfolio