Senior Embedded Software Engineer
Posted 2hrs ago
Employment Information
Report this job
Job expired or something wrong with this job?
Job Description
Senior embedded engineer developing safety-critical ECU firmware for Hexagon Mining’s digital mining and vehicle-control technologies. Designing, testing, and commissioning embedded systems.
Responsibilities:
- Design, implement, debug and maintain embedded C and C++ firmware for safety-related vehicle control ECUs
- Develop firmware from requirements through released, verified software
- Implement and maintain vehicle communication interfaces including CAN 2.0A/B, J1939, higher-layer CAN protocols and serial links
- Develop I/O and actuation software for digital and analogue inputs, PWM and proportional outputs, sensor signal conditioning, scaling, calibration and plausibility checking
- Implement diagnostics, fault detection and fail-safe behaviour, including watchdogs, monitors, fault classification and safe-state transitions
- Contribute to migrating and modernising the production firmware platform onto current hardware
- Develop against decomposed, traceable requirements and maintain bidirectional traceability
- Author and maintain design documentation, interface specifications and verification records
- Perform and participate in peer design and code reviews
- Build and maintain automated embedded unit, integration and hardware-in-the-loop tests
- Extend CI/CD pipelines for embedded builds, static analysis, automated tests, versioning and release artefact packaging
- Work with Linux-based coprocessors and services for data logging, connectivity, remote diagnostics and observability
- Support bench, vehicle and field commissioning and investigate integration-test issues
- Collaborate with hardware and electrical engineers, system architects, functional safety engineers, application software teams and product management
Requirements:
- Bachelor’s or Master’s degree in Electrical or Electronic Engineering, Computer Engineering, Mechatronics, Computer Science or a closely related discipline; or equivalent demonstrable experience
- 10+ years of professional embedded software development
- At least 2 years delivering production firmware on 32-bit microcontrollers
- Expert-level embedded C and working proficiency in C++
- Experience with fixed-point and bounded-resource programming and codebases where dynamic memory allocation is prohibited
- Bare-metal and/or RTOS development, including interrupt handling, priority design, scheduling, cyclic task structure, timing and latency analysis, and multicore considerations
- Ability to read hardware schematics, MCU datasheets and reference manuals and derive peripheral, driver and I/O configuration
- Hands-on CAN experience: CAN 2.0A/B plus J1939 or comparable higher-layer protocol
- Experience defining and maintaining message sets and signal databases
- Bus analysis and fault-finding with standard CAN tooling
- Practical use of debug probes, oscilloscopes, logic analysers and bus loggers
- Experience developing to an enforced coding standard such as MISRA, with static analysis
- Comfortable in Linux development environments, Git-based workflows, code review and CI/CD pipelines
- Experience with TCP/IP networking and embedded Linux device-to-cloud connectivity on Arm-based processors
- Desired: multicore automotive-grade microcontrollers and commercial safety-certified ECU platforms
- Desired: containerised build environments and self-hosted CI runners
- Desired: Yocto or Buildroot BSP/layer maintenance, kernel and device-tree configuration
- Desired: requirements management tooling and Jira / Confluence or equivalent
- Desired: formal, traceable requirements and interface control documents
- Desired: Python and shell scripting for test automation, tooling and data analysis
- Ability to submit a resume and cover letter
Benefits:
- Remote work: can telecommute / work remotely 100% of the time
- 10% or less travel
- Environment of growth and learning
- Diverse workforce and equal opportunity workplace













