Meta Platforms
Embedded Software Engineer, BSP/Kernel
At Meta, we're building innovative products that make it easier for people to connect with each other and enjoy immersive experiences. Our team of world-class experts is developing and shipping products at the intersection of hardware, software, and content, pushing the future of computing platforms and redefining the way people work, play, and connect. As an Embedded Software Engineer, you'll have the opportunity to design, develop, and optimize embedded firmware systems for our AR, VR, and wearable devices, working on low-level systems software, device drivers, and connectivity protocols such as Wi-Fi, Bluetooth, and Core Android networking. You'll collaborate with cross-functional teams to solve complex problems and drive innovation in areas such as computer vision, machine learning, and graphics, helping to shape the future of technology and create new experiences for augmented reality, virtual reality, and social/family products. Responsibilities
Design and implement software components at all layers of the system, including kernel, synchronization primitives, resource allocators, memory management, security, I/O systems, persistence, etc. Develop drivers and services that operate efficiently in constrained environments and deliver large volumes of data with low-latency and high-bandwidth. Lead hardware bring up, peripheral drivers and communication, silicon integration, and power and performance management and optimization efforts. Debug complex, system-level, multi-component issues that span multiple layers from kernel to application. Profile performance problems and drive optimizations across the entire software stack. Integrate software components from multiple partner teams into a unified product code base and drive their continued development. Analyze, design, develop, and debug firmware for various devices, including novel sensing and imaging systems, haptic devices, and audio prototypes. Collaborate with cross-functional teams to solve issues and create new features in the connectivity space, including wireless software stacks (Wi-Fi, Bluetooth, Cellular, UWB, etc.) Enhance complex systems with wireless interfaces and provide support to QA, manufacturing, and other software teams. Minimum Qualifications
Bachelor's or Master's Degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience. 7+ years software development experience in industry settings or PhD with 4+ years of experience. 3+ years embedded software development experience in industry settings. Experience in large-scale C/C++ code base. Experience defining and driving technical work streams and providing technical leadership for software engineering teams. Preferred Qualifications
Experience in one or more of the following areas: BSP/Board Support Package, Operating Systems, Android OS, Real-Time Operating System (RTOS), Bootloader, Power Management, Linux, Graphics and Display Drivers, Microcontroller Unit (MCU). Specialized experience in two or more of the following areas: BSP/Board Support Package, Operating Systems, CoreOS, Kernel, Android Kernel, Bootloader, Power Management, RTOS, Linux, Graphics and Display Drivers, MCU (Microcontroller). Demonstrated experience working collaboratively in cross-functional teams. Experience developing, debugging, and shipping software products on large code bases that span platforms and tools. Experience in hardware bringup using interfaces like Analog-to-Digital Converter (ADC), General Purpose Input/Output (GPIO), Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C), etc. Device driver development, embedded systems, or operating systems. Experience with Software Development processes including: source control, bug tracking, and design documentation.
At Meta, we're building innovative products that make it easier for people to connect with each other and enjoy immersive experiences. Our team of world-class experts is developing and shipping products at the intersection of hardware, software, and content, pushing the future of computing platforms and redefining the way people work, play, and connect. As an Embedded Software Engineer, you'll have the opportunity to design, develop, and optimize embedded firmware systems for our AR, VR, and wearable devices, working on low-level systems software, device drivers, and connectivity protocols such as Wi-Fi, Bluetooth, and Core Android networking. You'll collaborate with cross-functional teams to solve complex problems and drive innovation in areas such as computer vision, machine learning, and graphics, helping to shape the future of technology and create new experiences for augmented reality, virtual reality, and social/family products. Responsibilities
Design and implement software components at all layers of the system, including kernel, synchronization primitives, resource allocators, memory management, security, I/O systems, persistence, etc. Develop drivers and services that operate efficiently in constrained environments and deliver large volumes of data with low-latency and high-bandwidth. Lead hardware bring up, peripheral drivers and communication, silicon integration, and power and performance management and optimization efforts. Debug complex, system-level, multi-component issues that span multiple layers from kernel to application. Profile performance problems and drive optimizations across the entire software stack. Integrate software components from multiple partner teams into a unified product code base and drive their continued development. Analyze, design, develop, and debug firmware for various devices, including novel sensing and imaging systems, haptic devices, and audio prototypes. Collaborate with cross-functional teams to solve issues and create new features in the connectivity space, including wireless software stacks (Wi-Fi, Bluetooth, Cellular, UWB, etc.) Enhance complex systems with wireless interfaces and provide support to QA, manufacturing, and other software teams. Minimum Qualifications
Bachelor's or Master's Degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience. 7+ years software development experience in industry settings or PhD with 4+ years of experience. 3+ years embedded software development experience in industry settings. Experience in large-scale C/C++ code base. Experience defining and driving technical work streams and providing technical leadership for software engineering teams. Preferred Qualifications
Experience in one or more of the following areas: BSP/Board Support Package, Operating Systems, Android OS, Real-Time Operating System (RTOS), Bootloader, Power Management, Linux, Graphics and Display Drivers, Microcontroller Unit (MCU). Specialized experience in two or more of the following areas: BSP/Board Support Package, Operating Systems, CoreOS, Kernel, Android Kernel, Bootloader, Power Management, RTOS, Linux, Graphics and Display Drivers, MCU (Microcontroller). Demonstrated experience working collaboratively in cross-functional teams. Experience developing, debugging, and shipping software products on large code bases that span platforms and tools. Experience in hardware bringup using interfaces like Analog-to-Digital Converter (ADC), General Purpose Input/Output (GPIO), Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C), etc. Device driver development, embedded systems, or operating systems. Experience with Software Development processes including: source control, bug tracking, and design documentation.