<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=2960562&amp;fmt=gif">

Développeur logiciel DevOps / Full Stack
Montréal, QC


Description de la compagnie

Xiphos Systèmes Inc., fondée en 1996, est une entreprise dynamique et énergique située au cœur du Plateau du Mont Royal à Montréal. Depuis plus de 20 ans, nous avons repoussé les limites de ce qui est possible dans le domaine du NewSpace et nous avons gagné la confiance de diverses agences et entreprises spatiales du monde entier. l'industrie a adopté notre approche de conception et, par conséquent, nous connaissons depuis plusieurs années une croissance rapide et régulière, et la tendance se poursuit !

Notre vision est de faire migrer les techniques terrestres d'informatique et de communication en réseau vers les environnements spatiaux. l'expertise de l'entreprise en matière de processeurs en réseau s'est transformée en une gamme de solutions matérielles et logicielles de haute performance et tolérantes aux pannes pour le traitement des commandes de vol et des capteurs dans des applications spatiales avancées, vastes et variées.

Les principaux marchés de Xiphos sont les petits satellites, les applications de la station spatiale internationale, ainsi que les atterrisseurs lunaires, les rovers et la robotique. Nous avons livré nos produits standards et personnalisés dans le monde entier et avons joué un rôle essentiel dans de nombreuses missions spatiales réussies. Grâce à leur faible consommation d'énergie, leur puissance de traitement élevée, leur flexibilité accrue, leur excellente robustesse et leurs fonctions éprouvées disponibles prêts-à-l’emploi, nos cartes Q sont de plus en plus la solution privilégiée dans le domaine en plein essor du NewSpace.

Description du rôle

Nous sommes à la recherche d'un développeur logiciel Full Stack / DevOps pour se joindre à notre équipe Logiciels d'ingénierie. Dans ce rôle, vous serez responsable de la plateforme CI/CD qui assure la compilation, les essais et la publication des micrologiciels (firmware) et des images Linux embarquées destinés à la famille de modules de calcul spatiaux Q-card de Xiphos. Vous concevrez et exploiterez les pipelines GitLab CI/CD, gérerez l'infrastructure en tant que code (Infrastructure as Code – IaC) à l'aide de Terraform, maintiendrez les images de conteneurs de compilation (build containers) et développerez des outils internes ainsi que des tableaux de bord Web permettant aux équipes d'ingénierie de suivre en temps réel l'état des compilations, les résultats des essais Hardware-in-the-Loop (HIL) et l'état de préparation des versions. Il s'agit principalement d'un poste en DevOps et en développement logiciel. Une expertise approfondie de Linux embarqué ou du développement de BSP n'est pas requise, mais une bonne connaissance de la compilation croisée et des systèmes de compilation basés sur Yocto constitue un atout important.

Tâches Principales
  • Être responsable de l'évolution des pipelines GitLab CI/CD permettant la compilation, l'analyse statique (lint), les essais et la publication des images Yocto pour une matrice de plus de 30 plateformes (Q7S, Q8S, Q8JS, Q8RF, Q9/Versal), comprenant les étapes prepare → lint → build → scheduled → release.
  • Maintenir et optimiser la chaîne de compilation kas / BitBake, notamment la stratégie de mise en cache sstate; les mécanismes de protection contre le manque d'espace disque; les tâches de validation (dry-run) des demandes de fusion (Merge Requests); les tâches de vérification de référence sans cache (--no-setscene).
  • Gérer le cycle de vie des conteneurs Docker de compilation : rédiger les Dockerfiles; publier les images versionnées dans le GitLab Container Registry; assurer la reproductibilité des versions des chaînes d'outils (kas, Vivado, cross-gcc).
  • Mettre en œuvre et appliquer les meilleures pratiques de sécurité de la chaîne d'approvisionnement logicielle, notamment la provenance SLSA (mode=max); la génération de fichiers SPDX / SBOM; la signature des artefacts; l'audit des dépendances verrouillées.
  • Administrer l'infrastructure GitLab gérée par Terraform (tf-git), notamment le provisionnement des projets; l'héritage des modèles CI; la configuration de semantic-release; les règles de protection des branches; la configuration des miroirs sur plus de 260 dépôts.
  • Maintenir les groupes de GitLab Runners, notamment la planification de capacité; la configuration des exécuteurs Docker; la gestion des volumes de cache; les stratégies d'étiquetage (runner tags) pour les compilations Yocto exigeantes.
  • Concevoir et maintenir des tableaux de bord Web internes ainsi que des outils en ligne de commande (CLI) développés en Python, Go et TypeScript, permettant de visualiser en temps réel : l'état des compilations; les résultats des essais Hardware-in-the-Loop (HIL); le suivi des versions prêtes pour les missions.
  • Développer et maintenir les automatisations et les rapports Jira, notamment les intégrations REST API; les rapports de santé des sprints; la détection des écarts entre les versions; les vérifications de couverture entre les livraisons XPM et les sprints.
  • Améliorer continuellement l'expérience des développeurs (Developer Experience) en mettant en place : des hooks pre-commit (commitlint, Prettier, oelint-adv); des modèles de Merge Requests; les bonnes pratiques de versionnement sémantique; la documentation d'intégration des nouveaux employés.
  • Agir comme premier intervenant lors des défaillances des pipelines CI de publication des Q-cards, analyser les causes fondamentales et coordonner les correctifs avec les équipes de micrologiciel, du noyau Linux et de développement FPGA.
  • Maintenir la documentation de compilation et de déploiement dans le wiki de l'équipe ainsi que le pipeline CI de génération de la documentation utilisateur (image Docker docs-builder, résolution des étiquettes GIT_DEPTH=0).

