Embedded Software Engineer – Unmanned Systems (UAVs)
Role summary
Seeking an Embedded Software Engineer with 5+ years of experience in C/C++ for real-time, resource-constrained systems, specifically for maritime UAVs. The role involves developing AI-driven navigation, perception, and control systems, building firmware, drivers, and RTOS applications (Zephyr). Responsibilities include implementing communication protocols (CAN, UART, SPI, I2C, Ethernet), fault detection, and debugging across hardware/software stacks using tools like oscilloscopes and logic analyzers. Experience with Linux device drivers, real-time control loops, and field deployment is required. This is a 100% remote, 2-year contract position for candidates in Canada.
Our client is currently
seeking an
Embedded Software Engineer – Unmanned Systems (UAVs)
for an initial 2 year contract (opportunity for extension).
As the successful candidate you will be at the forefront of developing AI-driven navigation, perception, and control systems for maritime UAVs. You'll help build and test the embedded software that powers autonomous drones from firmware and drivers to real-time control systems.
This position is available 100% Remote in Canada with occasional travel to client sites in Western Canada as required.
Key Responsibilities:
- Write firmware and drivers in C/C++ for UAV hardware and sensors (IMU, GPS, LiDAR, cameras)
- Implement communication protocols: CAN, UART, SPI, I2C, Ethernet
- Build and maintain RTOS (Zephyr) applications, including multi-threaded and ML-integrated workflows
- Implement fault detection, safety interlocks, and power management
- Bring up new boards with the electrical team; debug across the hardware/software stack
- Run HIL/SIL testing and field tests; use lab tools like oscilloscopes and logic analyzers
- Write clean documentation: state machines, block diagrams, message sequences
- Collaborate with AI/GNC engineers on low-latency sensor data pipelines
Required skills:
- 5+ years in embedded firmware/software development
- Strong C and C++ for real-time, resource-constrained systems
- Experience with UAVs/drones or advanced sensor integration
- Familiarity with Linux device drivers and real-time control loops
- Proven track record debugging and deploying embedded code in the field
Nice-to-have skills:
- Experience with PX4, ArduPilot, or similar UAV autopilot stacks
- Familiarity with maritime operating conditions and the specific engineering challenges
- Knowledge of sensor fusion, embedded AI acceleration, or safety-critical software standards
- Hands-on Zephyr RTOS experience
- Electronics skills (PCB design (Altium, KiCAD), wire harness, soldering)