San Diego, CA
Temps plein

Ingénieur logiciel Linux embarqué (Senior Staff Embedded Linux Software Engineer)

Brain Corp est une entreprise d'IA basée à San Diego, en Californie, aux États-Unis, qui crée une technologie de base transformatrice pour l'industrie de la robotique. Notre objectif est de créer une technologie autonome qui aide le monde réel à mieux fonctionner. Les solutions robotiques et d'IA de Brain aident les détaillants à s'assurer que le bon produit se trouve sur le bon rayon, au bon prix, dans un environnement propre. Grâce à la plateforme robotique BrainOS®, qui alimente la plus grande flotte mondiale de robots mobiles autonomes (AMR) en service dans les espaces publics commerciaux, Brain Corp propose des solutions automatisées intelligentes et efficaces pour le nettoyage des sols commerciaux et la gestion des stocks, permettant ainsi aux organisations et à leurs employés d'en faire plus. Brain Corp équipe actuellement plus de 30 000 AMR, ce qui représente la plus grande flotte de ce type au monde. Brain Corp est financée par le SoftBank Vision Fund, Clearbridge et Qualcomm Ventures.

Résumé du poste :

En tant que membre de l'équipe d'ingénierie logicielle, l'ingénieur logiciel Linux embarqué senior est chargé de diriger le développement et l'intégration des composants de niveau système sur les robots de Brain. L'ingénieur travaillera avec différentes équipes sur divers niveaux de la pile logicielle du robot, notamment : le système de caméra, l'intégration des capteurs, le démarrage du système et le système d'exploitation. Ces robots résolvent des problèmes complexes du monde réel. En tant que membre essentiel de notre division des logiciels, l'ingénieur en chef en logiciels Linux embarqués travaillera avec notre équipe d'ingénieurs et de scientifiques de classe mondiale pour construire une plateforme pour la prochaine génération de machines intelligentes. Son expérience sera déterminante pour faire avancer notre mission : des robots sûrs, sécurisés et fiables partout.

Fonctions essentielles de l'emploi :

  • Diriger l'interaction avec les fournisseurs de matériel pour traduire les besoins de l'entreprise en spécifications techniques.
  • Intégrer le BSP (comprenant le support du noyau pour les capteurs) fourni par les vendeurs dans notre système embarqué et travailler sur la mise à jour du logiciel sur plusieurs plateformes.
  • Concevoir, mettre en œuvre et tester les améliorations apportées à notre noyau et à nos pilotes de périphériques afin de répondre à des exigences spécifiques.
  • Déboguer les problèmes liés au noyau et apporter des solutions rapides pour assurer la stabilité et les performances du système.
  • Personnaliser le processus de démarrage des systèmes embarqués pour répondre à des exigences spécifiques.
  • Collaborer avec les ingénieurs en matériel, les développeurs de microprogrammes et les équipes logicielles afin d'assurer une intégration transparente des composants logiciels et matériels.
  • Procéder à des essais approfondis et à la validation des systèmes intégrés afin de garantir la conformité avec les normes et les spécifications de l'industrie.
  • Améliorer notre mécanisme de mise à jour OTA (Over The Air) pour des mises à jour à distance et des flashs de cartes plus efficaces.
  • Identifier, proposer, concevoir, mettre en œuvre et prendre en charge de nouvelles caractéristiques, des correctifs et des fonctionnalités afin de faire progresser nos produits et notre organisation logicielle.
  • Fournir des caractéristiques/fonctionnalités logicielles qui améliorent la sécurité, la fiabilité et les performances du logiciel qui alimente les robots de Brain.
  • Augmenter l'agilité et la fréquence de sortie des logiciels de l'équipe et de l'organisation par le remaniement, la simplification et la suppression du code.
  • Encadrer et guider les autres membres de l'équipe.
  • Contribuer à l'élaboration et à l'exécution de la feuille de route technique pour nos lignes de produits robotiques.
  • Aider à résoudre les problèmes de production et de clientèle et élaborer des solutions à long terme par l'analyse des causes profondes et l'analyse des données.
  • Autres tâches et projets assignés.

Exigences en matière de formation et/ou d'expérience professionnelle : 

  • Licence ou master en informatique, en génie logiciel ou dans un domaine connexe.
  • Plus de 12 ans d'expérience prouvée dans le développement Linux embarqué.
  • Expérience de l'écriture de scripts shell pour Linux
  • Expérience de la personnalisation de l'amorçage dans les systèmes embarqués
  • Expérience de l'architecture, de la conception, de la mise en œuvre, des essais et du débogage de logiciels complexes au niveau du système.

