iPowow – Lobot

ABOUT THE PROJECT

Lobot is the IoT platform I architected and developed for iPowow.  The name is coined from the Star Wars character “Lobot” whose job was to run battlefield calculations and determine win percentages.  For our team Lobot is the source of truth for all our infrastructure from a Broadcast perspective.  It was built to help us manage the hardware Appliances that we ship out to client’s broadcast studio data centers and TV trucks.  Within Lobot we’re able to provision hardware, remotely monitor system telemetry per machine, initiate remote updates and execute commands VIA an emulated terminal.  This tool allows our small Broadcast team to easily support and automate the on-boarding of clients with the least human interaction (Just like how Lobot from Star Wars is enhanced by his cybernetic implants!).

The system was designed in a way that allowed iPowow Producers to help manage the Appliances belonging to the TV networks they managed.  With a reduced feature set the Producers could easily do things like switch configurations on the fly so show producers at networks could use the iPowow platform for a variety of shows without requiring one piece of hardware per TV show.

The appliance portion of this project is automated through it’s entire life cycle, from when the hardware is bootstrapped to being utilized in production on live television.  It’s primary job is to communicate to a variety of TV graphics engines and is what puts iPowow on TV!  It has remote upgradability of the system with fail-over copies in the event updates fail, along with the ability to use a USB key for full system recovery.  In the event that an Appliance has failed in the field, I developed a USB recovery system that allows us to remotely recovery the software, or to flash a new configuration to the machine without having to ship hardware between locations.  This system has been used a number of times to revert networking changes that had been made in error to a previous setup that worked.

My involvement in the project was leading the architecture and overall development of all features and management all server infrastructure including deployments of application updates.  I directed and lead two junior developers and tasked them with various pieces of the UI and routes on the API servers.

Technology Profile
  • Node.js, Golang for core systems and the communication platform
  • Angular.js, Grunt, WebSockets for the front end UI layer
  • MongoDB, RabbitMQ, Redis for the main databases and message passing layer
  • Ansible for automating hardware provisioning
  • EC2 for server infastructure