Skip to main content
Mira Connect call messages on desktop.

Mira Connect

Making connections more seamless and productive for field operators and office experts

  • WebRTC
  • RabbitMQ
  • React
  • Websockets

The problem

Mira Connect was one of Mira’s core products, but the existing video platform was limited to one expert and one headset operator at a time. Clients needed a more stable way to support field teams, bring in the right people, and keep a record of what happened during a call. The product needed to move from a two person call tool into a multiparty collaboration surface for industrial support.

Mira Connect pre call lobby on desktop.
Mira Connect call guest requests list on desktop.

Architecture

Because this was the next major version of a core product, the architecture had to balance reliability, speed, and the reality of field conditions. We used an external provider for TURN/STUN and media servers so larger calls could feel stable for clients. The UI shifted toward a multiparty meeting model with an industrial aesthetic, while product specific events like annotations, messages, ringing, and availability needed their own channel. We started with polling websockets and Redis, then moved to RabbitMQ and MQTT when reliability became the higher priority.

Mira Connect call annotations viewer on desktop.

Development

I focused on the web client and used Storybook to build UI components in isolation while designs were still moving. On the state and data side, I built a MobX State Tree module for the external WebRTC provider and created modules for ringing, room join and leave flows, guest access, and meeting reports. After the alpha release exposed reliability issues in our websocket transport, I helped pivot the client toward a RabbitMQ backed message flow. From there we added call links, invites, guest calls, and meeting reports so external collaborators and organizations could join the workflow.

Mira Connect call History viewer on desktop.

Learnings

This was the first project where I led architecture discussions, wrote initial PRDs for the web client, and created sequence and flow diagrams for team alignment. It also taught me the difference between leading as a sole contributor and leading a distributed team of contracted developers. The time zone gap made delegation and clarity more important. Technically, the project deepened my understanding of network protocols, complex state, and the need to be transparent when web, headset, and API changes affect one another.

Page 1 of Mira Connect call report
Page 2 of Mira Connect call report