Remote job
Sr. Embedded Engineer (MicroPython/C/ARM/ESP32)
Job details
About this role
Role overview Own embedded firmware delivery for new and evolving hardware products, from early concepts and prototypes through production and release. The work spans low-level programming, hardware integration, debugging, and manufacturing support, with a focus on dependable, security-sensitive devices and clear user experiences on small screens.
Responsibilities - Take firmware features and product revisions from initial design through shipping. - Work directly with microcontrollers, datasheets, peripherals, displays, buttons, radio or NFC modules, and power systems. - Build and maintain reliable firmware for compact devices where correctness and recovery matter. - Diagnose issues across firmware, hardware, development tools, manufacturing, and user feedback. - Collaborate with hardware colleagues and leadership on practical engineering and interface decisions.
Requirements - Senior-level embedded engineering experience, ideally around ten years or equivalent experience shipping real devices. - Ability to take a product from prototype to production with limited supervision. - Strong attention to robustness, reliability, correctness, and recoverability. - Experience with embedded programming in technologies such as MicroPython, C, ARM, ESP32, or other microcontrollers. - Familiarity with interfaces and protocols such as I2C, SPI, RS-232, Wi-Fi, Ethernet, TCP/IP, or websockets. - Comfort working from datasheets and debugging hardware behavior, including low-level electronics and display or keyboard interfaces. - Ability to work independently from home and overlap with Toronto business hours.
Nice to have - Board bring-up or electronics design experience. - Experience with Bitcoin hardware wallets or other secure devices. - Relevant shipped hardware, firmware, public code, technical notes, or examples of difficult debugging work.
Benefits and work setup - Remote work with independent time management.