Senior Embedded Systems Designer
Vancouver, British Columbia, Canada
∙ Designed and implemented a portable software component in C for calculating the CPU load of our 5 custom PCB's utilizing FreeRTOS' trace hook macros. The software component included a circular buffer implementation in order to obtain a sliding window average for the CPU load over time.∙ Developed firmware in C to obtain and parse positional and time data for our solar-powered race car, utilizing a GNSS module, an STM32 ARM microcontroller, and the STM32 CubeIDE. Established communication with the GPS module via the I2C protocol to receive NMEA messages. Wrote custom code within the FreeRTOS environment to create functions for receiving, queuing, and transmitting these NMEA messages.∙ Acquired vehicle-dynamics sensor data from a custom STM32 ARM based PCB using ADC's and DMA. Processed the data with custom conversion formulas derived from electrical tests and parsed it in C to create CAN messages.∙ Utilized Docker, NGINX, and Bash scripting to containerize, reverse proxy, secure(HTTPS), and automate the deployment of our telemetry cluster, Sunlink.∙ Mentored 9 new recruits of both the embedded firmware and battery managementsystems subteams through fundamental embedded concepts such as the CANprotocol, the use of the STM32 CubeIDE, and interrupts.