Posted in

Embedded Software Engineer – BSP/Kernel – Reality Labs

Embedded Software Engineer – BSP/Kernel – Reality Labs

CompanyMeta
LocationBurlingame, CA, USA, Menlo Park, CA, USA, Sunnyvale, CA, USA
Salary$147000 – $208000
TypeFull-Time
DegreesBachelor’s
Experience LevelSenior, 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