Senior Embedded Software Engineer
A hands-on senior firmware role designing, implementing, and verifying safety-related embedded C/C++ code for Hexagon Mining's Vehicle Control Platform ECUs. Day-to-day work spans CAN/J1939 vehicle interfaces, I/O and diagnostics, traceability to formal requirements, and automated unit/integration/HIL testing with CI/CD pipelines on Linux.
- Compensation
- Not disclosed
- Location
- Toronto, Canada
- Work setup
- Remote
- Seniority
- Senior
- Employment
- Not specified
- Experience
- 10+ years
- Category
- Embedded
- Posted
Skills
Must have
- Bachelor's or Master's degree in Electrical/Electronic Engineering, Computer Engineering, Mechatronics, Computer Science, or related discipline (or equivalent experience)
- 10+ years professional embedded software development, including 2+ years delivering production firmware on 32-bit microcontrollers
- Expert-level embedded C with working proficiency in C++
- Comfort with fixed-point and bounded-resource programming; codebases where dynamic memory allocation is prohibited
- Bare-metal and/or RTOS development: interrupt handling, scheduling, cyclic task structure, timing/latency analysis, multicore considerations
- Able to read hardware schematics, MCU datasheets, and reference manuals to derive peripheral, driver, and I/O configuration
- Hands-on CAN experience: CAN 2.0A/B plus J1939 or comparable higher-layer protocol; message set/signal database maintenance; bus analysis with standard CAN tooling
- Practical on-target debugging with debug probes, oscilloscopes, logic analysers, and bus loggers
- Experience developing to an enforced coding standard such as MISRA with static analysis in the development loop
- Comfortable in Linux development environments with Git-based workflows, code review culture, and CI/CD pipelines
- Experience with TCP/IP networking and embedded Linux device-to-cloud connectivity on Arm-based processors
Nice to have
- Multicore automotive-grade microcontroller families and commercial safety-certified ECU platforms with vendor BIOS/HAL and configuration tooling
- Containerised build environments and self-hosted CI runners for embedded builds and automated hardware test
- Custom embedded Linux distribution builds with Yocto or Buildroot (BSP/layer maintenance, kernel and device-tree configuration)
- Requirements management tooling, and Jira/Confluence or equivalent
- Experience working to formal, traceable requirements and interface control documents
- Python and shell scripting for test automation, tooling, and data analysis
Full description
The Company:
Hexagon is a global leader in digital reality solutions, combining sensor, software, and autonomous technologies. We are putting data to work to boost efficiency, productivity, quality, and safety across industrial, manufacturing, infrastructure, public sector, and mobility applications.
Our technologies are shaping the production and people-related ecosystems to become increasingly connected and autonomous — ensuring a scalable, sustainable future.
Hexagon’s Mining division solves surface and underground mine challenges with proven technologies for planning, operations, and safety.
Hexagon (Nasdaq Stockholm: HEXA B) has approximately 24,000 employees in 50 countries and net sales of approximately 5.5bn USD. Learn more at hexagon.com and follow us @HexagonAB.
Purpose of Position:
As a Senior Embedded Software Engineer you will design, develop, verify and maintain the safety-related firmware at the heart of our Vehicle Control Platform.
This is a hands-on engineering role; you will own microcontroller code from design through implementation, meeting formal requirements while optimising system performance.
You will join a senior, multi-disciplinary platform team and work day -to -day alongside hardware and electrical engineers, system architects, functional safety engineers, application software teams and product management.
Major Areas of Responsibility:
Firmware Design and Implementation
- Design, implement, debug and maintain embedded C (and C++ where appropriate) firmware for safetyrelated vehicle control ECUs, from requirement through to released, verified software.
- Implement and maintain vehicle communication interfaces — CAN 2.0A/B, J1939 and other higher-layer CAN protocols, and serial links — against formally controlled interface specifications.
- Develop I/O and actuation software: digital and analogue inputs, PWM and proportional outputs, sensor signal conditioning, scaling, calibration and plausibility checking.
- Implement diagnostics, fault detection and fail-safe behaviour: watchdogs and monitors, fault classification, and transitions into clearly defined safe states.
- Contribute to migrating and modernising an existing production firmware platform onto current hardware.
Safety, Quality and Traceability
- Develop against decomposed, traceable requirements and maintain bidirectional traceability from requirement to design, code and verification evidence.
- Author and maintain design documentation, interface specifications and verification records.
- Perform and participate in rigorous peer design and code reviews, and help raise the team’s engineering standards.