Job Title
Software Developer III C++
Location
Montreal / C te-de-Liesse, Saint-Laurent, Quebec
Work Arrangement
Hybrid
Openings
2
Experience
5+ Years
Job Summary
We are seeking an experienced C++ Software Developer to develop, enhance, integrate, and support high-performance software for advanced sensor technology. The successful candidate will participate throughout the complete software development lifecycle, including requirements definition, architecture, design, development, unit testing, integration, validation support, deployment, and technical documentation.
Key Responsibilities
- Design and develop new software features using C++.
- Investigate and resolve defects and software deficiencies.
- Participate in requirements definition and detailed software design.
- Develop, test, document, integrate, and deploy high-quality software.
- Collaborate with software developers, architects, and verification and validation specialists.
- Participate in code reviews and continuously improve software-development practices.
- Support integration of new functionality and deployment of software solutions.
- Develop and maintain unit tests.
- Support verification and validation teams in defining formal test plans.
- Investigate defects identified during formal validation activities.
- Participate in planning and delivery within an Agile development environment.
- Contribute to software architecture, quality, maintainability, and performance improvements.
Required Qualifications
- Bachelor's degree in Computer Engineering, Software Engineering, Electrical Engineering, or a related discipline, or equivalent practical experience.
- 5+ years of professional software development experience.
- Strong programming experience with C++.
- Experience developing software on Windows and/or Linux.
- Experience with software integration and source-control tools such as GitHub or comparable platforms.
- Strong understanding of real-time programming concepts, including:
Processes and threadsSemaphoresSynchronization mechanismsMemory management - Strong understanding of networking technologies, including:
TCP/IP, sockets, and UDP - .Knowledge of interprocess communication mechanisms
- Strong organizational and planning capabilities.
- Excellent written and verbal communication skills.
- Strong initiative, teamwork, and problem-solving capabilities.
Preferred Qualifications
- Knowledge of UML.
- Understanding of software design patterns.
- Experience developing unit and system tests.
- Experience with avionics, vehicles, sensors, or communication systems.
Top Must-Have Skills
- 1. C++ ProgrammingStrong hands-on C++ software development expertise.
- 2. Windows and/or Linux DevelopmentProfessional experience developing applications in Windows or Linux environments.
- 3. Networking and IPCStrong understanding of TCP/IP, sockets, UDP, and interprocess communication.