Hunter Whyte

Software Developer | Embedded Systems

Toronto, ON

NerveX Neurotech | Embedded Software Developer

Nov 2023 - Present

  • Led embedded C firmware development for low-power wearables.
  • Implemented signal processing pipelines for biometrics on Cortex-M MCUs.
  • Wrote python scripts for tools and test rigs.
  • Integrated common peripherals such as BLE, I2C, SPI, UART, ADC, PWM.
  • PCB layout, SMT assembly, hardware debugging, and board bringup.

Garmin | Embedded SWE Intern

Sept 2021 - Aug 2022

  • Developed embedded C/C++ firmware for low-power wireless devices.
  • Worked as a member of the team responsible for low-level integration of wireless protocols into products.
  • Gained experience with BLE, WiFi, BTC, and ANT.
  • Debugged hardware issues with spectrum analyzers, oscilloscopes, and logic analyzers.
  • Documented software issues and test procedures using Jira and Confluence.

CNH Industrial | Embedded SWE Intern

May 2021 - Aug 2021

  • Developed embedded C firmware for agricultural equipment.
  • Created graphical desktop applications with C# and WinForms.

University of Saskatchewan | B.Eng Computer Engineering

Sept 2018 - April 2023

  • Graduated with great distinction. Focus in Digital Systems and Software.
  • Awards for academic achievement: Douglas Durie Memorial Scholarship Fall 2020, Fall 2023 | Agra Memorial Scholarship Fall 2020 | Slapkauskas Scholarship in Engineering Winter 2021 | Dean's Honour Roll 2019, 2020, 2021, 2023.

Wireless LED Bracelet March 2023

Wirelessly controlled light-up bracelet for use at concerts and live events.

  • Designed PCB around nRF52 SoC. Assembled and debugged form factor prototype.
  • Uses 2.4GHz radio to receive commands from controller and connect over BLE to smartphones.
  • Developed embedded C firmware integrating UART, I2C, BLE, NFC, and ANT.

Audio Visualization Library December 2022

Simple, cross-platform audio visualization library, with built-in file playback and capture.

  • Cross-platform C library for linux, windows, and web.
  • Captures audio from input or plays from files.
  • Performs DFT and does some creative filtering to make it look nice.

2D Collision Detection LibraryJune 2023

Cross platform deterministic continuous 2D collision detection for convex polygons.

  • Cross-platform C library for linux, windows, and web.
  • Implements bilateral advancement algorithm for continuous collision detection.
  • Guarantees determinism through use of softfloats.

Graphics Framework March 2024

2D node based OpenGL graphics framework.

  • Cross-platform C framework for linux, windows, and web.
  • Node based graphics definitions/editor.

Block Puzzle Game April 2022

Lumines inspired puzzle game written from scratch.

  • Custom 2D OpenGL graphics engine with a framework enabling user generated content.
  • Features audio visualization.
  • Custom node-based graphics editor and tools.
  • Written in Java.

P2P Networking LibrarySeptember 2023

WebRTC datachannels based library for cross platform peer to peer rollback netcode.

  • Cross-platform C library for linux, windows, and web.
  • Enables peer to peer rollback netcode in browser.

Baremetal ARM Cortex A8 Application February 2023

Simple bare metal application for TI AM335x (Cortex-A8) microprocessor.

  • Written from scratch in C and ARM assembly language.
  • Tested on hardware using Beaglebone Black SBC.
  • Performs initialization of PLLs, peripherals, eMMC, and external memory (no HAL).
  • Functions as second-stage bootloader.

STM32F4 Polyphonic MIDI Synthesizer January 2021

  • Direct MIDI input.
  • 8 voice polyphonic output.
  • Written in C, tested on STM32F4 eval board.

Rocket Telemetry April 2018

Realtime model rocket location/altitude tracking.

  • Arduino based rocket payload featuring 2.4GHz RF, GPS, IMU, remotely activated camera.
  • Base station connects to graphical application written in Python.
  • Uses brushed motors + quadcopter props for descent steering.

Posture Monitor December 2016

Bluetooth enabled spinal position monitoring and posture correction device.

  • Uses a stretch sensor to measure the distance between two points on the spine.
  • Measures current spine position against a calibrated ideal position.
  • Notifies user via vibration/lights and smartphone app.

ncurses MIDI Sequencer March 2019

Basic ncurses MIDI sequencer (bad idea).

  • Takes keyboard input as different notes.
  • Loops over input playing out over selected MIDI channel.
  • Written in C.

MIDI Chat Bot March 2020

IRC bot that plays MIDI notes on host computer.

  • Intended for use while livestreaming so that viewers can interactively play notes.
  • Supports single note melodies and chord progressions.
  • Written in Python.

Poker Study Tool May 2020

A study tool for 3 person sit and gos.

  • Looks up correct play for a given situation from a study guide.
  • Takes into account, position, stack, preflop action, and hand.

Poker Hand History Parser May 2020

Hand history parser for party poker with cEV calculator and graphing.

  • Takes plaintext poker site hand histories as input.
  • Parses into database for tracking useful stats.
  • Odds calculator determines and records cEV.

USB MIDI Keyboard December 2016

USB MIDI keyboard made from a broken electric piano I got for free.

  • Ripped keyboard out of piano and wired up the key matrix to an Arduino.
  • Full 88-key velocity sensitive MIDI keyboard.
  • Arduino acts as HID USB-MIDI device.