This list contains only the countries for which job offers have been published in the selected language (e.g., in the French version, only job offers written in French are displayed, and in the English version, only those in English).
We're adding an Intermediate Software Engineer to work on the Linux side of our embedded control products. You'll contribute to the System-on-Module image (STM32MP1 / STM32MP2 today, with room for additional Cortex-A parts as the product line grows), help build out the controller application, work with our firmware engineers on the interfaces between Linux and the STM32 Cortex-M side, and help make the platform dependable in the field. You'll work within the team's engineering practices — version control, code review, CI for the SOM image, release discipline — and you'll test what you write. This is a great opportunity for someone to work in a small early-stage company where you will have the chance to contribute to innovative projects and learn and grow with other like-minded experienced engineers.
Job Responsibility:
Work on the Linux platform for our SOM-based controllers: kernel configuration, device tree, selected drivers, bootloader flow, rootfs image, and release pipeline
Contribute to the controller application layer: services, configuration, logging and telemetry, local UIs and APIs
Work with our firmware team to define and document the interfaces between the Linux host and the STM32 Cortex-M firmware (serial, CAN, Ethernet, shared-bus, etc.), including command, status and telemetry protocols
Help design system-level behaviour across Linux and firmware: startup / shutdown sequencing, fault propagation, watchdog strategy, recovery and safe-state handling
Implement external interfaces: networking, secure remote access, device-management APIs, and — where applicable — integration with broadband data paths used by our UPS / FMPS products
Write and maintain software tests (unit, integration, system-level) and contribute to the team's automated build and CI flow for the SOM image
Work within our software engineering practices: version control, code review, documentation, release discipline
Partner with firmware, power-electronics, QA and manufacturing engineering through design review, integration and production handoff
Requirements:
Bachelor's degree in Computer Engineering, Computer Science, Electrical Engineering or equivalent practical experience
2–4 years of professional software-engineering experience, including some work on embedded Linux systems
Working proficiency in C, and fluency in at least one of C++, C#, Rust, Go or Python
Practical experience with Linux on an embedded platform: kernel configuration, device trees, userspace services, and image builds (e.g. Yocto, Buildroot, OpenSTLinux or similar). Depth in all of these is not required at this level
willingness to learn is
Ability to reason about the boundary between a Linux host and a microcontroller subsystem — the STM32MP1 / MP2 Cortex-A + Cortex-M split is a direct example
Working familiarity with standard networking (TCP/IP, UDP, Ethernet, Wi-Fi, USB) and common inter-board buses (SPI, I²C, CAN, serial)
Comfortable writing tests for your own code and working inside a Git / code-review / CI workflow
Clear written and verbal communication
you can write and follow an interface spec
Legally authorized to work in Canada and able to work on-site (or predominantly on-site) at our Burnaby, BC office
Nice to have:
Direct experience on STM32MP1 / STM32MP2 (OpenSTLinux, OP-TEE, Cortex-A + Cortex-M co-processing)
Other Linux-capable SOM families (NXP i.MX, TI Sitara, Xilinx / AMD Zynq, Rockchip, Raspberry Pi CM, etc.)
Real-time Linux (PREEMPT_RT) or mixed-criticality Linux + MCU designs
Background in UPS / FMPS, telecom, cable broadband or grid-edge infrastructure products
Experience integrating broadband communication protocols such as DOCSIS and PON, including provisioning flows, device management and interaction with operator networks (CMTS, OLT), as well as familiarity with related protocols and tooling (e.g. SNMP, MIBs, DHCP, TR-069, TLVs, ASN.1)
Strong understanding of networking protocols including Ethernet, IP, UDP, TCP, DHCP, FTP, TFTP and HTTP, with hands-on experience debugging communication issues using tools such as Wireshark or similar packet-analysis tools
Knowledge of device security fundamentals: secure boot, signed updates, TLS, credential management, and familiarity with public / private key cryptography concepts and implementation
Cloud-side and fleet-management exposure (MQTT, OTA pipelines, device dashboards)
Software testing discipline — unit, integration and system-level tests
test automation
hardware-in-the-loop experience
Fluency with modern AI developer tools — for example code assistants (Copilot / Cursor), chat-based design exploration, and automated test / spec generators — and a clear view on where they actually help on platform-software work
What we offer:
Competitive compensation and benefits
Reporting directly to the CIO in a small-team engineering environment fostering collaboration
Accelerated professional growth and development through working on leading-edge products that will ship at scale into telecom, cable-broadband, data-centre and critical-infrastructure applications