2020 — Now
San Francisco, California, United States
* Led effort to refactor and re-design code to support extensive unit-testing
* Ask me about the 3 inter-related ethernet DMA bugfixes that took 2 months to debug. Fun story.
* Designed safety-case and JAMA requirements to prove reliability of embedded device; later used as template for other devices to follow.
* Bringup human-interface board: Extremely redundantly engineered device to blink LED's and play sounds to inform driver of autonomy state. Designed communication protocol for safety-critical communication.
* Integrate 3rd party cryptography chip for secure boot: had to reverse-engineer and bugfix the entire stack due to "suboptimal" vendor support
* Create deployment tooling and infrastructure for secure boot device, along with a reliable over-the-air update scheme.
* Bringup new GNSS board: all peripherals, GNSS protocol support and conversion, bootloaders, integration with existing testing infrastructure.
* Implement various microcontroller drivers: USART, timer peripherals, i2c, ethernet, etc.
* Implement FlexCAN support on embedded device testing infrastructure
San Francisco Bay Area
Wrote Buildroot packages for GPS protocol converters and adapters
Upgraded bootloader firmware versioning for consistent tracking within testing infrastructure
New board bringup of next-generation product using Yocto buildchain
Architected new internal runtime system for message passing, signal Input/Output, modular services, etc.
Designed failure resistant testing, logging, and demo platform per specific customer requirements
Berkeley, CA
Implemented Linux kernel bootloader upgrade failsafes to guarantee never bricking the device
Upgraded bash scripts to streamline development and deployment
Designed system for encrypting flash storage, but still allowing bootloader upgrades
Configured GPS chip register settings to gracefully failover from intermittent GPS signal
San Francisco Bay Area
Implemented Bluetooth Beaconing functionality in an embedded environment
Extended inhouse SQL-based database to accomodate new raw data, and extended Scala back-end to process
Created new web portals in Ruby to configure Bluetooth settings
Bryan/College Station, Texas Area
Modified 3D printer controller firmware to incorporate sensor feedback for faster print times and higher accuracy
Utilized motor encoders and computer vision to track print nozzle position and correct deviations in printing
Education
University of California, Berkeley