Facebook Software Engineer (Firmware) in Pittsburgh, Pennsylvania


Facebook Reality Labs is dedicated to the research and development required to bring virtual and augmented reality to billions of people around the world. At the Pittsburgh lab, we aspire to a vision of social VR and AR, where people are able to interact with each other across distances in a way that is indistinguishable from in-person interactions.

Facebook Reality Labs are looking for talented Software Engineers to accelerate the progression to authentic social presence in virtual reality. In our current pipeline, a multitude of sensing components, including image sensors, microphones, inertial measurement units, bio-potential sensors, are installed on the headset prototypes in order to collect a rich suite of information that reflects the user's physical state, with an emphasis on modality synchronicity and latency minimization; this information is then processed by our state-of-the-art algorithms to allow for a computational representation of the user. The ideal candidate for this position shall be familiar with the software stack, ranging from the operating-system level interfaces that fetch data from hardware sensors, to the higher-level software modules that organize, or visualize, the fetched data in a synchronized and managed pattern, in order to work with researchers to derive and implement system level software solutions. Strong communication and interpersonal skills are required.

Required Skills:

  1. Work with research scientists to understand challenges in building state-of-the-art sensing systems

  2. Develop software for synchronized data collection, transmission and management from sensory components

  3. Design and implement embedded systems to facilitate control on data collection pipelines

  4. Apply knowledge of relevant research domains to accelerate the progression of research projects

Minimum Qualifications:

  1. Bachelors degree in fields similar to computer science and engineering

  2. 3+ years of experience using C/C++ for software development

  3. Experience with lower-level peripherals such as I2C, SPI, I2S, and UART

  4. Experience with development on multiple operating systems, including Windows and Linux

  5. Hands-on experience with scientific and industrial data capture hardware and software

  6. Hands-on experience in using version control systems (Git, Mercurial)

  7. Experience communicating with fellow engineers to understand project scope

  8. Experience in approaching engineering problems systematically and independently

Preferred Qualifications:

  1. Masters degree or doctorate in fields related to computer science and engineering

  2. 5+ years of experience using C++ for software development

  3. Hands-on experience with computer graphics, rendering, game engines

  4. Hands-on experience on development for embedded systems, especially on Cortex M-series controllers

Industry: Internet

Equal Opportunity: Facebook is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sex (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law. If you need assistance or an accommodation due to a disability, you may contact us at accommodations-ext@fb.com or you may call us at +1 650-308-7837.