Reza Golkhandani // Senior Software Engineer | Backend platforms
From Player to Conductor: Reshaping a Music Remote Around Platform Facts
Product | Apple platforms | Feasibility
From Player to Conductor: Reshaping a Music Remote Around Platform Facts
The goal
The pitch: start a song on your phone, walk to the desk, keep listening from the laptop, control it from whichever device is in your hand. The platform offers no such thing, and the goal was to find out, by measurement, exactly what it does offer and to build the best product that fits inside it, with no server of our own.
The approach
Establish facts before features. Every assumption about the platform got a test, and every result went into a handover document under a heading that says "facts established, measured, not assumed".
What I built
The facts. No cross-device playback API and no account-level device list, so a roster can hold only this device, our own peers, and audio receivers on the network. The system queue is not enumerable; you can see what is playing and every playlist. Track identifiers are local to a library, so identity must travel as metadata.
The product that fits. Our app never plays audio. The first-party music app plays; we conduct it. On a desktop we drive the native app through its scripting interface, which also exposes audio-output routing, so a speaker or another machine becomes a target with nothing installed on it. A phone joins the same roster and drives any desktop. Track identity is re-resolved on the target, cheapest method first, and failure is explicit.
Secure from the first commit. The pairing phrase is a pre-shared key, transport is encrypted from commit one, and frames are size-capped.
The result
A working remote across a laptop, a phone, and network speakers, verified on real hardware, with a control plane that needs no server. The handover, with measured facts, a parts bin of reusable modules, and an honest verdict against the studio's product thesis, is now the template for how every new idea is evaluated.
Takeaways
- Measure platform facts early and write down the method beside each one.
- When the platform will not let you own the thing, control the thing that owns it.
- Every project should leave a parts bin and a verdict, not just a repository.