Job Summary
The Embedded Software Engineer 3 will develop advanced robotics, positioning, localization, and state-estimation software for autonomous and semi-autonomous systems. The role requires strong hands-on C++ software development, Python, state estimation, inertial measurement technology, and localization algorithms. The engineer will research, prototype, develop, validate, and productionize algorithms that enable machines to accurately determine position, altitude, and movement relative to terrain, equipment, and other environmental features. The position is primarily office-based and fully onsite, with occasional work in engineering laboratories and proving grounds.
Key Responsibilities
• Design, develop, debug, and validate production-quality C++ software for robotics and autonomous systems.
• Research and develop localization and positioning algorithms.
• Implement algorithms using perception, inertial, and GNSS inputs.
• Develop solutions for absolute and relative position and altitude estimation.
• Design and implement state-estimation and filtering algorithms.
• Contribute to software architecture, requirements development, technical documentation, coding, testing, and validation.
• Analyze software problems using code, logs, diagnostic tools, and system behavior.
• Evaluate risks and benefits of alternative technical solutions and recommend appropriate resolutions.
• Support functional safety software design and validation.
• Translate research papers and technical concepts into reliable production implementations.
• Collaborate with architects, program managers, and other localization and robotics engineers.
• Participate in prototyping, troubleshooting, and deployment of solutions from concept through production.
• Occasionally support activities in laboratories or proving grounds while following required safety procedures and PPE requirements.
Required Qualifications
• Bachelor's, Master's, or PhD in Robotics Engineering, Electrical Engineering, Computer Engineering, Computer Science, or a related field.
• 5+ years of relevant professional experience; candidates with a Master's degree may qualify with 2 years of experience.
• Excellent proficiency in C++.
• Fluency in Python.
• Strong software engineering practices, debugging, and profiling skills.
• Experience with structured programming techniques and interpreting system designs and software specifications.
• Strong understanding of the Software Development Life Cycle (SDLC).
• Experience with state estimation and inertial measurement technology.
• Experience with inertial-based navigation and/or guidance systems.
• Experience with robotics, autonomous systems, localization, and positioning.
• Advanced software debugging and troubleshooting skills, including code and log analysis.
• Experience using diagnostic tools and fact-finding techniques to identify, document, and resolve technical problems.
• Ability to evaluate alternative technical solutions and associated risks and benefits.
• Strong written and verbal communication skills.
• Ability to collaborate effectively with technical teams and take ownership from prototype through production.
Preferred Qualifications
• 5+ years of robotics or autonomous systems experience.
• Experience implementing Kalman Filters, Extended Kalman Filters (EKF), or Error-State Kalman Filters.
• Deep knowledge of Inertial Measurement Units (IMU) and inertial navigation.
• Experience with SLAM (Simultaneous Localization and Mapping).
• Experience with graph optimization libraries.
• Strong understanding of state estimation.
• Experience with ROS (Robot Operating System).
• Strong mathematical foundation in 3D geometry, linear algebra, statistical error modeling, and Gauss-Markov processes.
• Experience working with coordinate systems and coordinate transformations.
• Understanding of physics-based modeling, vehicle modeling, and vehicle dynamics.
• Ability to review research literature and convert algorithms and research papers into production-quality software.