Building a Cross-Platform Music Streaming Product
I helped take a cross-platform music product from proof of concept to production, shaping the mobile architecture and building core functionality across streaming, authentication, background playback, listening attribution, web, and backend services.
Context
The product needed mobile and web experiences for music discovery, playback, creator workflows, subscriptions, and usage tracking. The mobile app had to support long-form audio, background playback, and reliable listening tracking for royalty and payment distribution.
Problem
The team was moving from a proof-of-concept app toward production with an immature mobile codebase, incomplete streaming flows, and business-critical tracking requirements that had to work reliably in the background - including offline scenarios, interruptions, and multi-hour listening sessions.
What I owned
I helped establish the React Native/Expo architecture, built core authentication and streaming flows, implemented reusable UI foundations and caching patterns, and worked on backend functionality for streaming and authentication. I also contributed to the creator-facing Next.js web app and production issue debugging.
On mobile, I implemented foundational features including authentication, music streaming, background playback, and Chromecast support. I set up the codebase with Apollo Client, caching strategies, and reusable UI patterns that other developers followed for the remaining screens.
On the backend, I built both core platform capabilities and product features, including streaming and streaming authentication, playlists, events, payment and subscription flows, and related APIs. I also helped split the shared GraphQL codebase into separate public and privately deployed admin servers.
Interesting engineering parts
The most interesting problems were around long-form audio playback and accurate listening tracking.
Playback had to continue in the background, survive interruptions, handle offline scenarios, and support pre-signed streaming URLs that could expire during multi-hour audio sessions. When a pre-signed URL approached expiry, I implemented a refresh mechanism that pre-loaded the replacement URL and swapped it at the exact playback position - without audible gaps - while the device was locked.
Listening tracking had to record start and end timestamps accurately across app restarts, unexpected interruptions, and offline playback. I also implemented path tracking - recording how a listener reached a specific set (playlist, search, profile, etc.) - which was critical for payment distribution.
Outcome
The product moved from proof of concept toward production with stronger mobile architecture, reusable foundations, core streaming functionality, and production issue debugging support. The team shipped with a more maintainable codebase and reliable business-critical tracking.