Embedded Software Developer (Développeur de logiciel embarqué) - Recent Graduate

Silicon Labs - Montréal, QC (30+ days ago)

Apply Now

We are Silicon Labs. We are the leading provider of silicon, software, and solutions for a smarter, more connected world.

We hire the most innovative talent in the world to solve the industry’s toughest problems, providing our customers with significant advantages in performance, energy savings, connectivity and design simplicity. Silicon Labs’ software and mixed signal engineering teams create solutions for customers in diverse markets including the Internet of Things (IoT), internet infrastructure, TV tuners, as well as automotive and consumer radios. Our solutions are in products from the market leaders in home automation, electric vehicles, green technology, smart TVs, and home voice control automation. We take pride in our products and in our people, and that’s one of the many reasons we continue to be awarded Most Respected Public Semiconductor Company by the Global Semiconductor Alliance. Silicon Labs has a track record of multiple industry firsts and of transforming and disrupting large and diversified markets. Our Engineers are at the forefront of that success!

Job Description

Silicon Labs is looking for an embedded software developer to work in its Montreal team. As part of our IoT Platform team, you will help create and extend the code that presents a consistent, well-structured, well-documented, high-quality interface to the various peripherals of our wireless chips. This software is then delivered to our various customers as part of Silicon Labs’ Gecko SDK, provided with any of our 32-bits micro-controllers. The Montreal team’s mandate is to provide low-level drivers for peripherals such as SPI, UART, I2C; higher-level services such as management for Power, Clock or Memory and support for other components such as the Micrium OS Kernel, a real-time operating system, or stacks such as File System, TCP/IP, CAN/CANopen or USB.

You will be part of a highly-skilled and tight-knit team where everyone can have significant impact on the end product. Good collaboration, room for learning and growing as well as knowledge sharing and great discussions are also part of the Montreal team’s DNA. We strive to strike a good work/life balance and make our environment welcoming and fun, so we seek someone whose technical skills are matched by their interpersonal skills.

Responsibilities

Design, implement, and debug system startup code, peripheral drivers, services, communication stacks, bootloaders, system test, and verification programs.
Collaborate with circuit and chip design teams to specify and verify new designs.
Contribute to improvements to testing infrastructure, validation process, and code reliability.
Tune code for optimal resource utilization, reliability, performance, and energy efficiency.
Provide expert support to other teams where code interfaces with other layers.
Interact with product and project managers to understand and take technical leadership of new features.
Uphold a high standard of software quality.

Required Skills

Degree in Electrical Engineering, Informatics Engineering, Computer Science, or similar.
Background in developing and debugging resource-constrained, real-time, embedded systems.
Good understanding of C language.
Knowledge in design and implementation of peripheral (SPI, I2C, UART, etc.) drivers in C.
Ability and desire to contribute new ideas, build consensus, and drive tasks to completion.
Able to work autonomously while being rigorous and attentive to details.
Talent for clearly communicating challenging technical subject matter.
Mental agility to quickly understand new ideas in novel domains.
Fluent in both French and English.

Desired Skills

Knowledge of ARM architecture and embedded compilers.
Understanding of hardware vs. software tradeoffs.
Experience specifying hardware requirements and working with hardware engineers.
Experience using both simulations and hardware testing.
Knowledge of Python and/or assembly.
Experience in an Agile environment.
Experience with network and wireless technologies (IP, Bluetooth, Wi-Fi).
Experience with hardware description language is a plus.

Benefits

Flexible work week
Highly competitive salary
Employee profit sharing
RRSP contribution match
Equity Rewards (stock units)
Insurance plans
Paid volunteer days
Free coffee & snacks
Lunch and learn
Monthly company updates with our CEO

-

Montréal (Vieux-Montréal), Québec

Nous sommes Silicon Labs. Nous sommes à l’avant-garde des technologies permettant d’offrir les circuits intégrés, les logiciels et les solutions nécessaires à un monde plus intelligent, un monde plus connecté!

Nous recrutons les talents les plus innovateurs au monde pour résoudre les problèmes les plus pointus de l’industrie, fournissant ainsi à nos clients un avantage compétitif au niveau de la performance, des économies d’énergie, de la connectivité et de la simplicité. Les équipes de design de Silicon Labs créent des solutions pour des clients dans divers marchés tel l’Internet des objets (Internet of Things, IoT), les infrastructures internet, l’industrie automobile et les technologies sans-fil. Nos solutions se retrouvent dans des produits phares de marchés tels l’automatisation résidentielle, les véhicules électriques, les technologies vertes, les téléviseurs intelligents et la domotique avec contrôle vocal. Nous sommes fiers de nos produits et de nos employés et c’est une des raisons qui explique que nous recevions année après année le prix de « Compagnie publique de semi-conducteurs la plus respectée » (Most Respected Public Semiconductor Company) par la Global Semiconductor Alliance. Silicon Labs a souvent fait figure de pionnier dans le domaine de la communication sans-fil et parvient à transformer et à percer plusieurs marchés de tailles variées. Nos développeurs, ingénieurs et concepteurs sont les principaux piliers de ce succès!

