Senior Software Engineer
Current● Created a suite of applications used to flash, configure, and test an in house designed and assembled hardware device in an automated fashion. Each device configuration is stored in CouchDB for reference, or to be used by the configuration application to reset device settings. Automated tests were written in C++ using GoogleTest covering all functions of the device to allow confidence the device was assembled and configured correctly.● Conducted X-ray imager characterization and A/B testing when a sudden FPGA End-Of-Life caused immediate need to replace an FPGA in many existing products with no drop-in FPGA replacement available. Clarified existing product behavior so new designs could mimic behavior as closely as possible, minimizing the impact of change to customers. Isolated differences between new and old designs, collaborating with many internal teams to correct deviations.● Designed an API to control custom hardware. Reworked the API after collecting and consolidating feedback from multiple device users. The API included a minimal set of commands needed to meet the intended use while documenting how to use the device.● Volunteered to fill a needed DevOps role left open due to gaps in personnel. Added 4+ build VMs and 15+ test systems of varying configuration (Linux, Windows, Jetson) to an existing Jenkins build environment. Guided two other departments in creating automated build and test environments, replacing existing manual and semi-automated testing. Identified and summarized the most common downtime causing failures. Planned and executed a transition from individual test systems to a server-based system with VMs. The Updated approach provided redundancy for the most common failures reducing average monthly system failures more than 50%, lowered time to add a new test node from days to hours while optimizing limited available physical space. Published training on DevOps procedures while coaching DevOps new hires.