Meta AR/VR Job | Embedded Software Engineer | Ingénieur logiciel embarqué
Job(岗位): Embedded Software Engineer | Ingénieur logiciel embarqué
Type(岗位类型): Engineering | Hardware
Citys(岗位城市): Remote, Canada
Date(发布日期): 2023-1-31
Summary(岗位介绍)
Meta Reality Labs focuses on building technology to help people connect through Augmented Reality (AR) and Virtual Reality (VR). Our embedded software will enable AR and VR devices where our real and virtual world will mix and match throughout the day. We believe the way to achieve our goals is to look at the entire stack, from custom ASICs and new technologies, firmware, algorithms, OS, to user experiences.
As an Embedded Software Engineer, you will architect, design, build and test embedded firmware systems for future AR, VR, or New Technology Teams. In this role, you are expected to participate in the definition of architecture and implementation of designs in both prototype and shipping consumer products as well as demonstrate good development practices and seamless collaboration. Our teams deliver all embedded software from low-level device drivers, to computer vision, to machine learning algorithms.
Engineering for Reality Labs device systems spans multiple target classes, requiring deep collaboration across engineering disciplines (electrical, mechanical, algorithms, user experience, silicon architects, and software) and directly impacting user immersion. Our engineers quickly solve problems, generate big ideas, work in new technology areas, drive concepts into prototypes, and envision how those prototypes transition to high-volume consumer products. You will join a world-class team of experts exploring new concepts through rapid prototyping leading to shipping products.
-------
Meta Reality Labs met l'accent sur la conception de technologies pour aider à connecter les gens à travers la réalité augmentée (RA) et la réalité virtuelle (RV). Nos logiciels embarqués permettront la mise en place de dispositifs de RA et de RV dans lesquels notre monde réel et notre monde virtuel se mélangeront tout au long de la journée. Nous pensons que pour atteindre nos objectifs, nous devons nous intéresser à la pile complète, des circuits intégrés sur mesure à l'expérience utilisateur, en passant par les nouvelles technologies, les micrologiciels, les algorithmes et les systèmes d'exploitation.
En tant qu'ingénieur logiciel embarqué, vous concevrez, développerez et testerez des systèmes micrologiciels embarqués pour les futures équipes spécialisées dans la réalité augmentée, la réalité virtuelle, les portails ou les nouvelles technologies. Dans ce rôle, vous devrez participer à la définition de l'architecture et à sa mise en œuvre dans les produits de consommation, qu'il s'agisse de prototypes ou d'expéditions, et faire preuve de bonnes pratiques de développement et d'une collaboration sans faille. Nos équipes produisent tous les logiciels embarqués, des pilotes de périphériques de bas niveau, aux algorithmes d'apprentissage automatique, en passant par la vision par ordinateur.
L'ingénierie des systèmes de dispositifs pour Reality Labs couvrent plusieurs classes de cibles, ce qui nécessite une collaboration approfondie entre les disciplines d'ingénierie (électrique, mécanique, algorithmes, expérience utilisateur, architectes de silicium et logiciels) et a un impact direct sur l'immersion de l'utilisateur. Nos ingénieurs résolvent rapidement des problèmes, génèrent de grandes idées, travaillent dans de nouveaux domaines technologiques, transforment des concepts en prototypes et envisagent la transition de ces prototypes vers des produits de consommation en grande série. Vous allez rejoindre une équipe d'experts de classe mondiale, explorant de nouveaux concepts par le biais du prototypage rapide, débouchant sur des produits d'expédition.
Qualifications(岗位要求)
Experience with embedded software design and programming in C/C++ for development, debugging, testing and performance analysis | Expérience de la conception et de la programmation de logiciels embarqués en C/C++ pour le développement, le débogage, les tests et l'analyse des performances
4+ years of experience in embedded software development | Au moins 4 ans d'expérience dans le développement de logiciels embarqués
Experience in understanding hardware, clock-level issues, bridges, delays, interrupts, clock gating, polling etc. | Expérience dans la compréhension du matériel, des problèmes au niveau de l'horloge, des ponts, des retards, des interruptions, de la gestion de l'horloge, de l'interrogation, etc.
Experience building software for complex embedded systems or custom SoCs | Expérience dans la conception de logiciels pour les systèmes embarqués complexes ou les systèmes sur puce personnalisés
Experience partnering and/or collaborating across multiple teams | Expérience dans le partenariat et/ou la collaboration entre plusieurs équipes
B.S. degree in Computer Science or Electrical Engineering or equivalent experience | B.S. en informatique ou en génie électrique ou expérience équivalente
Description(岗位职责)
Lead Firmware Engineering activities and provide technical leadership and guidance to team members | Conduire les activités d'ingénierie de micrologiciels et assurer la direction technique des membres de l'équipe
Analyze, design, develop, and debug firmware for a wide variety of AR and VR consumer devices, including novel sensing and imaging systems, haptic devices, and audio prototypes | Analyser, concevoir, développer et déboguer des microprogrammes pour une grande variété de dispositifs grand public de RA et de RV, y compris des systèmes de détection et d'imagerie novateurs, des dispositifs haptiques et des prototypes audio
Collaborate closely in a team environment with silicon architects, hardware designers, OS team, and algorithm and model development teams | Collaborer étroitement dans un environnement d'équipe avec les architectes de silicium, les concepteurs de matériels, l'équipe de systèmes d'exploitation et les équipes en charge des algorithmes et des modèles de développement
Support all phases of hardware development – including early architecture requirements definition for custom silicon, firmware architecture, implementation, simulation, FPGA debug, chip bring up and support systems and software teams on algorithm development on validated systems | Soutenir toutes les phases du développement de matériels, y compris la définition des exigences de l'architecture initiale pour le silicium personnalisé, l'architecture du micrologiciel, la mise en œuvre, la simulation, le débogage FPGA, la mise en service de la puce et le soutien des équipes de systèmes et de logiciels pour le développement d'algorithmes sur les systèmes validés
Understand and implement power-management, boot loaders, scheduling, inter-processor communication and firmware/system interfaces on RTOS and/or bare-metal environments | Comprendre et mettre en œuvre la gestion d'énergie, les chargeurs de démarrage, la planification, la communication entre processeurs, les interfaces de micrologiciels/systèmes sur les systèmes d'exploitation en temps réels et/ou les environnements nus.
Additional Requirements(额外要求)
Experience with compression, camera and video pipelines, or encoding technologies such as H.264 | Expérience de la compression, des caméras et pipelines de vidéo ou les technologies d'encodage telles que H.264
Hands-on coding experience with peripherals such as UART, SPI, CSI-2, i2c, GPIO, USB | Expérience pratique en codage avec des périphériques tels que UART, SPI, CSI-2, i2c, GPIO, USB
Experience with wireless and wired communication protocols, TCP/IP, Ethernet, Bluetooth and 802.1 | Expérience des protocoles de communication sans fil et filaires, TCP/IP, Ethernet, Bluetooth et 802.1
Experience across topics including computer graphics, computer vision, or machine learning | Expérience de différents domaines, y compris l'infographie informatique, la vision par ordinateur ou l'apprentissage automatique
Experience with silicon, device manufacturing, and low-power SoCs | Expérience du silicium, de la fabrication d'appareils et des systèmes sur puce de faible consommation d'énergie
Experience with active power management or power optimizations | Expérience de la gestion d'énergie active ou l'optimisation de la consommation d'énergie
Experience with prototyping or pre-silicon environments (FPGAs, simulation, or emulation) | Expérience du prototypage ou des environnements pré-silicium (FPGA, simulation ou émulation)
Experience with lab instrumentation like oscilloscope, logic/protocol analyzers for debugging embedded systems at HW level | Expérience avec des instruments de laboratoire tels que des oscilloscopes, des analyseurs de logique/protocole pour le débogage de systèmes embarqués au niveau du matériel
Experience with embedded DSP, CPU, and GPU architectures | Expérience des architectures DSP, CPU et GPU embarquées
Experience developing with modern Real Time Operating Systems | Expérience du développement des systèmes d'exploitation en temps réel modernes