1 month ago
Kanata, CanadaSenior
Base Salary
$95k - $115k/yr
Responsibilities
- Design, develop, integrate, and maintain BSP software for ARM-based embedded platforms.
- Develop and debug bootloaders, secure boot features, Linux kernel components, QNX platform components, device trees, and board-level drivers.
- Perform board bring-up, boot debugging, hardware interface validation, driver integration, and low-level system troubleshooting.
- Develop and troubleshoot drivers for UART, I2C, SPI, CAN/CAN FD, Ethernet, USB, GPIO, eMMC, NAND, NOR, PMIC, and other platform peripherals.
- Use Yocto, OpenEmbedded, BitBake, Git-based workflows, Jenkins, Python, and shell scripting for embedded Linux development and delivery.
- Support embedded security features including image signing, hardware root of trust, fuse provisioning, key management, and update reliability.
- Investigate software and hardware issues using boot logs, kernel logs, crash dumps, JTAG, oscilloscopes, logic analyzers, and other debugging tools.
- Maintain software design documentation, participate in design reviews, and support verification, validation, and release activities.
- Collaborate with hardware, software, systems, test, manufacturing, and production teams to resolve issues and deliver reliable embedded software.
Requirements
- Bachelor’s degree in Computer Science, Computer Engineering, Electrical/Computer Engineering, or a related technical discipline.
- At least 8 years of professional embedded software development experience, including BSP and bootloader development for Linux, QNX, or similar embedded operating systems.
- Strong low-level C programming and debugging experience with exposure to assembly language.
- Experience with ARM-based processors or SoCs, including ARM A-series, M-series, or similar embedded processor families.
- Hands-on board bring-up experience, including bootchain debugging, driver integration, and hardware/software validation.
- Experience with device drivers, device trees, platform drivers, interrupt handling, memory mapping, file systems, power management, and hardware interfaces.
- Ability to read electronic schematics and use JTAG, oscilloscopes, logic analyzers, and low-level software diagnostics.
- Experience with embedded Linux build systems such as Yocto, OpenEmbedded, or BitBake.
- Familiarity with Git, GitHub, Jenkins, repo manifests, pull requests, or similar version-control and software-delivery tools.
- Strong troubleshooting skills across software, hardware, and system boundaries.
- Preferred experience with custom bootloaders, secure boot, A/B boot, OTA update systems, embedded security, automotive platforms, automotive Ethernet, flash technologies, ISO 26262, AUTOSAR, production diagnostics, and AI-assisted development tools.
Benefits
- The company offers opportunities for personal and professional growth in a collaborative, innovative, and diverse global community.
