Firmware Developer
Haply
Software Engineering
Canada · Montreal, QC, Canada
Posted on May 6, 2026
What You'll Do
- Implement firmware changes for Inverse3, Inverse5, Inverse X, and VerseGrip: features, safetynpaths, communication protocols, calibration routines, force-feedback hot loops.
- Map every change to our 8-hazard taxonomy and contribute to the firmware safety feature functional specifications.
- Work hand-in-hand with the driver and service teams. Co-design protocol changes, debug across the firmware/host boundary, and keep version compatibility intentional rather than accidental.
- Diagnose and fix hardware-software boundary issues. Read protocol logs, decode wire formats, reproduce timing bugs, and close the loop with the people on the other side of the cable.
- Set up and maintain firmware test rigs, simulators, and HIL setups. Firmware deserves the same testing discipline as the rest of the codebase.
- Participate in code reviews, architecture decisions, and the planning of new firmware features for upcoming devices.
- Contribute to the firmware build, OTA update, and version-management story.
What We're Looking For
- Required
- 3+ years of professional firmware / embedded experience.
- Strong C / C++ on real-time embedded targets: interrupts, DMA, timing-critical loops.
- Familiarity with motor control, encoders, force/torque sensing, or comparable real-time signal paths.
- Comfort with low-level communication: SPI, I2C, UART, USB, CAN, WebSocket / TCP, custom binary protocols.
- Ability to read schematics, work with EE colleagues, and probe hardware (oscilloscope, logic analyser).
- Disciplined approach to safety: you reason about failure modes before edge cases bite.
- Self-starter who takes ownership end-to-end, from investigation through to a clean, reviewed solution.
- Comfortable with git and structured PR/review workflows.
- Strong communicator. You work well with adjacent teams (drivers, service, mechatronics) and document what you change.
- Nice to have
- Experience with ARM Cortex-M (STM32, NXP, etc.) and corresponding HALs.
- DSP, digital filters, control loops (PID, impedance/admittance control).
- Functional safety standards (IEC 61508, IEC 62304, ISO 13849). Even partial exposure helps.
- Experience with OTA updates, firmware signing, version compatibility schemes.
- Bash + Linux as well as PowerShell + Windows. Comfort across both.
- Bilingual French/English. Working environment is bilingual.
Ways of Working
- Plans changes before implementing. Writes up intent, considers impact on adjacent systems, especially across the firmware/driver/service boundary.
- Communicates proactively when working near domain boundaries (control logic, hardware behaviour, host-side state).
- Comfortable working without full domain context. Reads code, asks the right questions, contributes meaningfully alongside specialists.
- Spotting correctness issues, concurrency hazards, and abstraction leaks during review is a strength.