Domaines de Connaissances Souhaitables
  • GitLab CI/CD : rédaction de pipelines (.gitlab-ci.yml); gestion des étapes (stages); exécution parallèle; dépendances DAG; gestion des artefacts; GitLab Runners basés sur Docker; environnements protégés.
  • Semantic Release et Conventional Commits versionnement automatisé; génération des journaux de modifications (changelog); création automatique des versions.
  • Sécurité de la chaîne d'approvisionnement logicielle : SLSA (niveaux 1 à 3); génération de SPDX SBOM; provenance des artefacts; analyse des vulnérabilités des dépendances.
  • Infrastructure as Code (IaC) : Terraform; modules; état distant (remote state); fournisseur GitLab; automatisation CI.
  • Docker / Conteneurs OCI : compilations multiétapes; optimisation des images; gestion des registres; Dev Containers; Docker Compose.
  • Python: automatisation; clients REST API; outils CLI; pipelines de données.
  • JavaScript / TypeScript : outils Node.js; développement de tableaux de bord internes avec React, Vue ou Next.js.
  • Jira / API REST Atlassian : création de documents ADF; recherches JQL; gestion des sprints; automatisation par webhooks.
  • Yocto Project / OpenEmbedded : modèle de tâches BitBake; fichiers de configuration kas; cache state; rédaction de recettes (recipes).
  • Concepts de compilation croisée, notamment toolchain triplets; sysroots; génération de SDK.
  • Compréhension de la chaîne de démarrage Linux embarqué : U-Boot; ATF; Device Trees; capacité à interpréter les erreurs CI (sans nécessairement développer le BSP).
  • Essais Hardware-in-the-Loop (HIL) et automatisation de laboratoire : programmation des cartes; validation par console série; gestion de l'inventaire et de l'alimentation des bancs d'essai.
  • Atouts supplémentaires : expérience pratique avec Yocto / BitBake; connaissance des outils Xilinx / AMD (Vivado, PetaLinux); expérience dans le domaine spatial ou dans le développement de systèmes critiques.
Qualifications
  • Baccalauréat en informatique, en génie logiciel ou dans une discipline connexe, ou expérience pratique équivalente.
  • Minimum de trois (3) années d'expérience dans un rôle en DevOps, en ingénierie de plateformes, en ingénierie CI/CD ou en ingénierie de fiabilité des sites (Site Reliability Engineering – SRE).
  • Excellente maîtrise pratique de GitLab CI/CD (ou d'une plateforme équivalente telle que GitHub Actions ou Jenkins), incluant : la conception et le développement de pipelines; la gestion des exécuteurs (Docker Runners); les stratégies de gestion des artefacts; l'automatisation des processus de publication.
  • Maîtrise de Python pour l'automatisation; l'intégration d'API REST; le développement d'outils en ligne de commande (CLI).
  • Expérience avec les outils d'Infrastructure as Code (IaC), Terraform étant privilégié.
  • Bonne maîtrise de Docker, notamment : la création et l'optimisation d'images de conteneurs; la gestion d'un registre d'images; le diagnostic et la résolution de problèmes dans des environnements de compilation basés sur des conteneurs.
  • Bonne connaissance des flux de travail Git, notamment les Conventional Commits; le versionnement sémantique (Semantic Versioning); la protection des branches; les processus de révision des Merge Requests (MR) ou des Pull Requests (PR).
  • Aisance avec JavaScript et TypeScript pour le développement d'outils Web internes ou de tableaux de bord.
  • Bonne connaissance des systèmes Linux, notamment systemd; les scripts Shell; les concepts de compilation croisée (cross-compilation); capacité à diagnostiquer et résoudre les échecs de compilation.
  • Excellentes aptitudes en communication, tant à l'écrit qu'à l'oral, en anglais. La connaissance du français constitue un atout.
  • Être autorisé à travailler au Canada et être admissible à se conformer aux exigences relatives au contrôle des exportations (ITAR/EAR).

CLIQUEZ ICI POUR POSTULER