About this role
Meta is seeking a Software Engineer to join our embedded engineering team, where you will develop low-level software and firmware that powers consumer hardware products. In this role, you will work at the intersection of hardware and software, building reliable, performant embedded systems that operate under strict resource constraints. You will contribute to the full embedded software development lifecycle, from system bring-up and driver development to real-time operating system integration and hardware abstraction layer design, helping shape the foundation of Meta's next generation of connected devices.
Responsibilities
Design, implement, and maintain embedded firmware and low-level software components for resource-constrained hardware platforms
Develop and debug hardware abstraction layers, device drivers, and board support packages for custom silicon and peripherals
Integrate and configure real-time operating systems (RTOS) to meet latency, power, and memory requirements
Write automated tests including unit, integration, and hardware-in-the-loop tests to validate firmware behavior across expected and error conditions
Instrument firmware with logging, metrics, and alerting to support observability and production reliability
Collaborate with hardware engineers, silicon teams, and product partners to define firmware interfaces and resolve cross-disciplinary dependencies
Participate in code reviews to improve firmware quality, identify common embedded software defects, and share knowledge with peers
Analyze and optimize firmware for power consumption, memory footprint, and real-time execution performance
Own embedded software components end-to-end, including responding to production issues and maintaining code health through deprecation of obsolete implementations
Produce clear technical documentation for firmware interfaces, bring-up procedures, and system behaviors to support current and future contributors
Qualifications
Currently has, or is in the process of obtaining a Bachelor's degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience. Degree must be completed prior to joining Meta
5+ years of experience developing embedded firmware or low-level software in C or C++
Experience with real-time operating systems (RTOS), bare-metal programming, or embedded Linux environments
Experience developing or debugging device drivers, hardware abstraction layers, or board support packages for microcontrollers or SoCs
Experience writing automated tests and using debugging tools such as JTAG, oscilloscopes, logic analyzers, or serial debuggers to isolate and resolve firmware defects
Experience analyzing and optimizing embedded software for power, latency, or memory constraints Experience with sensor fusion, signal conditioning, or ADC/DAC interfacing
Experience with optical sensor integration and signal processing
Experience with communication protocols commonly used in embedded systems such as SPI, I2C, UART, USB, or Bluetooth Low Energy
Demonstrated ongoing AI skill development (e.g., prompt/context engineering, agent orchestration) and staying current with emerging AI technologies
Experience with power optimization for battery-constrained wearable or portable devices
Experience developing firmware for low power analog sensors
Demonstrated ability to integrate AI tools to optimize/redesign workflows and drive measurable impact (e.g., efficiency gains, quality improvements)
Experience adhering to and implementing responsible, ethical AI practices (e.g., risk assessment, bias mitigation, quality and accuracy reviews)
Familiarity with continuous integration workflows adapted for embedded targets, including cross-compilation and hardware-in-the-loop testing pipelines
Experience with embedded software development for consumer electronics, wearables, or IoT devices
