Field(s) of expertise
About this job
On behalf of our Canadian Client, we are looking for an innovative and experienced Senior Embedded Software Developer. As part of a cross-functional team, you will support the development of new platforms with ‘Edge Computing’: process the data closer to where it is captured. The proprietary tools for satellite payloads and aircraft avionics run on Linux, capture imagery from IR cameras and are written in C++, Rust and OCaml. Python is used for testing, Yocto and CMake for building the systems. Candidates are expected to work within agile scrum. Training to learn new programming languages on the job is offered.
In the role of an Embedded Developer, you will be expected to execute the following functions:
- Design, develop, integrate, test and deploy Linux firmware for Satellite and Airborne payloads.
- Work autonomously on complex features.
- Develop controlling applications for cameras, temperature sensors, heaters, LED devices.
- Develop unit, component and integration tests.
- Continuously improve the development environment and minimize technical debt.
- Document all stages of the product: Requirements, Design, Implementation, Integration, Test in an iterative fashion.
- Troubleshoot complex problems with Software (debugger, profiler) and Hardware tools (oscilloscope, logic analyzer).
- Plan and supervise work executed by interns, offer technical guidance to junior members.
- Provide support to instrument testing and characterization…
- Participate actively in Agile Scrum rituals with commitment, focus, openness, respect and courage.
- Communicate effectively inside and outside the team (reporting, architecture decisions, tech talk).
The following technical subjects are applicable:
- Linux driver development
- Linux application development
- Device-to-device communication stacks, e.g. Ethernet (TCP/UDP), Serial, USB, I2C, SPI, CAN
- Camera devices, storage devices, encryption, communication protocols, networking
- Programming in C/C++, Rust, OCaml and/or Python
- Build Systems with Yocto or CMake
- Programming Single Board Computer (SBC) and Microcontrollers
- Continuous Integration (Gitlab, Docker)
- Software debugging, analysis and profiling tools
- System integration and maintenance: past experience deploying a robust embedded system to the market
- Bare-metal application development,
- Computer architecture (ARM, x86, FPGA),
- Digital data electrical interfaces (USB, RS422, RS485, LVDS, CAN)
- Volunteering experience in a technical student society or organization
- Past experience or strong interest in aerospace, remote sensing or environmental challenges
- Essential – bachelor’s or master’s degree in computer engineering, Computer Science, Physics or equivalent
- Essential – 8+ years’ experience
- Essential – Able to obtain Controlled Goods Program security clearance
- Desirable – Fluent in French and English
- Travel requirements: occasional