
Senior Software Developer (C++ & Qt) / Développeur logiciel principal (C++ et Qt)
- Montreal, QC
- $79,700 per year
- Permanent
- Full-time
- Design and implement new functionality across multiple software components for embedded medical devices
- Participate in the complete software development lifecycle: design, implementation, testing, debugging, documentation, and maintenance
- Develop internal tools, test utilities, and scripts to support and streamline the engineering workflow
- Research new product concepts, identify cost-effective solutions, and evaluate potential suppliers
- Support and improve existing products through verification, validation, and performance optimization
- Troubleshoot and diagnose technical issues across hardware-software interfaces
- Create and maintain technical documentation, including product specifications and operational manuals
- Assist in validating and testing prototypes to ensure compliance with regulatory and quality standards
- Collaborate with quality and manufacturing teams to ensure production-level product reliability and compliance
- Maintain accurate and up-to-date design documentation throughout the product lifecycle
- Bachelor’s or master’s degree in software engineering, computer science or a related field
- 7+ years of experience in software development, with a proven track record of delivering robust and scalable applications.
- 6+ years of professional experience with modern C++ (C++11/14 or later), demonstrating proficiency in writing clean, maintainable, and efficient code.
- Strong understanding and application of object-oriented programming, design patterns, threading, and concurrency
- Strong experience with Qt/QML for graphical user interface (GUI) development, using MVC architecture
- Ability to produce clean, readable, and maintainable code following project-specific conventions
- Passion for innovation in medical device development and a strong commitment to product quality
- Excellent collaboration and communication skills across cross-functional teams
- Experience with multithreading, memory management, and cross-platform development (Windows/Linux)
- Proficient with CMake and C++ debugging tools
- Experience with Test-Driven Development (TDD) and writing unit tests
- Familiarity with communication protocols such as CAN Bus, Ethernet, and UART
- Knowledge of embedded Linux environments (e.g., Yocto, boot2Qt, Ubuntu)
- Experience working in Agile/Scrum development teams
- Exposure to CI/CD practices in regulated environments
- Experience with C# and WPF
- Background in regulated industries such as medical devices, aerospace, or pharmaceuticals
- Concevoir et mettre en œuvre de nouvelles fonctionnalités à travers de multiples composants logiciels de dispositifs médicaux intégrés.
- Participer à l’ensemble du cycle de développement de logiciels : conception, mise en œuvre, tests, débogage, documentation et maintenance.
- Développer des outils internes, des utilitaires de test et des scripts pour soutenir et rationaliser le flux de travail des ingénieurs.
- Rechercher de nouveaux concepts de produits, cibler les solutions rentables et évaluer les éventuels fournisseurs.
- Soutenir et améliorer les produits actuels par la vérification, la validation et l’optimisation des performances.
- Dépanner et diagnostiquer les problèmes techniques au niveau des interfaces matériel-logiciel.
- Créer et tenir à jour la documentation technique, y compris les fiches techniques des produits et les manuels d’utilisation.
- Aider à valider et à tester les prototypes afin de garantir leur conformité aux normes réglementaires et de qualité
- Collaborer avec les équipes chargées de la qualité et de la fabrication afin de garantir la fiabilité et la conformité des produits au niveau de la production.
- Maintenir une documentation des études précise et à jour tout au long du cycle de vie du produit.
- Diplôme de premier cycle ou maîtrise en génie des logiciels, en informatique ou dans un domaine connexe.
- Plus de sept années d’expérience dans le développement de logiciels, avec une expérience reconnue dans la fourniture d’applications robustes et évolutives.
- Plus de six années d’expérience professionnelle en C++ moderne (C++11/14 ou plus récent), démontrant des compétences dans l’écriture de codes propres, maintenables et efficaces.
- Solides connaissances et maîtrise de la programmation orientée objet, des modèles de conception, de l’enfilage et de la simultanéité.
- Solide expérience avec Qt/QML pour le développement d’interfaces utilisateur graphiques à l’aide de l’architecture MVC.
- Capacité à produire des codes propres, lisibles et faciles à maintenir en respectant les conventions propres au projet.
- Passion pour l’innovation dans le développement de dispositifs médicaux et ferme engagement envers la qualité des produits.
- Excellentes aptitudes en matière de collaboration et de communication au sein d’équipes interfonctionnelles.
- Expérience en enfilage multiple, en gestion de la mémoire et en développement multiplateforme (Windows/Linux).
- Maîtrise des outils de débogage CMake et C++.
- Expérience en développement piloté par des tests et en rédaction de tests unitaires.
- Bonne connaissance des protocoles de communication tels que CAN Bus, Ethernet et UART.
- Connaissance des environnements Linux embarqués (p. ex. Yocto, boot2Qt, Ubuntu).
- Expérience de travail au sein d’équipes de développement Agile/Scrum.
- Exposition aux pratiques d’intégration continue et de livraison/déploiement continu dans des environnements réglementés.
- Expérience avec C# et WPF.
- Expérience dans des secteurs réglementés tels que les dispositifs médicaux, l’aérospatiale ou les produits pharmaceutiques.