Broadcast operator console

APMC, 2026

A macOS app that broadcast operators use live during games, built in Flutter.

Context

During a live game, operators need one desktop tool to run the stream: pick the input, trigger ad breaks and keep the feed healthy.

Problem

It had to be dependable under live conditions, on a stack the web team had not used before.

Signal flow in the operator console: inputs go through the switcher to the program output, with ad breaks triggered from the app.

What I did

  1. Learned Dart and Flutter for the project.
  2. Built the ad-break controls, including recovering a break whose response was lost and importing breaks from a spreadsheet.
  3. Improved the input switcher: readable input names and aliases, and a confirmation before a route group changes input.
  4. Added a fullscreen video mode for macOS that keeps the audio meters on screen.
  5. Fixed SRT playback for feeds protected with a passphrase.
  6. Cut and shipped releases myself.

Outcome

  • Used live, during games, by the people running the broadcast.
  • 86 pull requests over its life.

She picked up Flutter at a remarkable pace and implemented advanced features with minimal guidance. She pointed out technical improvements in my PRs and took the initiative to introduce test-driven development into that codebase.

Pierre ChamberlainFullstack Developer, APMC

Stack

Flutter, Dart, macOS, SRT

Want to talk about work like this?

I’m happy to go deeper on any of it, including what I’d do differently.