C++ Software Developer
Montreal, QC
Contract
Position Overview
The Software Developer will be responsible for developing new software capabilities and/or correcting identified deficiencies for sensor-based software products.
The Software Developer will work across all phases of the software development lifecycle, including **requirements definition, architecture, development, unit testing, integration, validation, and documentation**.
In collaboration with other software developers, architects, and V&V specialists, the Software Developer will propose and implement improvements to achieve high-quality software deliverables.
Responsibilities
* Participate in the development of new features, including **design, coding, testing, and documentation**.
- Investigate and resolve bugs identified in software products.
- Collaborate in the development of requirements, feature design, and validation of software requirements.
* Participate in **code reviews** and contribute to improving software development practices.
- Participate in the **integration of functionalities and deployment of solutions**.
- Support V&V specialists in defining formal test plans and investigating issues identified during formal validation activities.
* Participate in planning and delivering software releases within an **Agile development framework**.
Required Technical Skills & Experience
- Bachelor's degree in **Computer Engineering, Software Engineering, Electrical Engineering**, or equivalent experience.
* 5+ years of software development experience.
* Strong knowledge of C++ programming.
* Experience developing software on **Windows and/or Linux** environments.
* Knowledge of software integration and **source control tools**, such as GitHub or similar platforms.
* Knowledge of **real-time programming concepts**, including:
- Synchronization mechanisms
- Knowledge of **networking protocols**, including:
- Knowledge of **Inter-Process Communication (IPC)** mechanisms.
Nice to Have
- Knowledge of **UML (Unified Modeling Language)**.
- Knowledge of **software design patterns**.
- Experience developing **unit tests and system tests**.
- Knowledge or experience with **avionics, vehicles, sensors, or communications systems**.
Key Skills
- Strong organizational and planning skills.
- Good **oral and written communication** skills.
- Dynamic and results-oriented approach.
- Strong team spirit and ability to collaborate effectively.
- Strong sense of initiative and problem-solving ability.