Développeur Logiciel / Software Developer
EngineeringContractorMontreal, QC
QUI NOUS SOMMES
Vous souhaitez rejoindre une équipe de calibre mondial et avoir un réel impact en contribuant au développement de technologies de rupture et révolutionnaires dans les domaines des interfaces humain-machine, de la robotique et de l’intelligence artificielle physique (Physical AI) ? Poursuivez votre lecture !
Innovobot Labs est un centre de conception et d’innovation exploité par Innovobot. Notre équipe s’attaque à des défis complexes grâce au développement et à l’application de technologies de pointe.
Innovobot Labs offre aux entreprises un cadre favorisant l’innovation ouverte et la collaboration, dans le but de créer des produits, des solutions et de la propriété intellectuelle prêts à être commercialisés.
L’OPPORTUNITÉ
Dans ce rôle, vous contribuerez au conditionnement logiciel (packaging), à la conception, au développement et aux tests de logiciels qui contrôlent des systèmes complexes, en intégrant les technologies numériques à des composants physiques.
Vous mettrez à profit vos compétences en développement logiciel pour créer des solutions intelligentes et automatisées dans les domaines de la mécatronique, de la robotique et des systèmes embarqués.
Ce poste exige une expérience concrète dans le développement et la livraison de logiciels destinés à la production. Une expérience en intégration et déploiement continus (CI/CD) est essentielle.
VOS RESPONSABILITÉS
- Concevoir et mettre en place des pipelines d’intégration et de déploiement continus (CI/CD) efficaces pour des produits complexes combinant matériel et logiciel, notamment pour le conditionnement et la distribution de logiciels sous Windows et potentiellement Linux.
- Développer, intégrer, tester et maintenir des applications et des composants logiciels utilisant Unity, en assurant leur performance, leur stabilité et leur compatibilité avec les systèmes matériels et logiciels.
- Effectuer des tests rigoureux et assurer le débogage des composants logiciels, en mettant l’accent sur leur fiabilité et leur stabilité dans des environnements réels.
- Développer, tester et déboguer du code permettant l’interaction avec des capteurs, des actionneurs et d’autres composants matériels, afin d’assurer une intégration robuste et le bon fonctionnement des systèmes.
VOTRE PROFIL
- Baccalauréat ou maîtrise en génie logiciel, en robotique, en génie électrique ou dans un domaine connexe.
- Minimum de 5 ans d’expérience en développement logiciel, particulièrement dans le développement de logiciels destinés à la production, l’automatisation, la robotique ou les systèmes de contrôle.
- Expérience pratique obligatoire avec Unity, incluant le développement, l'intégration et le débogage d'applications dans un environnement professionnel.
- Maîtrise de langages de programmation tels que C/C++, C#, Python ou Java (le projet principal utilise une combinaison de C/C++ et de C#).
- Excellentes aptitudes en résolution de problèmes, souci du détail et engagement envers la qualité du travail.
- Esprit de collaboration et excellentes compétences en communication permettant de travailler efficacement au sein d’équipes multidisciplinaires.
- Capacité à documenter le code et les processus techniques de manière claire et concise.
Vous pourriez également être appelé(e) à accomplir les tâches suivantes :
- Travailler directement avec des prototypes et des bancs d’essai afin de diagnostiquer les problèmes et d’améliorer le comportement des systèmes.
- Optimiser continuellement les logiciels afin d’améliorer la réactivité des systèmes, de réduire la latence et d’accroître leurs performances.
- Concevoir et développer des logiciels destinés à l’automatisation et au contrôle de systèmes mécaniques et robotiques.
- Développer des algorithmes personnalisés et du code embarqué pour gérer les mécanismes de rétroaction, les boucles de contrôle et les réponses en temps réel des systèmes mécatroniques.
- Collaborer étroitement avec les ingénieurs en mécanique et en électronique
______________________________________________________
WHO WE ARE
Do you want to join a world-class team and make a real impact by fostering disruptive, revolutionary tech around Human-Machine Interface, Robotics and Phsyical AI? Keep reading! Innovobot Labs is an Innovation Design House operated by Innovobot. The Labs tackle pressing problems through the development and application of cutting-edge technologies., Innovobot Labs provides companies with a framework for open innovation and collaboration, with the goal of creating products, solutions and IP that are commercialization ready.
THE OPPORTUNITY
In this role, you will contribute to the packaging, design, development, and testing of software that controls complex systems, merging digital technology with physical components. This role will leverage your software development skills to create intelligent, automated solutions in mechatronics, robotics, and embedded systems. This role requires experience with building shipping software. CI/CD experience is essential to this role.
WHAT YOU WILL DO
- Design effective CI/CD pipelines for a complex hardware+software product – Windows and potentially Linux software packaging.
- Develop, integrate, test, and maintain Unity-based applications and software components, ensuring performance, stability, and compatibility with hardware and software systems.
- Conduct rigorous testing and debugging of software components, with a focus on reliability and stability in real-world environments.
- Develop, test, and debug code that interfaces with sensors, actuators, and hardware components, ensuring robust integration and system functionality.
- You may also be called upon to perform the following tasks:
- Work hands-on with prototypes and testing setups to troubleshoot issues and refine system behavior.
- Continuously optimize software to improve system responsiveness, reduce latency, and enhance performance.
- Design and implement software for automation and control of mechanical and robotic systems.
- Write custom algorithms and embedded code to manage feedback, control loops, and real-time responses in mechatronic systems.
- Work closely with mechanical and electrical engineers to integrate software with hardware and mechanical components.
- Participate in design reviews and testing sessions, providing insights into software-hardware interactions and recommending optimizations for system performance.
- Draft technical documentation, including system specifications, interface requirements, and user guides.
WHO YOU ARE
- Bachelor’s or Master’s degree in Software Engineering, Robotics, Electrical Engineering, or a related field.
- Mandatory hands-on experience with Unity, including developing, integrating, and debugging applications in a professional environment.
- 5+ years of experience in software development, particularly in production software builds, automation, robotics, or control systems.
- Proficiency in programming languages like C/C++, C#, Python, or Java (the main project is a mix of C/C++ and C#)
- Strong problem-solving abilities, with attention to detail and a commitment to high-quality work.
- Collaborative mindset with strong communication skills to work effectively within cross-functional teams.
- Ability to document code and technical processes concisely and clearly.
Pluses (not firm requirements):
- Exposure to embedded development environments and real-time operating systems (RTOS).
- Knowledge of embedded systems, control algorithms, and software-hardware interfacing (e.g., CAN, I2C, SPI).
- Understanding of sensor data processing, actuator control, and closed-loop systems.
- Familiarity with CAD tools and simulation software (such as MATLAB/Simulink).
- Innovobot values diversity, equity, and inclusion and is committed to creating a respectful environment for all employees.
Sound like you? Apply today