Embedded Software Developer

GHGSAT Alberta, Canada
Apply Now

GHGSat offers greenhouse gas detection, measurement, and monitoring services to industrial and government customers around the world. We use our own satellites and aircraft sensors, combined with third-party data, to help industrial emitters better understand, control, and reduce their emissions. GHGSat’s capability is unique: we provide high-resolution, local measurements of atmospheric methane and carbon dioxide concentration from space. GHGSat is looking for an innovative and experienced Embedded Developer to work on our satellite and aviation payloads, as well as our internal satellite tasking and planning software. As part of a cross-functional team, you will support and drive the development of new platforms and the improvement of existing ones, with a focus on automation. Our satellite payloads and aircraft avionics run Linux, capture imagery from IR cameras, and are written in C++, Rust, and OCaml. Python is used for testing, while Yocto and CMake are used for building systems. Candidates are expected to work within an agile scrum environment. We offer training to learn new programming languages on the job. If you care about the planet as much as we do, a career at GHGSat is an opportunity to have a real impact in the fight against climate change.   Role Details • Start date: As soon as possible • Location: Full-time, permanent position based in Montreal or Calgary (hybrid: 2 days in office, up to 3 days remote) • Travel requirements: Occasional

Responsibilities • Design, develop, integrate, test, and deploy Linux firmware for satellite and airborne payloads • Design, develop, integrate, test, and deploy satellite tasking and planning software • Work autonomously on complex features • Develop control applications for cameras, temperature sensors, heaters, and LED devices • Develop unit, component, and integration tests • Continuously improve the development environment and reduce technical debt • Document all stages of the product lifecycle (requirements, design, implementation, integration, testing) in an iterative manner • Troubleshoot complex software issues using debugging and profiling tools, and hardware tools such as oscilloscopes and logic analyzers • Support instrument testing and characterization • Communicate effectively within and across teams (reporting, architecture decisions, technical discussions)

 Successful candidates for this position will be expected to participate in a rotational on-call schedule and able to obtain Canadian government security clearance.