Back to results

Embedded Software Engineer

  • Burlington, ON, Canada
Apply on careers-page.com About employer

Applications open in a new tab.

Job details

Posting language
English
Posted

Original job description

Embedded Software Designer x2

Airborne Imaging Systems

Burlington ON – Hybrid or Onsite

**Please note that to be considered for any position at PV Labs, all candidates must be eligible to meet the requirements of the Canadian Controlled-Goods Program of the Defense Production Act and be able to hold and maintain a Canadian Security Clearance. If you are not clear about your eligibility, please consult the Government of Canada website HERE**


About the Job

As an Embedded Software Engineer at PVLabs, you design and build real-time software systems that sit at the core of our airborne optical platforms. Your work spans the full lifecycle - architecture, design, implementation, verification, debug, deployment, and long-term evolution - of software that directly controls stabilized gimbals and ISR payloads.

We treat software as a product, not a by-product. Our architecture is modular, component-driven, and intentionally designed for change. You’ll work on distributed, multi-processor real-time systems via micro-controllers where clarity, testability, and long-term maintainability matter just as much as raw performance.

You’ll collaborate very closely with systems, electrical, mechanical, and optical engineers - not as support, but as a peer - bringing software judgment to the table as we solve difficult problems in stabilization, sensing, motion control, and imaging within demanding operational environments.

If you enjoy designing clean software systems that interact with complex hardware and real-world physics, you’ll feel at home here.

You’ll own a significant embedded software subsystem for one of our stabilized airborne imaging platforms. You’ll take it from requirements and design through implementation, hardware integration, verification, release and field support.

The software you build helps control how gimbals stabilize, how sensors and actuators respond, and how imaging payloads operate in demanding environments.

This is a hands-on engineering role. You’ll write and debug real-time C++ and C on distributed, multiprocessor systems and make subsystem design decisions within the product architecture. You’ll work directly with Systems, Electrical, FPGA, Controls, Mechanical and Optics engineers to resolve the hardware and software decisions that shape how the product behaves.

About the Responsibilities

Turn system requirements into modular software, clear interfaces and testable acceptance criteria. Document decisions about timing, concurrency, resource limits and fault handling.

Lead subsystem bring-up and integration on target hardware. Measure real-time behaviour, diagnose faults across processor and hardware boundaries, and verify fixes under realistic operating conditions.

Define and execute verification for normal operation and failure conditions, including startup, degraded operation and recovery. Maintain traceability from requirements through test results and defect closure.

Apply secure coding and configuration controls so builds and release packages are reproducible. Improve automated tests, hardware-in-the-loop testing or diagnostics to catch defects earlier and make field issues easier to isolate.

Lead design and code reviews, coach less experienced engineers and coordinate work across interfaces. Give program and technical leads credible estimates, raise risks early and bring evidence and a recommendation when decisions affect the wider product.

About You as an Embedded Engineer

At PVLabs, how we work matters as much as what we build.

You typically:

  • Bring creativity, curiosity, and disciplined problem-solving
  • Take ownership naturally and are comfortable leading technical work when needed
  • Communicate complex technical ideas clearly - and know when to ask for help
  • Approach software with a continuous-improvement mindset toward architecture, code quality, tooling, and process
  • Participate meaningfully in requirements generation and technical estimation
  • Drive design and code reviews rather than simply attending them
  • Give and receive feedback constructively - we succeed as a team
  • Prefer small, high-communication engineering teams over rigid organizational silos
  • Manage your time and priorities with professionalism and autonomy

About Your Skills and Experience

  • Typically 6–10 years in embedded, real-time or other hardware-connected software development, including 4–8 years developing embedded C++ or C.
  • You can point to significant subsystems you’ve taken through hardware integration, verification and release.
  • Strong modern C++ and the ability to maintain legacy C. Experience developing and debugging multiprocess and multithreaded software on real-time systems, including NuttX on ARM Cortex targets.
  • Hands-on embedded development on microcontrollers and FPGA SoCs. You can read electrical schematics and interface specifications and troubleshoot UART, I²C, SPI, CAN and Ethernet.
  • Proficiency with GDB or comparable debugging tools, Git, and Bash and Python scripting. Experience with Linux-based host development, including Ubuntu under WSL2.
  • A degree or technical diploma in Software Engineering, Computer Science, Electrical Engineering, Control Systems, Mechatronics or a related discipline, or equivalent practical experience.

Additional Experience We Value

  • Porting board support packages (BSPs) to new hardware or developing Linux device drivers.
  • Developing software under aircraft safety and certification constraints.
  • GPU architecture, CUDA programming or development experience with MATLAB.
  • Proficiency in written and spoken English for technical documentation and design reviews.

What’s in It for You

You’ll work on fielded airborne systems alongside the people who design, build and test them.

Depending on the program, your work may touch high-speed motion control, cameras and lenses, image processing, real-time video, distributed I/O or laser-enabled payloads. You may be asked to join a flight-test to provide real-time system support while airborne.

Above all, you’ll have the autonomy to make subsystem decisions and see how those decisions hold up on real hardware.

More about this job

Responsibilities

You will design and build real-time software systems for airborne optical platforms, managing the full lifecycle from architecture to deployment. You will collaborate with cross-functional engineering teams to solve complex problems in stabilization, sensing, and motion control.

Requirements

Candidates must have 6-10 years of experience in embedded software development with strong proficiency in C++ and C. You must be eligible for Canadian Controlled-Goods Program requirements and able to hold a Canadian Security Clearance.

Skills

  • Embedded C++
  • C
  • Real-time systems
  • Multiprocessor systems
  • Hardware integration
  • NuttX
  • ARM Cortex
  • Microcontrollers
  • FPGA SoCs
  • UART
  • I2C
  • SPI
  • CAN
  • Ethernet
  • GDB
  • Git

Visa sponsorship

Not detected in the job text

Categories

  • Technology
  • Engineering
  • Software
  • Security & Safety

Keywords

  • Embedded Software
  • Airborne Imaging
  • Real-time Systems
  • C++
  • C
  • NuttX
  • ARM Cortex
  • FPGA
  • SoC
  • UART
  • I2C
  • SPI
  • CAN
  • Ethernet
  • GDB
  • Git
  • Bash
  • Python
  • Linux
  • Ubuntu
  • WSL2
  • Hardware-in-the-loop
  • Motion Control
  • Stabilization
  • Security Clearance
  • Controlled-Goods Program
  • Software Architecture
  • Debugging
  • Embedded Development
  • Mechatronics

Report this job

Get in touch
MovoJobs

Contact us