Oculus is a world leader in the design of virtual and augmented reality systems. Come work alongside expert software engineers and research scientists to create the technology that makes VR and AR pervasive and universal. Join the adventure of a lifetime as we make science fiction real and change the world. We are currently seeking a software engineer with deep C++ skills, expertise working with sensors and sensor fusion techniques with a wide range of numerical algorithms and in large scale ML/CV software systems. You are the kind of engineer who has a solid understanding of the fundamentals of working with a wide range of sensor hardware including IMUs, and successfully integrating sensor data into a wide range of numerical software algorithms. You partner closely with peer research science and hardware teams on the design and implementation of novel sensor-enabled hardware/software systems. You care deeply about systems that are accurate, robust, and efficient in real world applications.
Design, implement, and debug software that interprets sensor signals from a range of hardware sensors including IMUs, and integrate those signals successfully into a wide range of complex numerical software systems.
Profile and optimize the performance of complex sensor systems, in partnership with hardware and software research scientists.
Develop optimized software to run on variety of platforms and environments including mobile, tablet and laptops.
Develop reliable and automated methods to calibrate sensors in different hardware/software environments.
Develop automated tests that ensure that sensor aware software continues to be correct in a long-term sustainable way.
M.S. or Ph.D in Computer Science, or comparable educational experience.
5+ years of relevant work experience in sensor-aware numerical software in C++.
Experience working with IMU sensors and shipping real-world products that leverage IMU sensing.
Experience working with multiple types of sensor hardware and writing sensor aware software.
Experience optimizing numerical software algorithms and navigating performance/accuracy trade-offs effectively.
Experience working in large scale ML/CV software systems.
Demonstrated ability working collaboratively in cross-functional teams.
Experience with C++11 / C++14 features and principles.
Experience with vectorization techniques on at least one platform (e.g. SSE, NEON, etc.).
Familiarity with at least one scientific computation package (e.g. Eigen, Matlab, etc.).
Experience with at least one GPGPU technique (e.g. Cuda, OpenCL, etc.).
Experience with work involving research science, especially in fields such as computer vision, graphics, robotics, and machine learning.