iPowow – Arc


This project is the software-only version of the iPowow hardware Appliance.  It’s delivered via USB to customers and functions similarly to the hardware machine, except it’s intended to be run directly on the graphics engine or a machine on the same subnet as the engine.  For this project I was responsible for the architecture and development.

This project has 2 pieces, which we call the Arc and Reactor.

Arc is the windows desktop application that is designed to work on Windows XP to Windows 10.  It’s GUI is a .NET application wrapper for an underlying Golang process that served up the React UI and facilitates all communication with the broadcast graphics engines.  the C# wrapper simply handles the lifecycle of the underlying GO process, and all UI state.  The React UI is rendered using an embedded Google Chrome Engine.

Reactor is the server side component and facilitates communication to the Arc instances running on client machines.  It’s responsible for licensing, authentication and telemetry.  Since Arc is a software-only version of our main Hardware Appliance, it doesn’t have the cloud configurability it’s sibling product has, as the Arc’s configuration lives next to it on the file system.  In our management platform Lobot Arc’s are displayed and present all the expected telemetry, and provides the ability to modify licensing and terminate access remotely in the event the binary is distributed.

Technology Profile
  • Golang for core systems and the communication platform
  • C# .NET for the desktop application wrapper
  • Embedded Chrome Engine for rendering the React view layer
  • React, Webpack, WebSockets for the front end UI layer
  • MongoDB, RabbitMQ for the main databases and message passing layer
  • EC2 for server infastructure