Description du poste

Silicon Labs est à la recherche d’un développeur de logiciel embarqué pour faire partie de son équipe de Montréal. En tant que membre de l’équipe de Plateforme IoT, vous contribuerez à créer et à améliorer du logiciel de qualité conçu pour présenter une interface structurée, bien documentée et facile à utiliser pour les divers périphériques de nos microcontrôleurs. Ce code est destiné à faire partie de la Gecko SDK de Silicon Labs et à être offert aux clients de Silicon Labs qui utilisent nos microcontrôleurs 32-bits. Le mandat de l’équipe de Montréal est de créer et maintenir des pilotes pour périphériques bas niveau tels que SPI, UART et I2C; des services logiciels assurant la gestion efficace de l’énergie, des horloges ou de la mémoire ainsi que des composantes tels le Micrium OS Kernel, un système d’exploitation temps réel, un système de fichiers ou des modules assurant la communication via TCP/IP, CAN/CANopen ou USB.

Vous ferez partie d’une équipe tissée serrée et hautement qualifiée où tout le monde peut avoir un impact significatif sur le produit fini ainsi qu’un niveau de responsabilité élevé durant tout le processus de développement.

Une bonne collaboration, des possibilités d’apprentissage et de croissance ainsi que le partage de connaissances et des échanges intéressants sont parti intégrante de l’ADN de l’équipe de Montréal. Nous désirons conserver un bon équilibre travail-vie personnelle et nous nous efforçons de rendre notre environnement de travail accueillant et amusant, c’est pourquoi nous cherchons quelqu’un qui a d’aussi bonnes habiletés interpersonnelles que techniques.

Responsabilités

Créer, implémenter et déboguer du code de démarrage, de pilotes de périphériques, de sécurité, de protocoles ainsi que des systèmes de test et de validation.
Collaborer à la spécification de nouveaux designs avec les équipes de design de circuits intégrés.
Participer à améliorer l’infrastructure de test et de validation ainsi que la robustesse du code.
Optimiser nos modules logiciels pour la consommation de ressources, la robustesse, la performance et l’efficacité énergétique.
Soutenir et fournir de l’expertise aux autres équipes utilisant le code développé par l’équipe.
Travailler avec les managers de produits et de projets pour comprendre les contraintes et les requis et fournir un leadership technique sur de nouvelles fonctionnalités.
Maintenir un haut standard de qualité de nos logiciels.

Requis

Expérience en développement et débogage de logiciel embarqué temps-réel avec souci de performance et de ressources limitées.
Bonne connaissance du langage C.
Capacité à concevoir et implémenter des pilotes (drivers) pour différents périphériques (SPI, I2C, UART, etc.), en C.
Désir et capacité de contribuer de nouvelles idées, trouver des consensus et mener les tâches à terme.
Capacité à travailler de manière autonome tout en étant rigoureux et en ayant le souci des détails.
Habileté à communiquer clairement et à vulgariser des sujets techniques complexes.
Agilité mentale pour comprendre rapidement des nouvelles idées dans des domaines de pointe.
Maîtrise du français et de l’anglais (bilingue).
Baccalauréat ou maîtrise en génie électrique, génie informatique, informatique ou autre domaine connexe.

Atouts

Connaissance des architectures ARM (Cortex-M et autres) et des compilateurs pour l’embarqué.
Compréhension des interactions et des compromis entre les circuits intégrés et le logiciel.
Capacité et expérience à consulter et spécifier des requis reliés aux circuits intégrés ainsi qu’à interagir avec les concepteurs de matériel.
Expérience en tests (tests unitaires, tests d’intégration, simulation, etc.).
Connaissance d’autres langages de programmation tels Python ou assembleur.
Expérience dans un environnement Agile.
Expérience en réseaux et en technologies sans-fil (IP, Bluetooth, Wi-Fi, etc.).
Expérience avec des langages de description de circuits intégrés (Verilog, VHDL) est un atout.

Bénéfices

Horaire flexible
Salaire compétitif
Programme de partage de profits
Contributions de l’employeur au REER
Plan d’octroi d’actions
Assurances
Journées de bénévolat payées
Café et collations offerts
« Lunch-and-learn » (partage de connaissances et dîner)
Mises à jour trimestrielles avec notre CEO