C++ Software Engineer
Job in
Ottawa, Ontario, Canada
Listed on 2026-07-27
Listing for:
Actalent
Full Time
position Listed on 2026-07-27
Job specializations:
-
Software Development
Unix/Linux, Embedded Systems/ Firmware/ IoT, Software Testing, Embedded Software Engineer
Job Description & How to Apply Below
- Strong experience developing software on Linux operating systems.
C++ Software Engineer – Manufacturing & Embedded Systems
This role focuses on developing embedded C++ software that supports hardware testing in both factory production and lab environments. You will design and maintain software used to execute functional tests, validate hardware performance, and troubleshoot complex issues across hardware and software. The position offers the opportunity to work on cutting‑edge automotive technologies and chipsets, gain exposure to early‑stage platforms, and tackle new hardware and software integration challenges in a highly collaborative team.
Responsibilities- Design, develop, and maintain C++ software to run functional tests on hardware during manufacturing.
- Support design verification and reliability testing in lab and bench environments by creating and enhancing test software.
- Interface directly with hardware components such as GPIO, CAN, Bluetooth, Wi‑Fi, GPS, and USB to enable robust testing and validation.
- Collaborate closely with cross-functional hardware, software, and manufacturing teams to define requirements and deliver effective test solutions.
- Debug complex issues in test environments and perform root cause analysis to distinguish between hardware and software problems.
- Analyze logs and test results to identify, troubleshoot, and resolve failures observed during test runs.
- Implement bug fixes, configuration updates, and software enhancements to improve test coverage, stability, and performance.
- Support factory builds by ensuring test software is correctly integrated, configured, and maintained for production use.
- Contribute to continuous improvement of testing frameworks, tools, and processes with a strong focus on debugging, testing, and hardware interaction.
- Participate in code reviews and follow best practices for developing reliable, time-critical embedded software.
- 2–8 years of C++ software development experience, with C++ as the primary programming language.
- Strong experience developing software on Linux operating systems.
- Hands‑on experience with multi‑threaded programming, including understanding race conditions and locking concepts.
- Comfort interacting with hardware and working in environments that involve direct hardware interaction rather than purely software‑only development.
- Demonstrated strength in debugging and troubleshooting complex software and hardware interaction issues.
- Ability to analyze logs and test results to identify root causes of failures.
- Clear understanding of writing time‑critical software and working with performance‑sensitive systems.
- Strong analytical and problem‑solving skills with a structured approach to diagnosing issues.
- Good verbal and written communication skills to collaborate effectively with cross‑functional teams.
- Proven ability to thrive in a fast‑paced environment with time‑critical projects.
- Motivation to work in a quality‑oriented, innovative environment focused on advanced automotive and embedded technologies.
Skills & Qualifications
- Embedded development experience, particularly in environments such as QNX or Embedded Linux.
- Willingness for strong C++ developers without prior embedded experience to learn and work in embedded contexts.
- Ability to read and interpret hardware schematics.
- Prior experience with hardware debugging and working alongside hardware engineering teams.
- Experience developing software specifically in support of hardware testing in factory or lab environments.
- Automotive software development experience, including CAN bus communications and frameworks such as AutoSAR/MCAL.
- Experience debugging on multi‑processor hardware architectures.
- Exposure to wireless technologies such as GSM, LTE, GPS, NFC, Bluetooth, and Wi‑Fi.
- Development experience with C (approximately 10–15% of the work).
- Development experience with scripting languages (approximately 10–15% of the work).
- Experience with flashing, partitioning, and unit testing tools used in embedded and manufacturing test environments.
- Exposure to additional programming languages used in the tech environment beyond C++.
- Interest in working on cutting‑edge…
Note that applications are not being accepted from your jurisdiction for this job currently via this jobsite. Candidate preferences are the decision of the Employer or Recruiting Agent, and are controlled by them alone.
To Search, View & Apply for jobs on this site that accept applications from your location or country, tap here to make a Search:
To Search, View & Apply for jobs on this site that accept applications from your location or country, tap here to make a Search:
Search for further Jobs Here:
×