Se rendre au contenu

Senior Software Engineer – Drone Control & Simulation (Defense and Dual-Use)

Montréal, QC, Canada

À propos de Haply et de sa mission

Haply Robotics conçoit des contrôleurs haptiques : des dispositifs qui permettent de ressentir ce que fait une machine, et non seulement de le voir.

(dual use): public safety, search and rescue, inspection, and industry. Nous appliquons maintenant cette technologie aux drones et aux véhicules, en ciblant d’abord le marché de la défense. Les forces armées et les fabricants d’équipements de défense sont nos principaux clients et partenaires. Cette même technologie peut également être utilisée à des fins civiles (technologie à double usage), notamment dans les domaines de la sécurité publique, de la recherche et du sauvetage, de l’inspection et de l’industrie.

Le concept est simple. Aujourd’hui, les opérateurs pilotent un drone ou un véhicule à l’aide d’un écran et d’une manette de commande. Avec Haply, ils peuvent aussi ressentir ce qui se passe : une zone interdite d’accès génère une résistance avant qu’ils ne la franchissent, un obstacle invisible peut être ressenti dans la main, et le contrôleur leur indique le mode de fonctionnement du véhicule. Les opérateurs apprennent plus rapidement, commettent moins d’erreurs et gardent les yeux sur leur mission.

Le poste

Votre mission : aider Haply à développer ce nouveau marché en concevant le produit qui le rend possible.

Le poste repose sur deux piliers. Le pilotage des drones : la manière dont l’opérateur contrôle le drone, du pilotage direct aux modes assistés. L’environnement de simulation : là où les opérateurs s’entraînent et où l’équipe effectue des tests et des démonstrations avant de passer au vol réel. La technologie haptique est ce qui rend ces deux aspects uniques.

Ce produit est notre plateforme Drone : un logiciel de téléopération haptique qui relie un contrôleur Haply à un véhicule. Il transmet les mouvements de la main de l’opérateur au véhicule et transforme les informations captées par ce dernier en forces que l’opérateur peut ressentir. Il fonctionne aussi bien en simulation que sur des véhicules réels, avec les mêmes commandes et les mêmes sensations (transfert de la simulation au réel), ce qui permet aux opérateurs de s’entraîner en simulation avant de passer au pilotage réel. Actuellement compatible avec les drones, il est également conçu pour les véhicules terrestres, les bateaux et les bras robotiques, que l’opérateur soit à distance ou à bord. Par exemple, un Haply Inverse3 peut être intégré au poste de commande d’un véhicule blindé.

Il s’agit du premier poste de développement entièrement consacré à cette nouvelle initiative. Vous établirez les bases techniques aux côtés de l’ingénieur à l’origine de la plateforme Drone et contribuerez à faire évoluer celle-ci d’une preuve de concept vers un système robuste et éprouvé sur le terrain.

Vous ne travaillerez pas seul. Vous collaborerez avec un champion de pilotage de drones qui effectuera les essais en vol, apportera le point de vue de l’opérateur et mettra chaque fonctionnalité à l’épreuve dans des conditions réelles de vol. Vous travaillerez également en étroite collaboration avec les équipes HARP : la plateforme Drone est appelée à converger avec HARP, la plateforme robotique de Haply basée sur Rust. Une grande partie de votre travail consistera donc à concevoir avec ces équipes des composants partagés et une architecture commune.

Vous relèverez directement du vice-président, Produits et applications.

 

