Développeur(euse) logiciel

17 hours ago

Québec City, Quebec, Canada Socket.dev Full-time

La dynamique de votre équipe:

Nous sommes à la recherche d’un(e) développeur(euse) logiciel pour contribuer à la prochaine génération de Genetec Edge OS, notre système d’exploitation destiné aux appareils en périphérie (edge), ainsi qu’à son écosystème de gestion à distance.

Vous ferez partie d’une équipe qui développe une plateforme d’orchestration et de gestion permettant d’exécuter des charges de travail de façon sécuritaire et fiable sur des appareils gérés, au plus près des systèmes et des données qu’ils desservent.

Dans ce rôle, vous concevrez, développerez, testerez et déboguerez des composants essentiels d’orchestration, tels que des services embarqués (daemons) et des services infonuagiques qui assurent l’exécution des charges de travail à la périphérie.

Si vous êtes curieux(se), aimez comprendre en profondeur le fonctionnement des systèmes et êtes motivé(e) par la création de systèmes distribués robustes, ce poste est fait pour vous. Vous possédez une solide compréhension des systèmes d’exploitation, des réseaux, de la conteneurisation et de la sécurité.

Votre journée en un coup d'oeil :

  • Concevoir, développer et tester des logiciels principalement écrits en Go pour nos appareils basés sur Linux
  • Développer des services et processus infonuagiques permettant la configuration des appareils, la gestion de leur topologie, de leur cycle de vie et de leurs mises à jour
  • Développer des capacités réseau favorisant des communications sécurisées et résilientes entre les appareils et les charges de travail
  • Diagnostiquer et résoudre des problèmes touchant les services système, les réseaux, les conteneurs, les couches d’orchestration et les services infonuagiques
  • Améliorer les outils de dépannage à distance, la surveillance de l’état des appareils, l’observabilité et les mécanismes automatisés de reprise après incident
  • Collaborer étroitement avec les équipes de micrologiciel (firmware), d’infonuagique, de sécurité et de plateforme lors des phases de conception, d’implémentation et de révision de code

Ce qui fait de vous un excellent candidat :

  • Plusieurs années d’expérience dans la livraison de logiciels en production développés en Go, Rust, C/C++ ou dans d’autres langages de programmation système similaires
  • Solide expérience du développement et du débogage sous Linux (services, processus, permissions, réseautique, journaux système et contraintes de ressources)
  • Expérience dans le développement de logiciels pour des systèmes embarqués, des appareils en périphérie (edge), des appliances ou d’autres environnements présentant des contraintes similaires
  • Expérience pratique avec Kubernetes, les conteneurs ou des plateformes d’orchestration
  • Excellente maîtrise des concepts fondamentaux de réseautique (TCP/IP, DNS, routage, pare-feu, TLS, HTTP) et expérience concrète en dépannage
  • Capacité à concevoir des systèmes asynchrones fiables avec une gestion claire des états, des mécanismes de reprise (retries), l’idempotence et une gestion robuste des défaillances
  • Fort souci de la qualité logicielle et de la couverture des scénarios limites et des cas d’échec
  • Excellentes aptitudes en communication et intérêt pour la collaboration multidisciplinaire avec les équipes logicielles, micrologicielles, infonuagiques et de sécurité
  • Maîtrise du français et de l'anglais, tant à l'oral qu'à l'écrit (ce poste nécessite des interactions avec nos collaborateurs et clients internationaux)

Un atout si vous avez :

  • Une expérience pratique avec K3s, les composantes internes de Kubernetes, containerd, CNI, CSI, RBAC, les politiques réseau ou la gestion du cycle de vie des nœuds
  • Une expérience concrète en gestion de flottes d’appareils (approvisionnement, enrôlement, réconciliation entre l’état désiré et l’état rapporté, accès distant sécurisé)
  • Une expérience en ingénierie de la sécurité appliquée aux systèmes distribués (identité des appareils, certificats, autorisation, attestation, modélisation des menaces et auditabilité)
  • Une expérience en exploitation de plateformes infonuagiques à grande échelle, idéalement dans des architectures multi-régions
  • Une participation active au développement de systèmes de mise à jour de micrologiciels (firmware), de mécanismes de retour arrière A/B (rollback) ou de pratiques d’ingénierie de résilience
  • Une solide expérience dans la conception de solutions d’observabilité et de diagnostic pour des environnements distribués
  • Une expérience de travail avec du matériel à ressources limitées, des déploiements isolés du réseau (air-gapped) ou des systèmes installés sur site (on-premises)

Voilà ce que nous offrons

  • Régime de rémunération attrayant
  • Programme de remboursement des frais de formation
  • Environn