Engine for collecting, storing, and analyzing customer data to produce error codes and calls-to-action
Go, Kubernetes, Kafka, MongoDB, Vue, Prometheus
The Diagnostics Engine is an internal service that uses data from Vivint products and determines if there are any problems. It is part of the copmany's platform ecosystem. The engine is written in Go and monitors multiple Kafka streams which come from the various devices being monitored. These datapoints are then stored in a Mongo database. The engine can be queried by other services using various API calls that are tuned for the different end users, such as customer care, or engineering.
The system was designed as a scalable microservice that could efficiently ingest a high-volume data firehose while supporting communication across different platforms and services. I developed HTTP and gRPC endpoints for delivering diagnostic information to clients, while maintaining backwards compatibility as the system evolved. The architecture also included a safety layer that kept the core diagnostic engine separated from its clients, allowing different clients to have different permission structures. I worked with teams across the company to define interfaces and integrate the service with their systems, and built regression-catching unit tests to help ensure that new features did not break existing functionality. The service was designed to support both cloud-based data ingestion and delivery while remaining flexible enough to scale as new diagnostic features were added.
I also work on a GUI for the Diagnostic Data which is an internal Vue 2/3 application. It allows users to query the Diagnostics Engine, as well as edit features and settings. This communicates to the Diagnostics Engine service using Get and Post commands.
Tool for testing and provisioning network security products
C/C++, Python, Embedded Linux
At BlueCoat I worked closely with the hardware team to create diagnostic tools for their secure appliances (Such as the S410 and S620). These diagnostics are used in the factory to validate that the appliances work properly, and a slimmed down version of the diagnostics is shipped with the units that the customers can boot to and use.
The diagnostic interface is a command-line C++ based tool running on an embedded Linux image that reads and exercises the hardware. Some supporting functions are written in Python and Bash. The tool and requisite drivers are packaged in a minimal, bootable Linux image.
Diagnostic GUI for testing Light Pulse (FibreChannel) products
Python, WX Widgets, C
I worked as the lead developer on an internal tool called cScope. cScope is used by the hardware team to test HBAs by running traffic over a loopback and measuring and graphing resulting error rates.
The interface is written in Python using WX Widgets. The interface talks to the hardware over a Windows driver (written in C), or over SSH to a Raspberry Pi using JTAG connection to the HBA.
I worked closely with the Hardware Development team during the development of cScope. They provided requirements which I implemented and submitted for feedback. The resulting software was stable and able to be used for multiple years across various revisions of the product.
Tool for generating VPD and VPD programming instructions for manufacturing
Javascript, HTML, CSS, Binary
I inherited the task of assisting Program Managers (PMs) with creating Vital Product Data (VPD) templates for manufacturing. This involved getting requests from customers, understanding the customers' proprietary format for this data, creating a binary template file, and finally generating instructions for the manufacturing team on how to populate the template during production. I took the initiative to move this process from being done by hand to being completed using a web-based utility. The utility had all the proprietary formats for each customer programmed in and presented a graphical user interface which generated the requisite instructions and template file.
Once developed, the tool proved successful enough to integrate it into the official product workflow. VPD Tool was able to be used by the PMs directly, eliminating the need for an engineering resource to handle the VPD templating.
Utilities and games developed during my spare time
JavaScript, HTML, CSS, SVG
I enjoy recreational programming during my free time. One of my earlier projects was a Tetris clone called NTris. It's an amalgamation of various Tetris games I played during my adolescence, but with the twist that it uses pentraminos, meaning that it has more shapes to contend with. This was an early attempt at creating an interactive javascript application. If I were to do this again today, I would make a lot of improvements. As it stands though, I am proud of what I was able to accomplish early on in my coding career.
More recently, I made a clone of an old arcade game called Arkanoid. I was able to use what I have learned over the years to make this game using better coding practices, and a more efficient main loop ensuring a consistent experience across different devices.
You can explore my personal repositories on GitHub.
Interface for medical app used by doctors to explain medical conditions. This was developed for a client who licensed the application to medical practices.
Adobe Illustrator, Adobe Photoshop
A client wanted to create medical apps for doctors to use to highlight and explain medical conditions. I worked as a graphic designer to create the interface for the applications, and worked closely with the iOS developer to implement the design.
Through our client, I worked with various types of doctors to collect medical images and discuss how to display information in a way that is both instructive and intuitive to patients who may not have much medical knowledge. This effort resulted in multiple iPad apps. The physicians and customer were so enthusiastic about the resulting interface that 2 patents were filed relating to the method of annotating and displaying medical information in an iPad app.
Improve assembly line efficiency with value-stream mapping
Grim Reaper Broadheads is an American company that designs, manufactures, and ships high-quality broadhead tips used in hunting all under one roof in Provo, Utah.
During my internship with them, I developed a present-state and future-state value stream map which revealed potential improvement in both material handling and processing.
I also observed the product assembling process, and developed a new method of product assembly which increased throughput of the assembly workers by more than 100%. By observing the workers and conducting time trials, bottlenecks were exposed. I proposed a new method of assembly which required creating technical instructions and training workers in the new methods. The result was a more streamlined manufacturing line with far higher throughput.
Develop variable pitched rotor for UAVs used by the military to improve fuel consumption
My senior project at BYU gave me the opportunity to work with a division of the United States Air Force in a small team of four people researching, prototyping, analyzing, and developing miniature mechanical apparatuses for unmanned aerial vehicles (UAVs). Our task was to analyze the current UAVs and develop a more efficient means of propulsion in order to increase the flight time of the vehicle.
The optimal method to increase efficiency of an airfoil (propeller) is to alter the angle of attack. This is trivial in electric UAVs because you can run a mechanical connection through the shaft of a motor. For gas engines, this is not possible, and small aircraft use fixed blade propellers.
Our assignment was to create a mechanism that would allow varying the pitch of the rotor on a gasoline powered UAV engine. This would allow the engine to run at a constant (efficient) speed, and allow varying the power by adjusting the pitch of the blades. All of the mechanics had to be placed between the rotor and the engine. Essentially, the nose-cone was replaced by a new servo-driven mechanism that used a cam to pitch the rotors.
This opportunity gave me valuable experience in researching and machining very fine parts for small sensitive assemblies. Documentation was also very important, as we had to present the Air Force with the information to enable replication of our product and results.
© 2007-2026 Michael Caldwell