Responsabilités

  • Pilotage des drones : traduire les commandes de l’opérateur en instructions pour le drone, dans les différents modes de vol (du pilotage direct aux modes assistés), à l’aide de pilotes automatiques (ArduPilot, PX4, Betaflight) et de liaisons MAVLink ou de radiocommande (RC).
  • Environnement de simulation : sélectionner, intégrer et maintenir le simulateur (ArduPilot ou PX4 SITL, Gazebo, AirSim ou une solution basée sur Unreal) afin de permettre aux opérateurs de s’entraîner et à l’équipe d’effectuer des tests et des démonstrations en simulation, puis de passer au vol réel avec les mêmes commandes et les mêmes sensations haptiques (sim-to-real).
  • Diriger le développement logiciel de la plateforme Drone, notamment son architecture, sa qualité et sa feuille de route technique.
  • Développer les fonctionnalités haptiques ressenties par les opérateurs : zones interdites, obstacles, alertes, modes de fonctionnement et comportements des véhicules.
  • Intégrer la plateforme Drone à de nouveaux véhicules : d’abord les drones, puis les véhicules terrestres et les postes de commande embarqués.
  • Assurer la sécurité de la plateforme en garantissant un comportement prévisible en cas de perte de la liaison radio, du signal GPS ou de défaillance d’un capteur.
  • Intégrer l’ensemble de la chaîne technologique : pilote automatique et commandes de vol, capteurs (LiDAR, GPS, flux optique et autres), liaisons radio et flux vidéo, afin de générer les retours haptiques ressentis par l’opérateur.
  • Effectuer des essais sur le terrain avec notre champion de pilotage de drones, les opérateurs et nos partenaires, puis mettre à profit leurs commentaires pour apporter des améliorations.
  • Collaborer étroitement avec les équipes HARP afin d’harmoniser les architectures, de partager les composants et les normes techniques, et de planifier la convergence avec HARP.
  • Rehausser les standards d’ingénierie grâce aux tests, aux revues de code, à la documentation et à l’intégration continue (CI), afin de favoriser le partage des connaissances et de permettre à la plateforme de passer à l’échelle.
  • working on the platform. Encadrer et soutenir les autres développeurs et les collaborateurs externes qui travaillent sur la plateforme.

Qualifications requises

  • Plus de 5 ans d’expérience en génie logiciel avec un langage de programmation système (Rust, C++ ou équivalent).​
  • Une connaissance pratique de Rust ou la capacité de devenir rapidement opérationnel avec ce langage : notre plateforme est développée en Rust. Vous n’avez pas besoin d’être un expert en Rust.
  • Expérience pratique du contrôle de vol de drones : ArduPilot, PX4 ou Betaflight, protocoles MAVLink ou de radiocommande (RC), modes de vol et réglage des paramètres de vol.
  • Capacité à intégrer un simulateur à la plateforme : sélectionner un simulateur de vol ou de véhicule (ArduPilot ou PX4 SITL, Gazebo, AirSim, ou une solution basée sur Unreal ou Unity), le connecter à la plateforme Drone en intégrant la dynamique du véhicule, les capteurs et les flux vidéo simulés, et assurer une fidélité suffisante par rapport au véhicule réel pour permettre la formation et les essais.
  • Expérience des systèmes temps réel ou à faible latence, notamment des boucles de contrôle.
  • Expérience pratique des communications avec le matériel : interfaces série, UDP/TCP et WebSocket, ainsi que l’analyse des journaux de protocoles pour diagnostiquer les problèmes liés aux appareils et aux liaisons de communication.
  • in the field. Solides compétences en intégration de systèmes : capacité à faire fonctionner ensemble plusieurs sous-systèmes de bout en bout (pilote automatique et contrôleur de vol, capteurs tels que LiDAR, GPS et capteurs de flux optique, liaisons radio, flux vidéo et contrôleur haptique), ainsi qu’à diagnostiquer les problèmes d’interaction entre ces sous-systèmes, tant sur banc d’essai que sur le terrain.
  • Expérience avec Linux embarqué (sur des plateformes ARM telles que NVIDIA Jetson ou Raspberry Pi), notamment en compilation croisée et en déploiement.
  • Connaissance pratique de TypeScript et de React; une expérience avec Tauri constitue un atout important.
  • Approche axée sur la sécurité : capacité à anticiper les modes de défaillance, à les tester et à documenter les comportements attendus.
  • Autonomie et sens des responsabilités : capacité à prendre en charge une base de code existante, à planifier les modifications avant de les apporter et à communiquer de manière proactive sur les enjeux liés au matériel et aux systèmes critiques pour la sécurité.
  • Motivation à travailler sur des applications de défense : vous développerez des technologies utilisées par les forces armées et collaborerez directement avec des opérateurs militaires et des fabricants d’équipements de défense.
  • À l’aise d’être la première personne responsable du développement logiciel d’une nouvelle initiative : capacité à établir les bases techniques, à faire des compromis pragmatiques entre les échéances des démonstrations et la qualité à long terme, et à collaborer avec différentes équipes.

