System Software Engineer, Capture
Posted on Apr 18, 2021 by Facebook
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 FRL, 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. The successful candidate will have experience bridging the gap between hardware and software. You have a deep understanding of computing at multiple levels of abstraction, from theory, to hardware interfaces, to operating systems, to user facing application and large-scale distributed systems. You understand contemporary software design and engineering practices. You thrive in a fast-paced, multidisciplinary environment. At Facebook Reality Labs, you will join a world-class team exploring optics, haptics, tracking, displays, computer vision, user experience, audio, and perceptual psychology. Every day, you will work alongside expert Research Scientists, Mechanical Engineers, Electrical Engineers and Software Engineers to create the technology that will make VR and AR pervasive and universal. Join the adventure of a lifetime, as we invent the future and change the world.
System Software Engineer, Capture Responsibilities
Develop high-performance software to collect data from sensors in our capture system.
Develop methods to verify sensors are behaving properly and returning high quality data.
Support and evaluate device hardware, software, and firmware updates.
Develop robust processes for testing capture system changes prior to pushing to live servers.
Collaborate with vendors to troubleshoot hardware issues.
Collaborate with our user studies team to understand common failure cases, ascertain root causes, and improve the data capture experience.
Bachelor of Science (or equivalent) in Computer Science or a related field.
4+ years of C++ experience, including Modern C++ features and techniques.
2+ years of experience with low-level software development, such as drivers or firmware.
Proven track record of shipping software.
Experience with software development practices such as source control, code reviews, unit testing, debugging and profiling.
Experience with Linux and command line utilities.
Experience developing GUI applications.
Collaborator with effective communication skills across teams of varying knowledge of components.
Experience with cameras and optical systems, lighting systems, and audio systems.
Experience with Qt library.
Experience with 0MQ.
Experience with Python.
Experience with Networking.
Experience developing and managing large scale-distributed systems.