10+ years of embedded software development for real-time systems, with leadership experience.
Strong skills in C/C++ for embedded applications across various environments (RTOS, GPOS, FPGA).
Thorough knowledge of embedded systems: hardware-software interfaces, real-time scheduling, and communication protocols.
Experience in building and managing engineering teams, from recruitment to process establishment.
Excellent collaboration skills across hardware, software, and systems disciplines.
Responsibilities
Define and execute the flight software strategy for the orbital launch vehicle.
Build and mentor a high-performing flight software team and establish engineering processes.
Architect and develop embedded software for flight computers and low-level controllers.
Collaborate with Avionics on hardware-software integration and driver development.
Implement GNC algorithms in flight software, ensuring real-time performance and fault tolerance.
Manage the software lifecycle for flight-critical systems, including testing and anomaly resolution.
Establish software development standards for flight and safety-critical applications.
Benefits
Opportunity to shape the software architecture for a new launch vehicle program.
Leadership role with the ability to build a dedicated team from the ground up.
Engagement in high-impact aerospace projects with real-time application.
Collaboration with cross-disciplinary teams in a cutting-edge field.
Work at a pioneering company focused on establishing a sovereign launch capability for Canada.
Full Job Description
About the role
Canada Rocket Company is building a sovereign launch capability for Canada. We're looking for a Head of Flight Software to build and lead the team responsible for every line of code that flies. This is a foundational leadership role: you'll own the full flight software stack, from low-level controller firmware to flight computer applications, and grow the team around it. You'll work at the intersection of software, avionics, and GNC, translating mission requirements into reliable, flight-proven code. If you want to shape the software architecture of an entire launch vehicle program from the ground up, this is the role.
What you'll do
Define and execute the flight software strategy for Canada Rocket Company's orbital launch vehicle, spanning architecture, development, verification, and operations.
Build, mentor, and lead a high-performing flight software team, establishing hiring plans, engineering processes, and a culture of rigour and ownership.
Architect and develop embedded software across flight computers and low-level controllers, working across GPOS, RTOS, FPGA, and baremetal environments as the program demands.
Partner closely with the Avionics team on hardware-software integration, board bring-up, driver development, and interface definition for flight electronics.
Collaborate with the GNC team to implement guidance, navigation, and control algorithms in flight software, ensuring real-time performance, determinism, and fault tolerance.
Own the software lifecycle for flight-critical systems, including requirements management, configuration control, code review, testing (hardware-in-the-loop, software-in-the-loop), and anomaly resolution.
Establish and maintain software development standards appropriate for flight-critical and safety-critical applications.
Contribute hands-on to software development.
Qualifications
Required
10+ years of experience developing embedded software for complex, real-time systems, with a meaningful portion in a technical leadership capacity.
Strong proficiency in C and/or C++ for embedded targets, with demonstrated experience across RTOS, GPOS, FPGA, and baremetal development environments.
Deep understanding of embedded systems fundamentals: hardware-software interfaces, memory management, real-time scheduling, communication protocols (CAN, SPI, I2C, Ethernet), and fault handling.
Proven ability to build and lead engineering teams, including hiring, mentoring, and establishing processes from an early stage.
Excellent collaboration skills, particularly in cross-disciplinary environments involving hardware, software, and systems engineering.
Preferred
Direct experience with flight software for launch vehicles, spacecraft, or similarly high-consequence aerospace systems.
Familiarity with GNC algorithm implementation and the real-time performance constraints involved.
Experience with hardware-in-the-loop and software-in-the-loop test frameworks.
Exposure to software assurance practices for flight-critical systems (e.g., DO-178C, ECSS, or NASA standards).
Bachelor's or advanced degree in computer science, electrical engineering, aerospace engineering, or a related field.