Software Architect
Quebec, Quebec, CA
Sommaire du poste
Au sein du groupe R&D et en tant que membre d'une équipe multidisciplinaire, l’architecte logiciel joue un rôle clé dans la conception, le développement et l'optimisation des architectures au niveau du système d’exploitation des instruments EXFO. Vous serez responsable de concevoir des solutions évolutives, robustes et sécurisées sur la plateforme Linux. Vous devrez comprendre les besoins des utilisateurs, les exigences techniques et les meilleures pratiques pour assurer la performance et la fiabilité des plateformes EXFO.
Votre rôle
La personne sélectionnée aura à mettre en place l’architecture logiciel bas niveau des instruments EXFO. Pour se faire, elle devra connaitre :
- Conception de l’architecture : Développer et maintenir l'architecture des systèmes d'exploitation Linux, incluant le noyau, les drivers, et les couches middleware.
- Optimisation des performances : Identifier les goulots d’étranglement, optimiser les performances système et assurer l'efficacité des ressources pour répondre aux besoins de l’entreprise.
- Sécurité : Implémenter des stratégies de sécurité robustes pour protéger les systèmes basés sur Linux contre les menaces potentielles.
- Collaboration interdisciplinaire : Travailler en étroite collaboration avec les équipes de développement, DevOps, réseaux et sécurité pour définir les spécifications techniques et veiller à l’intégration des systèmes.
- Support technique avancé : Fournir un support de haut niveau pour les problèmes du système Linux, y compris le débogage des noyaux et des systèmes embarqués.
- Documentation : Rédiger et maintenir une documentation détaillée de l’architecture et des solutions mises en place pour assurer la traçabilité des décisions techniques.
- Veille technologique : Se tenir informé des nouvelles tendances et technologies dans l’écosystème Linux, et proposer des améliorations aux processus existants.
Ce que nous recherchons
Compétences techniques
- Connaissances approfondies : Maîtrise du noyau Linux, des systèmes de fichiers, de la gestion des processus et des réseaux sous Linux.
- Langages de programmation : Excellente maîtrise des langages tels que C, C++, Python, Bash, avec une expérience dans le développement de drivers et de modules pour Linux.
- Systèmes embarqués : Expérience dans l'optimisation de Linux pour des systèmes embarqués ou à ressources limitées.
- Compétences en sécurité : Connaissance approfondie des mécanismes de sécurité dans Linux (SELinux, nftables, etc.).
- Compétences en communication : Solides aptitudes à communiquer des concepts techniques complexes à des équipes non techniques.
Aptitudes requises
- Habileté à travailler en équipe
- Rigueur et souci du détail
- Autonomie, curiosité et désir d'apprendre
- Orienté vers les résultats
- Solides compétences techniques
- Capacité d'apprendre de façon continue
- Capacité à communiquer efficacement à l'oral et à l'écrit.
- Passion et curiosité
Exigences
5 ans d’expérience dans le domaine du développement en Linux embarqué.