We have an exciting opportunity within our Software team for strong software engineers and researchers with exceptional development/research skills in the field of head pose tracking with a multi-camera rig, sensor online calibration, and simultaneous localization and mapping (SLAM). The primary responsibility of the SLAM researcher/engineer is to conduct independent research and development on advanced perception components within the agreed-upon scope and schedule as defined by the management team. This individual must come with in-depth peer-recognized expert knowledge in at least one of the following core technical areas of geometric vision and machine learning: sensor geometry and calibration (cameras, IMUs), visual-inertial odometry, sparse and/or dense environment mapping, nonlinear optimization. They will participate in release planning, scheduling and actively participate as an individual contributor to the core technical development work. Some technical mentorship responsibilities are also to be expected, with more junior software engineers, technicians, and interns. Qualified candidates will be driven self-starters, robust thinkers, strong collaborators, and adept at operating in a highly dynamic environment. We look for colleagues that are passionate about our product and embody our values.
- Conduct independent research and development work on advanced computer vision and robotics components covering key product critical perception features such as visual-inertial odometry, SLAM, bundle adjustment, loop closure, sparse and dense environment mapping, sensor calibration.
- Provide leadership and mentorship to more junior software engineers, technicians and interns within the computer vision group.
- Work hand-in-hand with all the key stakeholders and developers across the company contributing to, or using computer vision components.
- Write maintainable, reusable code, leveraging test-driven principles to develop a high-quality geometric vision and machine learning modules.
- Troubleshoot and resolve software defects and other technical issues.
- Review individual developer's code in the team to ensure the highest code quality in Computer Vision components.
- 2+ years of working experience in Computer Vision targeted to product development.
- Expert knowledge in Computer Vision with specialization in at least one of the following domains:
- Sensor Calibration: Design and implement algorithms for online and offline intrinsic and extrinsic calibration of complex devices composed of several sensors, cameras, IMUs, depth sensors, and imagers. Collaborate with other engineers on the design and deployment of fully automatic robotics-aided calibration processes targeted for factory production.
- Visual-Inertial Odometry: Research and implement advanced algorithms for estimating the 6DOF pose of a head-mounted device by optimally fusing visual and inertial measurements collected from multiple cameras and IMUs.
- Large scale mapping: Design and implement advanced algorithms for large scale mapping to extend computer vision spaces to large areas.
- Dense Environment Mapping: Design and implement advanced algorithms for reconstructing dense 3D models of large-scale indoor environments using depth sensors.
- Computer vision algorithms on cloud: Research, architect, and implement high-performance computer vision software in the cloud with state-of-the-art capabilities.
- Expert level in C/C++ (programming and debugging).
- Experience working with OpenCV.
- Experience in Deep Learning is preferred with knowledge of at least one of TensorFlow, PyTorch, or Caffe.
- Knowledge of parallel computing, OpenCL, CUDA, GPGPU, SIMD is a plus.
- Knowledge software optimization and embedded programming is a plus
- MS in Computer Science or Electrical Engineering (with a minimum of 5 years of relevant experience).
- Ph.D. is preferred (with a minimum of 2 years of relevant experience).
- All your information will be kept confidential according to Equal Employment Opportunities guidelines.