Montreal, Quebec

Embedded system engineer (firmware)

Ingénieur système embarqué (firmware)

Lieu : Montréal
Secteur : technologie de la santé

Relevant du chef du développement de matériel, l'ingénieur en microprogrammation participe à l'analyse, la conception, l'encodage, la mise à l'essai, la validation, l'intégration et la définition des réglages des produits. 

Le candidat fera partie d'une équipe multidisciplinaire réunissant des professionnels de l'ingénierie en microprogrammation, électrique, mécanique et logicielle.

Fonctions de base

  • Conception, développement, intégration, débogage et vérification d'applications intégrées à des microprogrammes en langage C.
  • Analyser la performance des microprogrammes de contrôle ou d'acquisition en temps réel aux fins de simulation médicale.
  • Créer des documents de conception logique et physique. Utiliser les techniques de modélisation des données pour définir, perfectionner et améliorer l'architecture actuelle des microprogrammes.
  • Définir les caractéristiques techniques des fonctions et de l'architecture des microprogrammes.
  • Déboguer et résoudre les problèmes complexes relatifs aux logiciels ou au matériel des systèmes embarqués en temps réel.
  • Veiller à ce que les exigences commerciales et les exigences relatives aux systèmes soient remplies et les traduire en lignes directrices pour la conception, la mise service et la vérification.
  • Participer à l'établissement des normes et procédures d'encodage, de conception et d'architecture pour veiller à ce que les solutions respectent les objectifs, politiques et principes du projet.
  • Participer à la planification et à l'estimation des projets éventuels.
  • Contribuer à l'architecture des produits.

Études et expérience professionnelle

Baccalauréat ou maîtrise en électronique ou en génie informatique et expérience d'au moins 4 ans dans le développement de microprogrammes.

Habiletés

  • Bonne connaissance du langage de programmation C et C++ pour les appareils et microcontrôleurs embarqués.
  • Capacité démontrée à créer, concevoir, mettre en œuvre et consigner des systèmes de microprogrammes complexes.
  • Connaissances sur l'élaboration des systèmes d'exploitation en temps réel, notamment sur les processus, fils d'exécution, sémaphores, mécanismes de synchronisation et gestion de mémoire.
  • Connaissance pratique approfondie des familles de microprocesseurs et de capteurs.
  • Connaissance de l'utilisation des outils de mise au point du matériel informatique, y compris les analyseurs logiques et oscilloscopes.
  • Grande motivation, établissement d'objectifs personnels et atteinte de ces derniers avec une supervision minimale.
  • Expérience en gestion de la configuration et en contrôle de version des codes.
  • La connaissance de la conception de matériel/matrice prédiffusée programmable par l'utilisateur (FPGA) constitue un atout substantiel.
  • Connaissance des familles STM32F3/F4 et/ou des unités centrales de traitement (UCT) UCimx6.
  • La connaissance des UCT Xilinx Microblaze constitue un atout substantiel.
  • La connaissance de l'environnement de développement de logiciels embarqués : IAR, Keil ou semblable constitue un atout.
  • Expérience de l'architecture des pilotes de périphérique Linux, un atout.