Tu es passionné par la vision artificielle, l’intelligence artificielle et le développement logiciel? Rejoins notre équipe R&D et mets ton talent au service de projets innovants en haute technologie. En tant que Développeur logiciel et DevOps, tu contribueras à concevoir des architectures solides, à coder avec rigueur et créativité, et à faire avancer des solutions de pointe dans un environnement Agile et collaboratif. Ici, chaque idée compte et chaque projet te permet de repousser les limites de l’innovation.
Le Poste:
En tant que passionné du développement logiciel, de l'architecture applicative et des pratiques DevOps, le titulaire du poste agit à titre d'expert technique responsable de la qualité, de la structure et de la pérennité des développements logiciels du département de recherche et développement. Au delà de la réalisation d'applications performantes (notamment en C++), il a pour mandat de définir et de faire évoluer l'architecture logicielle, de structurer le code existant (legacy) selon les règles de l'art et de mettre en place les
environnements de tests, de versionnage et d'intégration/déploiement continus (CI/CD). Il travaille au sein d'une équipe multidisciplinaire d'experts en développement de produits de haute technologie, en complément de l'expert en vision artificielle et intelligence artificielle ainsi que des développeurs d'applications, selon l'approche Agile et les développements pilotés par les tests (TDD).
Nous offrons…
- Des emplois stimulants
- Des horaires variables
- Plusieurs possibilités d’avancement
- Une salle d’entrainement accessible et gratuite
- Des formations à l’interne
- Des possibilités de voyager
- Et encore bien plus…
Quelques responsabilités:
- Développer et introduire en usine des solutions logicielles embarquées pour des procédés de transformation alimentaire sur des plateformes robotisées, automatisées et connectés (IIoT)
- Développer des applications et solutions logicielles embarquées performantes et maintenables (principalement en C++) pour des procédés de transformation alimentaire sur des plateformes robotisées, automatisées et connectées (IIoT)
- Définir, documenter et faire évoluer l'architecture logicielle (modulaire, microservices, multiplateforme) en collaboration avec l'équipe, en appliquant les bons principes de conception (patrons de conception, SOLID, découplage)
- Structurer, refactoriser et fiabiliser le code existant (legacy) afin d'en améliorer la qualité, la lisibilité et la maintenabilité
- Définir et mettre en place la stratégie de tests : tests unitaires, tests d'intégration, tests de non régression, et accompagner l'équipe dans l'adoption du TDD
- Établir et maintenir les environnements et bonnes pratiques de gestion de code source (stratégie de branches Git, revues de code, conventions de codage)
- Concevoir, automatiser et maintenir les chaînes d'intégration et de déploiement continus (CI/CD) ainsi que les pratiques DevOps (et MLOps en soutien aux applications d'IA)
- Mettre en place et maintenir les systèmes de construction (build) multiplateforme (CMake), de même que la gestion des dépendances et des versions
- Outiller l'équipe, diffuser les meilleures pratiques de développement et encadrer techniquement les développeurs (dont les profils juniors)
- Collaborer avec l'expert en vision artificielle et IA afin d'intégrer ses algorithmes dans une architecture applicative robuste et industrialisable
- Participer à la conception et au développement de plateformes technologiques et de systèmes, et alimenter les cahiers de spécifications
- Participer à l'établissement des requis et des échéanciers en collaboration avec les gestionnaires de projets
- Rédiger des documents techniques en collaboration avec le rédacteur technique et former les équipes de service et de mise en route des systèmes
- Identifier les opportunités d'amélioration continue et d'optimisation et proposer des solutions
- Participer à la résolution des problématiques liées à ses projets en proposant des solutions innovatrices
- Planifier au niveau logiciel le FAT (Factory Acceptance Test) et le SAT (Site Acceptance Test) et coordonner les actions qui peuvent en découler s'il y a lieu
- Participer, au besoin, à l'installation et à la mise en marche des prototypes à l'international
- Effectuer, à la fin du projet, un rapport des différentes opportunités à prendre en considération pour les projets futurs, dans un but d'amélioration continue
- S'assurer de l'application, lors des chantiers et en usine, des normes santé-sécurité de Frontmatec et des normes et lois en vigueur (OSHA, LSST et autres dans le domaine)
Expériences et compétences:
- Baccalauréat ou DEC en génie logiciel (ou informatique) jumelé à 5 à 8 ans d'expérience pertinente
- Expérience démontrée en architecture logicielle et en structuration de projets de développement
- Expérience concrète de mise en place d'environnements de tests, de versionnage et de chaînes CI/CD
- Expérience de modernisation / refactorisation de bases de code existantes (legacy) — un atout important
- Maîtrise approfondie du C++ moderne (C++11/14/17 et plus) et de la programmation orientée objet et générique
- Solide expérience en architecture logicielle : conception modulaire, microservices, multiplateforme, patrons de conception et principes SOLID
- Maîtrise des stratégies de gestion de code source et de versionnage (Git, stratégies de branches, revues de code)
- Maîtrise des pratiques et outils DevOps et d'intégration/déploiement continus (CI/CD : GitLab CI, Jenkins, GitHub Actions ou autres ; conteneurisation Docker)
- Maîtrise des concepts et cadriciels de tests unitaires, d'intégration et de non-régression, ainsi que du TDD
- Expérience en conteneurisation et orchestration (Docker, Kubernetes)
- Expérience avec le système de construction (build) multiplateforme CMake
- Maîtrise des environnements Linux et Windows
- Maîtrise d'au moins une plateforme de documentation et de suivi (Jira, Confluence, GitLab ou autres)
- Bonne approche système et capacité avérée à structurer et fiabiliser une base de code existante (legacy)
- Gestion de projets Agile
- Bonne capacité de communication, d'analyse et de vulgarisation technique
- Capacité à encadrer techniquement et à diffuser les bonnes pratiques au sein de l'équipe
- Anglais intermédiaire (à l'oral et à l'écrit pour parler et échanger par courriel avec les clients anglophones)
- Créativité
- Autonomie
- Curiosité intellectuelle
- Jugement
- Sens des priorités
- Agir à titre d'ambassadeur Frontmatec
Particularité liée au poste:
- Voyagement (voyager entre 5 à 10 fois par année à l’international, environ 1 sem. par voyage)
- Posséder un passeport et un permis de conduire valide
- Obtenir un visa/document nécessaire de visiteur pour les États-Unis
Nous souscrivons au principe d'équité en emploi et appliquons un programme d'accès à l'égalité en emploi pour les femmes, les autochtones, les minorités visibles, les minorités ethniques et les personnes handicapées.