TechDigital Group
Embedded Software Engineer Level III
TechDigital Group, Redmond, Washington, United States, 98052
Meta Reality Labs
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. Responsibilities
Analyze, design, develop, and debug firmware for a wide variety of AR consumer devices, including Client sensing and imaging systems, haptic devices, and audio prototypes. Collaborate closely in a team environment with silicon architects, hardware designers, OS team, and algorithm and model development teams. 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. Understand and implement power-management, boot loaders, scheduling, inter-processor communication, and firmware/system interfaces on RTOS and/or bare-metal environments. Minimum Qualifications
Bachelor's degree in computer science, Computer Engineering, relevant technical field, or equivalent practical experience. 10 years of software experience with at least 5 years related to embedded systems. Familiarity with data acquisition systems and diagnostic equipment, such as oscilloscopes, bus analyzers, and power supplies. Knowledge of software development and testing methodologies including CI/CD. Proficient in C, C++, and Python programming. Experience providing clear communications and working well with cross-functional teams. Preferred Qualifications
Experience with low-level operating systems, RTOS, UBOOT, or other bare-metal programming. Experience coding with peripherals such as UART, SPI, CSI-2, I2C, GPIO, USB, PCIE. Experience in real-time processing for computer vision and user interaction tasks, high compute/throughput systems. Experience with FPGA and hardware evaluation boards, EDA design tools, and/or ISA simulators. Experience with C/C++ for embedded systems. Skills Required
OS (Windows, Linux), RTOS, UBOOT, (C, C++ Preferred), FPGA, UART, SPI, CSI-2, I2C, GPIO, USB, PCIE, CI/CD, Jenkins, Python, PyCharm. Top Skills
Embedded device development. C, C++, Python, Windows, Linux OS experience. CI/CD (Jenkins, Git, GitHub). Additional Details
It is going to be an awesome work for the selected candidate. Will be directly reporting to Client development manager with a large team, and the candidate will have exposure communicating with cross-functional teams. Should have hands-on experience in Embedded device with test automation framework development using Python, which will be a key selling point. #J-18808-Ljbffr
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. Responsibilities
Analyze, design, develop, and debug firmware for a wide variety of AR consumer devices, including Client sensing and imaging systems, haptic devices, and audio prototypes. Collaborate closely in a team environment with silicon architects, hardware designers, OS team, and algorithm and model development teams. 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. Understand and implement power-management, boot loaders, scheduling, inter-processor communication, and firmware/system interfaces on RTOS and/or bare-metal environments. Minimum Qualifications
Bachelor's degree in computer science, Computer Engineering, relevant technical field, or equivalent practical experience. 10 years of software experience with at least 5 years related to embedded systems. Familiarity with data acquisition systems and diagnostic equipment, such as oscilloscopes, bus analyzers, and power supplies. Knowledge of software development and testing methodologies including CI/CD. Proficient in C, C++, and Python programming. Experience providing clear communications and working well with cross-functional teams. Preferred Qualifications
Experience with low-level operating systems, RTOS, UBOOT, or other bare-metal programming. Experience coding with peripherals such as UART, SPI, CSI-2, I2C, GPIO, USB, PCIE. Experience in real-time processing for computer vision and user interaction tasks, high compute/throughput systems. Experience with FPGA and hardware evaluation boards, EDA design tools, and/or ISA simulators. Experience with C/C++ for embedded systems. Skills Required
OS (Windows, Linux), RTOS, UBOOT, (C, C++ Preferred), FPGA, UART, SPI, CSI-2, I2C, GPIO, USB, PCIE, CI/CD, Jenkins, Python, PyCharm. Top Skills
Embedded device development. C, C++, Python, Windows, Linux OS experience. CI/CD (Jenkins, Git, GitHub). Additional Details
It is going to be an awesome work for the selected candidate. Will be directly reporting to Client development manager with a large team, and the candidate will have exposure communicating with cross-functional teams. Should have hands-on experience in Embedded device with test automation framework development using Python, which will be a key selling point. #J-18808-Ljbffr