Firmware Developer

Haply

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.