Intermediate or Senior Embedded Software Developer, Développeur de logiciels embarqués intermédiaire/senior

GHGSat

GHGSat

Marketing & Communications, Software Engineering
Montreal, QC, Canada
Posted on Monday, May 29, 2023

GHGSat est le leader mondial de la télédétection en haute résolution des gaz à effet de serre depuis l’espace. Pionnier de cette approche, GHGSat fournit des données d’émissions ainsi que des renseignements uniques aux entreprises, aux gouvernements, aux organismes de règlementation et aux investisseurs du monde entier, dans le but d’optimiser leurs performances et de respecter les normes environnementales. Ensemble pour un futur plus propre.

GHGSat est à la recherche d’un développeur de logiciels embarqués innovant et expérimenté. Au sein d'une équipe interfonctionnelle, vous soutiendrez le développement de nouvelles plateformes avec Edge computing : traiter les données au plus près de l'endroit où elles sont capturées. Nos charges utiles de satellites et nos systèmes avioniques fonctionnent sous Linux, capturent des images à partir de caméras IR et sont écrits en C++, Rust et OCaml. Python est utilisé pour les tests, Yocto et CMake pour la construction des systèmes. Il est attendu des candidats qu'ils travaillent dans le cadre d'un scrum agile. Nous proposons des formations pour apprendre de nouveaux langages de programmation en cours d'emploi. Si vous vous souciez de la planète autant que nous, une carrière à GHGSat est une opportunité d'avoir un impact réel dans la lutte contre le changement climatique.

Vos principales responsabilités:

En tant que développeur de logiciels embarqués, vous serez amené à exécuter les fonctions suivantes:

  • Concevoir, développer, intégrer, tester et déployer des microprogrammes Linux pour des charges utiles satellitaires et aéroportées.
  • Travailler de manière autonome sur des fonctionnalités complexes.
  • Développer des applications de contrôle pour les caméras, les capteurs de température, les appareils de chauffage et les dispositifs LED.
  • Développer des tests unitaires, de composantes et d'intégration.
  • Améliorer en permanence l'environnement de développement et réduire la dette technique.
  • Documenter toutes les étapes du produit : exigences, conception, mise en œuvre, intégration, test, de manière itérative.
  • Résoudre des problèmes complexes à l'aide d'outils logiciels (débogueur, profileur) et matériels (oscilloscope, analyseur logique).
  • Planifier et superviser le travail exécuté par les stagiaires, offrir des conseils techniques aux membres débutants.
  • Fournir un soutien aux essais et à la caractérisation des instruments.
  • Participer activement aux rituels Agile Scrum avec engagement, concentration, ouverture, respect et courage.
  • Communiquer efficacement à l'intérieur et à l'extérieur de l'équipe (rapports, décisions d'architecture, discussions techniques).

Connaissances techniques suivantes:

  • Développement de pilotes et d’applications Linux
  • Piles de communication entre appareils, par exemple Ethernet (TCP/UDP), série, USB, I2C, SPI, CAN
  • Appareils photo, dispositifs de stockage, cryptage, protocoles de communication, mise en réseau
  • Programmation en C/C++, Rust, OCaml et/ou Python
  • Construire des systèmes avec Yocto ou CMake
  • Programmation d'ordinateurs à carte unique (SBC) et de microcontrôleurs
  • Intégration continue (Gitlab, Docker)
  • Outils de débogage, d'analyse et de profilage des logiciels
  • Intégration et maintenance du système : expérience passée dans le déploiement d'un système embarqué robuste sur le marché)

Connaissances souhaitées:

  • Développement d'applications "bare-metal"
  • Architecture informatique (ARM, x86, FPGA)
  • Interfaces électriques de données numériques (USB, RS422, RS485, LVDS, CAN)
  • Une certaine exposition à :

- Développement d'API Web (REST, JavaScript)

- Automatisation des tests

- Cadre multimédia (GStreamer)

- Bases de données (SQL)

- Systèmes distribués (Message Queue)

  • Expérience de bénévolat au sein d'une société ou d'une organisation d'étudiants en technique
  • Expérience passée ou intérêt marqué pour l'aérospatiale, la télédétection ou les défis environnementaux

Qualification:

  • Baccalauréat ou maîtrise en ingénierie informatique, informatique, physique ou équivalent.
  • Posséder un minimum de 8 ans d’expérience pertinente,
  • Capacité à obtenir une habilitation de sécurité dans le cadre du programme des marchandises contrôlées,
  • Souhaitable - Maîtrise du français et de l'anglais,

Informations complémentaires:

  • Lieu : poste permanent à temps plein basé à Montréal (travail hybride : 2 jours au bureau, 3 jours à distance).
  • Déplacements : occasionnels.

