12

Senior Embedded Software Developer

Montreal, Canada, , Serco Europe [2197]

Field(s) of expertise
Aerospace Engineering
Job type
Permanent
Education
Master
Deadline
Closed

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.

Responsibilities

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).

Profile

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

Desired knowledge:

  • Bare-metal application development,
  • Computer architecture (ARM, x86, FPGA),
  • Digital data electrical interfaces (USB, RS422, RS485, LVDS, CAN)
  • Some exposure to: Web API development (REST, JavaScript), Test automation, Multimedia framework (GStreamer), Databases (SQL), Distributed systems (Message Queue)
  • Volunteering experience in a technical student society or organization
  • Past experience or strong interest in aerospace, remote sensing or environmental challenges

Qualifications:

  • 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

Additional information:

  • Travel requirements: occasional

For information on how the personal data in your application is processed, please see the Serco Europe Privacy Policy.