Systems Software Engineer – Facebook Reality Labs

September 17, 2020
Menlo Park, California
Job Type


We are seeking a Systems SW Engineer with strong design and build skills, experience with low-level systems software and device driver programming and experience with shipping hardware/software products. This person will be an integral member of the team, responsible for embedded software design and optimization. This person will also be involved in developing a solid platform while working on a variety of domains to enable new experiences for AR/VR products.


  • Design and implement OS components at all layers of the system, e.g. kernel, synchronization primitives, resource allocators, memory management, security, I/O systems, persistence, etc.
  • Work with hardware vendors and the upstream community to debug and tune drivers as needed.
  • Design and implement device and bus drivers that operate efficiently in a power constrained environment yet when pressed can efficiently deliver large volumes of data with low-latency and high-bandwidth.
  • Debug complex, system-level, multi-component issues that typically span across multiple layers from kernel to application.
  • Profile performance problems and drive optimizations that span the entire software stack.
  • Bring up new devices and lead debugging and performance tuning exercises that span multiple hardware/firmware/software teams.
  • Understand software components from multiple partner teams, lead the integration of those components into the unified product code base, and drive their continued development.

Minimum Qualifications

  • Bachelor’s degree in Computer Science, Computer Engineering or equivalent combination of education and experience.
  • 4+ years of programming experience in C/C++.
  • 4+ years experience in the following: device driver development or embedded systems, or operating systems internals on at least one platform.
  • 4+ years experience working on systems software in a large-scale code base.
  • 4+ years experience developing, debugging, and shipping software products on large code bases that span platforms and tools.

Preferred Qualifications

  • Experience with Software Development processes including: source control, bug tracking, and design documentation.
  • Experience working on multiple classes of drivers e.g., bus, block, wireless, display drivers.
  • Experience developing low level system services exchanging data using using standard IPC techniques.
  • Experience with specialized kernel functions: synchronization primitives, memory management, schedulers and dispatchers, TLB (Translation Lookaside Buffer) management.
  • Experience with low-latency, high bandwidth, streaming hardware devices, e.g. video cameras, graphics cards, etc.
  • Experience with new device bring-up.
  • Experience with ARM platforms.
  • Experience in native systems development.
  • Experience developing HAL and device drivers for embedded Linux or Android.
  • Experience with building software security for Operating Systems.
Drop files here browse files ...

Related Jobs