GHGSat offre un environnement de travail créatif et très motivant. Nous offrons des salaires compétitifs, des avantages sociaux et de santé, y compris des horaires flexibles et un développement continu. Nous nous engageons à offrir un lieu de travail diversifié et inclusif. GHGSat est un employeur qui souscrit au principe de l'égalité des chances et ne pratique aucune discrimination fondée sur la race, l'origine nationale, le sexe, l'identité sexuelle, l'orientation sexuelle, le handicap, l'âge ou tout autre statut protégé par la loi. Si vous souhaitez demander un aménagement, veuillez en informer votre recruteur.

Veuillez soumettre votre candidature, accompagnée d'une lettre de motivation et d'un curriculum vitae. Seuls les candidats sélectionnés seront contactés.

----------------------------------------------------------------------------------------------------------------------

GHGSat offers greenhouse gas detection, measurement, and monitoring services to industrial and government customers around the world. We use our own satellites and aircraft sensors, combined with third-party data, to help industrial emitters better understand, control, and reduce their emissions. GHGSat’s capability is unique: we provide high-resolution, local measurements of atmospheric methane and carbon dioxide concentration from space.

GHGSat is looking for an innovative and experienced Embedded Developer. As part of a cross-functional team, you will support the development of new platforms with edge computing: process the data closer to where it is captured. Our Satellite Payloads and Aircraft Avionics run Linux, capture imagery from IR cameras and are written in C++, Rust and OCaml. Python is used for testing, Yocto and CMake for building the systems. Candidates are expected to work within agile scrum. We offer training to learn new programming languages on the job. If you care about the planet as much as we do, a career at GHGSat is an opportunity to have a real impact in the fight against climate change.

What you will do:

In the role of an Embedded Developer, you will be expected to execute the following functions:

  • Design, develop, integrate, test and deploy Linux firmware for Satellite and Airborne payloads.
  • Work autonomously on complex features.
  • Develop controlling applications for cameras, temperature sensors, heaters, LED devices.
  • Develop unit, component and integration tests.
  • Continuously improve the development environment and minimize technical debt.
  • Document all stages of the product: Requirements, Design, Implementation, Integration, Test in an iterative fashion.
  • Troubleshoot complex problems with Software (debugger, profiler) and Hardware tools (oscilloscope, logic analyzer).
  • Plan and supervise work executed by interns, offer technical guidance to junior members.
  • Provide support to instrument testing and characterization...
  • Participate actively in Agile Scrum rituals with commitment, focus, openness, respect and courage.
  • Communicate effectively inside and outside the team (reporting, architecture decisions, tech talk).

Required knowledge:

The following technical subjects are applicable:

  • Linux driver development
  • Linux application development
  • Device-to-device communication stacks, e.g. Ethernet (TCP/UDP), Serial, USB, I2C, SPI, CAN
  • Camera devices, storage devices, encryption, communication protocols, networking
  • Programming in C/C++, Rust, OCaml and/or Python
  • Build Systems with Yocto or CMake
  • Programming Single Board Computer (SBC) and Microcontrollers
  • Continuous Integration (Gitlab, Docker)
  • Software debugging, analysis and profiling tools
  • System integration and maintenance: past experience deploying a robust embedded system to the market

Desired knowledge:

  • Bare-metal application development,
  • Computer architecture (ARM, x86, FPGA),
  • Digital data electrical interfaces (USB, RS422, RS485, LVDS, CAN)
  • Some exposure to:

- Web API development (REST, JavaScript)

- Test automation

- Multimedia framework (GStreamer)

- Databases (SQL)

- Distributed systems (Message Queue)

  • Volunteering experience in a technical student society or organization
  • Past experience or strong interest in aerospace, remote sensing or environmental challenges

Qualifications:

  • Essential - bachelor’s or master’s degree in computer engineering, Computer Science, Physics or equivalent
  • Essential - 8+ years’ experience
  • Essential - Able to obtain Controlled Goods Program security clearance
  • Desirable - Fluent in French and English

Additional information:

  • Location: full-time, permanent position based in Montreal (Hybrid work: 2 days from the office, 3 days remote).
  • Travel requirements: occasional.

GHGSat offers a creative and highly-motivating work environment. We offer competitive salaries, health and social benefits including flex-time and continuing development. We are committed to a diverse and inclusive workplace. GHGSat is an equal opportunity employer and does not discriminate on the basis of race, national origin, gender, gender identity, sexual orientation, disability, age, or other legally protected status. If you would like to request an accommodation, please notify your Recruiter.

Only selected candidates will be contacted.