MicroVision is the creator of PicoP scanning technology, an ultra-miniature laser projection and sensing solution based on the laser beam scanning methodology pioneered by the company. The technology is well suited to support a wide array of applications including interactive projection, 3D LiDAR sensing for applications such as advanced driver assistance systems (ADAS), robotic sensing applications, and Augmented and Virtual Reality (AR/VR). MicroVision is an independently recognized leader for its formidable intellectual property portfolio. The company is based in Redmond, Washington.
MicroVision has an immediate opportunity for an experienced Staff Software Engineer, 3D Sensing / Machine Vision. As a key member of the MicroVision Product Engineering team, you will collaborate with various technical teams in the company to design and take into production a market defining 3D depth sensing product. The right candidate for this position, at our Redmond facility, will be a highly motivated Computer Science engineer with a breadth of understanding and implementation of dense 3D point cloud data and low latency object recognition algorithms.
Analyze and understand Machine Vision and/or Machine Learning (MV/ML) software components from multiple team members. Lead the integration of those components into the unified product code base, and drive their continued development.
Apply expert software development skills to a wide range of MV/ML-related coding projects for consumer 3D sensing products.
Profile and optimize the performance of MV/ML systems in partnership with hardware and software engineers.
Develop optimized software to run efficiently on embedded computing platforms.
Implement automated tests that ensure ongoing software correctness in a long-term sustainable way.
Expert-level Fluency in C/C++ and Python
Practical knowledge of, and experience in 3D depth sensing or range finding technologies.
Practical knowledge of digital filtering and 3D point cloud data manipulation.
3+ years of experience in applying MV/ML techniques to developing software modules for at least 2 of the following: object detection, tracking and classification, SLAM, semantic segmentation, and/or path planning.
Experience developing on at least one ARM-based mobile/embedded platform.
Experience with at least one GPU computing framework (e.g. CUDA, OpenCL, etc.)
Experience porting MV/ML algorithms to new hardware/software platforms.
Experience with Software Development processes including: source control, bug tracking, and design documentation.
Experience with ML frameworks like TensorFlow, Caffe, Torch/Pytorch, etc.
Familiarity with at least one scientific computation package (e.g. Mathematica, MATLAB, etc.)
Experience with C++11, C++14 or C++17 features and principles.
Experience with technology productization involving fields such as computer vision, graphics, robotics, and machine learning.
Experience designing fault-tolerant software.
Experience designing and implementing visualization applications.