Facebook Software Engineer 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 can interact with each other across distances in a way that is indistinguishable from in-person interactions. We 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 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 fetched data, and will work with researchers to implement system level software solutions.

Required Skills:

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

  2. Propose and implement system-level software solutions to facilitate research activities

  3. Develop reusable software building blocks to allow for fast prototyping

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

Minimum Qualifications:

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

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

  3. Knowledge of modern C++ standards (11/14/17) and their best practices

  4. Knowledge of software libraries, such as Boost, OpenML, OpenGL, Cuda, etc.

  5. Experience using Python for scripting and scientific computing

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

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

  8. Knowledge of code bases at different layers in the software stack

  9. Experience communicating with researchers to understand project scope

  10. Experience approaching software 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 with scientific and/or industrial data capture hardware and software

  5. Hands-on experience on development for embedded systems, especially on Cortex M-series controller

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

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. Facebook is committed to providing reasonable accommodations for candidates with disabilities in our recruiting process. If you need any assistance or accommodations due to a disability, please let us know at accommodations-ext@fb.com.