Embedded Software Engineer – BSP/Kernel – Reality Labs
Company | Meta |
---|---|
Location | Burlingame, CA, USA, Menlo Park, CA, USA, Sunnyvale, CA, USA |
Salary | $147000 – $208000 |
Type | Full-Time |
Degrees | Bachelor’s |
Experience Level | Senior, Expert or higher |
Requirements
- Bachelor’s degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience
- 5+ years software development experience in industry settings or PhD with 2+ years of experience
- 3+ years embedded software development experience in industry settings
- Experience in large-scale C/C++ code base
- Demonstrated experience working across disciplines to drive optimal solutions
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
- Analyze, design, develop, and debug firmware for a wide variety of devices, including novel sensing and imaging systems, haptic devices, and audio prototypes
- Collaborate closely with cross-functional teams, including silicon architects, hardware designers, OS team, and algorithm and model development teams
- Understand and implement power-management, boot loaders, scheduling, inter-processor communication, computer vision, and firmware/system interfaces on RTOS and/or bare-metal environments
- Design, develop, and architect models and infrastructure building blocks of Virtual Platforms, integrating internal models and vendor IP models
Preferred Qualifications
- Device driver development, embedded systems, or operating systems
- Experience with Software Development processes including: source control, bug tracking, and design documentation
- Experience in hardware bring up using interfaces like Analog-to-Digital (ADC), General Purpose Input/Output (GPIO), Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C), etc
- Experience in one or more of the following areas: Board Support Package (BSP), Operating Systems, Android OS, Real-Time Operating System (RTOS), Bootloader, Power Management, Linux, Graphics and Display Drivers, Microcontroller Unit (MCU)
- Experience developing, debugging, and shipping software products on large code bases that span platforms and tools
- Demonstrate 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, Microcontroller Unit (MCU)
- Demonstrated experience working collaboratively in cross-functional teams