Navigation Software Engineer
Job DescriptionDesign, develop, and optimize C/C++ code for motion sensing and positioning algorithms within embedded software solutions. Enhance software performance by improving code efficiency, reducing footprint, and optimizing CPU and memory utilization. Fine-tune algorithm parameters to meet customer requirements and improve key performance indicators (KPIs). Build and maintain tools to support data analysis and performance evaluation. Collaborate cross-functionally with internal and external teams to deliver high-quality product outcomes. Document and present detailed technical reports covering algorithms, software performance, and testing results. Contribute to algorithm development in areas such as pedestrian and vehicular navigation, dead reckoning (DR), sports activity tracking, and GNSS-based positioning in challenging environments. Work on advanced navigation techniques including precise GNSS solutions like PPP and RTK to enhance system accuracy and performance. Travel domestically and internationally as needed to support customer engagements and collaborate with global teams. RequirementsMaster’s degree with 3+ years of experience, or PhD (preferred) in Electrical Engineering, Geomatics, Applied Physics, Aeronautical Engineering, or related fields. Strong experience in embedded software development using C/C++, with prototyping skills in Python or MATLAB. Hands-on expertise in motion sensor software, Kalman filtering, GNSS/MEMS integration, and sensor fusion techniques. Proficiency with development tools such as Jira, Gerrit, and Git. Ability to analyze complex systems, identify issues, and drive performance improvements. Strong debugging and problem-solving skills. Familiarity with Vision-Inertial Odometry (VIO) is a plus. Excellent verbal and written communication skills. Self-motivated, quick learner, and capable of working independently as well as collaboratively in a team environment.