C++ Software Developer
Montreal, QC (Hybrid)
Contract
Position Overview
We are seeking a C++ Software Developer to join a specialized engineering team focused on developing and enhancing software capabilities for advanced sensor systems.
The Software Developer will be involved in all phases of the software development lifecycle, including requirements definition, architecture, software development, unit testing, integration, validation, and documentation.
Working closely with software developers, architects, and Verification & Validation (V&V) specialists, the developer will contribute to delivering high-quality software solutions and continuously improving development practices.
Key Responsibilities
- Develop new software features, including design, coding, testing, and documentation.
- Troubleshoot and resolve software defects identified in products.
- Collaborate on requirements definition, feature design, and software requirements validation.
- Participate in code reviews and contribute to improving software development practices.
- Support software integration and deployment of solutions.
- Work with V&V specialists to define formal test plans and investigate defects identified during validation activities.
- Participate in Agile planning and delivery activities.
- Collaborate with cross-functional teams to ensure high-quality software deliverables.
Required Qualifications & Technical Skills
- 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 platforms.
- Experience with software integration and source control tools such as GitHub/Git.
- Strong understanding of real-time programming concepts, including:
- Processes and threads
- Semaphores
- Synchronization mechanisms
- Memory management
- Knowledge of network protocols and communication technologies, including:
- TCP/IP
- Sockets
- UDP
- Inter-Process Communication (IPC)
Nice-to-Have Skills
- Knowledge of UML (Unified Modeling Language).
- Knowledge of software design patterns.
- Experience developing unit and system tests.
- Experience with avionics, vehicle, sensor, communications, or other embedded/real-time systems.
Soft Skills
- Strong organizational and planning skills.
- Excellent verbal and written communication skills.
- Dynamic, results-oriented, and proactive approach.
- Strong team collaboration and problem-solving abilities.
Top 3 Must-Have Skills
- Strong C++ programming experience
- Software development experience on Windows and/or Linux
- Knowledge of TCP/IP, Sockets, UDP, and IPC
op 3 Nice-to-Have Skills
- UML knowledge
- Software design patterns
- Experience with unit and system testing