Job Title: Embedded Systems Developer
Location: Montreal, Quebec, Canada
Job Type: Full-time
As an Embedded Developer w, you will be required to develop and maintain firmware covering our various embedded system applications and this includes network protocols, core libraries as well as application development.
You will implement, and test firmware to form optimal communications wireless networks using the extremely low power wireless transceivers developed. This includes developing low power wireless sensor networks in point-to-point, star, and mesh configurations, as well as efficient point-to-point links for audio streaming applications. The selected candidate will be responsible for developing efficient firmware to support these applications, as well as a graphical user interface for each system that allows users to control the flow of information in the wireless system.
Academic Requirements
Recent graduate in electrical engineering, Computer Engineering or equivalent
Responsibilities
Implement, test and document embedded and application software
-
Develops algorithms for communication system protocol layers and networking
-
Provide architectural and detailed designs to meet the system requirements
-
Plans and evaluates architectural design and reviews system performance.
-
Maintain system software components including device drivers, RTOS and applications
-
Participate in the team’s testing processes by developing protocols for unit testing, integration/regression testing, and system-level testing
-
Research and evaluate new technology applications and conduct feasibility and de-risking studies
Technical Skills
5+ years of experience in embedded application development in C and C++
-
5+ years of experience in low level C programming on microcontrollers / microprocessors, with advanced knowledge of MCU / CPU architectures and ecosystems
-
Extensive knowledge of dependencies between system components and protocol layers and their interactions.
-
Experience with specifying system-level uses cases and flowing that down to MAC protocol/networking architecture and requirements.
-
Ability to work efficiently with both Linux and Windows
-
Experience with Visual Studio Code and Eclipse IDE
-
Experience with scripting languages such as Python and MATLAB
-
Experience developing Board Support Packages, boot loaders, and component drivers
-
Experience with virtualization and container technologies (VMware, KVM, Docker)
-
Experience with Git version control systems
-
Experience with software development platform such as Gitlab and Github
-
Understanding of communication protocols including I2C, SPI, UART and USB
-
Experience in hands-on development and debug on embedded targets using in-circuit debuggers and electronic test equipment (oscilloscope,multimeter, logic analyzer, etc)
-
Experience in modern software development processes (peer reviewing, unit testing, etc)
-
Experience with firmware / applications development for other wireless technologies (Bluetooth, ZigBee, etc.) is an asset
-
Experience with IAR Embedded Workbench and Keil MDK an asset
-
Experience in bringing a product to market is an asset
-
Basic knowledge of analog/digital circuits and RF principles is an asset
-
PCB design and layout experience are an asset.
Communications Skills
Excellent oral and written communications and presentation skills (French and English)
-
Ability to work effectively with a team of developers
-
Ability to multi-task, set project priorities, establish task focused goals and objectives for self and show initiative
-
Write clean, understandable, robust, and sustainable code tailored for embedded systems
Titre: Développeur de systèmes embarqués
Lieu: Montréal, Québec, Canada
Type demploi: Temps plein
En tant que Développeur de systèmes embarqués, vous serez chargé de développer et de maintenir le micrologiciel couvrant nos différentes applications de système embarqué, ce qui inclut les protocoles de réseau, les bibliothèques de base ainsi que le développement dapplications.
Vous mettrez en œuvre et testerez le micrologiciel pour former des réseaux de communication sans fil optimaux en utilisant des émetteurs-récepteurs sans fil à très faible consommation dénergie développés. Cela inclut le développement de réseaux de capteurs sans fil à faible consommation dénergie dans des configurations point à point, étoile et maillée, ainsi que des liens point à point efficaces pour les applications de diffusion audio. Le candidat retenu sera responsable du développement dun micrologiciel efficace pour prendre en charge ces applications, ainsi que dune interface utilisateur graphique pour chaque système qui permet aux utilisateurs de contrôler le flux dinformations dans le système sans fil.
Exigences académiques
Diplômé récent en génie électrique, génie informatique ou équivalent
Responsabilités
Mettre en œuvre, tester et documenter les logiciels embarqués et dapplication
-
Développer des algorithmes pour les couches de protocoles de système de communication et de mise en réseau
-
Fournir des conceptions architecturales et détaillées pour répondre aux exigences du système
-
Planifier et évaluer la conception architecturale et examiner les performances du système.
-
Maintenir les composants logiciels du système, y compris les pilotes de périphériques, les systèmes dexploitation temps réel et les applications
-
Participer aux processus de test de léquipe en élaborant des protocoles pour les tests unitaires, les tests dintégration/régression et les tests de niveau système
-
Rechercher et évaluer de nouvelles applications technologiques et mener des études de faisabilité et de dérisquage
Compétences techniques
- 5+ années dexpérience dans le développement dapplications embarquées en C et C++
-
5+ années dexpérience en programmation en langage C de bas niveau sur microcontrôleurs / microprocesseurs, avec une connaissance avancée des architectures et écosystèmes MCU / CPU
-
Connaissance approfondie des dépendances entre les composants système et les couches de protocoles et de leurs interactions.
-
Expérience dans la spécification des cas dutilisation au niveau système et de leur descente vers larchitecture et les exigences du protocole de la couche MAC / réseau.
-
Capacité à travailler efficacement avec Linux et Windows
-
Expérience avec les environnements de développement Visual Studio Code et Eclipse
-
Expérience avec des langages de script tels que Python et MATLAB
-
Expérience dans le développement de packages de support de carte, de chargeurs damorçage et de pilotes de composants
-
Expérience avec les technologies de virtualisation et de conteneurisation (VMware, KVM, Docker)
-
Expérience avec les systèmes de contrôle de version Git
-
Expérience avec les plates-formes de développement de logiciels telles que Gitlab et Github
-
Compréhension des protocoles de communication tels que I2C, SPI, UART et USB
-
Expérience dans le développement et le débogage sur des cibles embarquées à laide de débogueurs en circuit et déquipements de test électroniques (oscilloscope, multimètre, analyseur logique, etc.)
-
Expérience dans les processus modernes de développement de logiciels (examen par les pairs, tests unitaires, etc.)
-
Expérience dans le développement de firmware / applications pour dautres technologies sans fil (Bluetooth, ZigBee, etc.) est un atout
-
Expérience avec IAR Embedded Workbench et Keil MDK est un atout
-
Expérience dans la mise sur le marché dun produit est un atout
-
Connaissance de base des circuits analogiques / numériques et des principes RF est un atout
-
Expérience en conception et en disposition de circuits imprimés est un atout.
Compétences en communication
Excellentes compétences en communication orale et écrite (français et anglais)
-
Capacité à travailler efficacement avec une équipe de développeurs
-
Capacité à gérer plusieurs tâches, établir des priorités de projet, fixer des objectifs et des objectifs axés sur les tâches pour soi-même et faire preuve dinitiative
-
Écrire un code propre, compréhensible, robuste et durable adapté aux systèmes embarqués.