Connaissances, compétences, aptitudes et autres caractéristiques requises : 

  • Connaissance détaillée de systemd, udev et d'autres sous-systèmes de configuration et d'initialisation utilisés dans Ubuntu Linux.
  • Expertise en matière de paquets de support de carte (BSP) Linux pour les SoC à base d'ARM.
  • Expertise dans le développement de noyaux pour les processeurs embarqués.
  • Expérience des pipelines de caméras, y compris des ISP.
  • Expérience de la sécurisation d'un appareil IOT fonctionnant sous Linux embarqué.
  • Solides compétences en matière de débogage dans le contexte du noyau.
  • Connaissance des principes fondamentaux des systèmes d'exploitation : systèmes de fichiers, communication interprocessus, réseaux informatiques, appels système, ressources système, sécurité, etc.
  • Capacité à traduire des exigences de haut niveau en logiciels prêts pour la production.
  • Capacité à fournir des conseils techniques aux autres membres de l'équipe en donnant des définitions et des conceptions claires de l'architecture et en fournissant un retour d'information dans le cadre de la révision du code.

Les choses qui font la différence :

  • Maîtrise en informatique ou dans un domaine connexe.
  • Expérience des architectures Nvidia (par exemple, Jetson).
  • Expérience des capteurs robotiques tels que les lidars.
  • Expérience dans la création de paquets Ubuntu debian.
  • Expérience de l'écriture en C++11 (ou plus récent).
  • Expérience de l'écriture d'applications Python et connaissance des constructions et des éléments internes de Python.
  • Vaste expérience de la conception en vue de faciliter les tests, tant au niveau des tests unitaires que des tests d'intégration.
  • Expérience de la fourniture d'un logiciel système de qualité pour un produit IOT fonctionnant sous Linux embarqué.
  • Bonne connaissance pratique de la robotique et des systèmes environnants.

Exigences physiques :

Les exigences physiques décrites ici sont représentatives de celles auxquelles un employé doit satisfaire pour mener à bien les fonctions essentielles de ce poste. Des aménagements raisonnables peuvent être apportés pour permettre aux personnes handicapées de remplir les fonctions essentielles. Les fonctions essentielles peuvent nécessiter le maintien de la condition physique nécessaire pour s'asseoir, marcher ou se tenir debout pendant des périodes prolongées ; utiliser un ordinateur et un clavier ; parler et entendre à des niveaux ambiants normaux ; utiliser les mains pour toucher, saisir et sentir ; effectuer des mouvements répétitifs ; avoir une bonne acuité visuelle pour préparer et analyser des données et des chiffres ; transcrire ; consulter un terminal d'ordinateur ; lire beaucoup ; soulever, pousser, porter ou tirer jusqu'à 10 kilos.

Environnement de travail :

Les caractéristiques de l'environnement de travail décrites ici sont représentatives de celles qu'un employé rencontre dans l'exercice des fonctions essentielles de ce poste. Le niveau de bruit dans l'environnement de travail est généralement faible à modéré. L'employé est exposé à un environnement de bureau typique avec des ordinateurs, des imprimantes et des téléphones.

Échelle des salaires :

La fourchette de salaire prévue pour les candidats qui travailleront à San Diego, en Californie, est comprise entre 169 526 et 205 215 dollars. Le salaire final offert à un candidat retenu dépendra de plusieurs facteurs qui peuvent inclure, sans s'y limiter, le type et la durée de l'expérience dans le poste, le type et la durée de l'expérience dans l'industrie, l'éducation, etc. Brain Corp est un employeur présent dans plusieurs États et cette fourchette de salaire peut ne pas refléter les postes occupés dans d'autres États.

Outre le salaire de base, notre système de rémunération globale compétitif comprend les éléments suivants

  • Une prime annuelle discrétionnaire
  • Options d'achat d'actions
  • Plan 401(k) avec contrepartie (pas de période d'attente et acquisition immédiate des droits)
  • Ensemble complet de prestations d'assurance pour les employés (et leur famille) comprenant une variété d'options de plans médicaux (y compris un HSA avec contribution de l'employeur), dentaire, vision, assurance vie et invalidité, programme d'assistance aux employés (EAP), plans de soutien juridique/identité, assurance pour animaux de compagnie.
  • Accès aux comptes de dépenses flexibles (soins médicaux et soins aux personnes dépendantes)
  • Des congés payés généreux, y compris des vacances flexibles, des congés de maladie payés, des congés pour le bénévolat dans la communauté, 10 jours fériés payés et une fermeture hivernale de l'entreprise.

Les avantages supplémentaires sont les suivants

  • Déjeuner quotidien sur place au bureau de San Diego
  • Salle de sport sur le campus avec piscine et courts de tennis dans le bureau de San Diego 
  • Occasions de nouer des liens avec des collègues, notamment lors de soirées jeux mensuelles, de randonnées, de défis bien-être et d'événements communautaires. 
  • Événements internes de formation continue 
  • Possibilités de partager vos propres intérêts et hobbies avec l'entreprise

Rejoignez notre équipe !