Atouts souhaités

  • Maîtrise avancée de Rust : programmation asynchrone (async/tokio), concurrence, FFI et chemins d’exécution critiques sans allocation mémoire.
  • Dynamique de vol et contrôle : réglage des régulateurs PID, modes de vol et contrôle assisté.
  • Moteurs de jeu (Unreal, Unity) pour la simulation réaliste.
  • Écosystèmes FPV (CRSF/ExpressLRS).
  • Expérience en haptique, en retour de force ou avec les interfaces de téléopération.
  • Expérience avec les chaînes de traitement vidéo (GStreamer) et la vision par ordinateur ou la détection d’objets directement sur l’appareil.
  • Tests matériel dans la boucle (HITL).
  • Conception de schémas Protobuf, architectures à base de plugins, journalisation structurée et profilage des performances.
  • Véhicules terrestres et intégration embarquée : cinématique des véhicules à roues ou à chenilles, bus CAN, équipements des postes de commande embarqués ou bras robotisés.
  • Expérience dans les secteurs de la défense, de la sécurité publique, de l’aérospatiale ou dans le cadre de programmes industriels, ou expérience de collaboration avec des opérateurs professionnels (militaires, premiers intervenants, équipes d’inspection).
  • Certification de pilote de drone (p. ex. certificat de pilote de systèmes d’aéronefs télépilotés [SATP] – opérations de base ou avancées, délivré par Transports Canada).
  • Bilingue français-anglais.
  • Nous ne nous attendons pas à ce que vous répondiez à tous les critères : si vous êtes un ingénieur ou une ingénieure en systèmes expérimenté(e) et passionné(e) par les drones et la simulation, nous vous encourageons à postuler.

Technologies et environnement de travail

Domaine

  • Principal
  • Interface opérateur
  • Poste de commande de l’opérateur
  • Véhicules
  • Haptique
  • Outils de développement

Technologies utilisées

  • Rust (Tokio, espaces de travail Cargo, interfaces de fonctions étrangères [FFI]), Protobuf, configuration JSON et TOML.
  • Tauri 2, React, TypeScript
  • Linux embarqué sur NVIDIA Jetson; Windows et Linux pour le développement.
  • Drones (multirotors, FPV), véhicules terrestres et postes de commande embarqués; MAVLink, protocoles de communication radio et protocoles de communication avec les véhicules.
  • Haply Inverse3 et contrôleurs associés communiquant par interface série.
  • Git, GitLab CI, revues de code, tests avec du matériel simulé et tests de simulation.

Vous partagerez votre temps entre les bureaux de Montréal, le laboratoire et les sites d’essais sur le terrain.

Conditions d’admissibilité et exigences de sécurité

  • Citoyenneté canadienne obligatoire.
  • Certains projets, notamment dans le secteur de la défense, peuvent exiger que vous soyez admissible à l’inscription au Programme des marchandises contrôlées du Canada et à l’obtention d’une cote de sécurité du gouvernement du Canada.
  • Disponibilité pour effectuer des déplacements occasionnels chez les partenaires, sur les sites d’essais et lors d’événements de l’industrie, principalement au Canada et aux États-Unis.
Our Product
Our Product

Discover our products.

READ

Ce que nous offrons et comment postuler

  • Un rôle clé en ingénierie dès les premières étapes du programme de défense et de technologies à double usage de Haply, avec une influence directe sur les produits et les clients.
  • Du matériel réel et de véritables opérateurs : vous testerez sur le terrain les technologies que vous développez.
  • Salaire concurrentiel et régime d’options d’achat d’actions pour les employés (ESOP).
  • Trois semaines de vacances payées et 12 journées de formation par année, dont 6 à votre choix.
  • Une équipe bilingue au centre-ville de Montréal, avec des activités d’équipe et des activités sportives hebdomadaires. 

Pour postuler, envoyez votre CV ainsi que des liens vers du code dont vous êtes fier (GitLab, GitHub, crates Rust ou projets). La lettre de présentation est facultative : montrez-nous ce que vous avez réalisé.

Perks

A full-time position
Attractive salary package.

Trainings

12 days / year, including
6 of your choice.

Sport Activity

Play any sport with colleagues,
the bill is covered.

Eat & Drink

Fruit, coffee and
snacks provided.