Design, implement, and optimize the current software architecture of the autonomous stack.
Develop a comprehensive, behavior-based decision-making framework for diverse autonomous ground vehicles.
Develop unit and functional test cases for the autonomous stack (code coverage, memory management, integration with the CI/CD pipeline).
Conduct thorough evaluations of decision-making architectures, seeking continuous improvement.
Collaborate across functions for seamless integration of decision-making modules with vehicle systems.
Stay updated on emerging trends in autonomous driving and decision-making algorithms.
Produce extensive technical documentation and support internal teams and third-party understanding and adoption.
Work on projects utilizing C++, Python, and various ROS components.
Requirements
Proven experience in decision-making algorithms for autonomous ground robots.
Strong C++ and Python programming skills, with a solid foundation in algorithm design and system architecture.
Deep understanding of decision-making approaches, including Rule-Based, Optimization, Probabilistic, Statistical Learning-Based, Deep Learning-Based, and Reinforcement Learning-Based Methods.
Practical experience with multi-vehicle systems, robotic racing, and autonomous vehicle challenges.
Excellent problem-solving, creativity, and attention to detail.
Outstanding communication and teamwork skills, capable of leading in interdisciplinary settings.
Continuous learning commitment, keeping abreast of the latest in autonomous driving and related technologies.
Expertise in C++ debugging tools like gdb, valgrind, etc., and profilers like gperftools.
Experience with ground robotics projects involving Linux, Docker, ROS1/2, and agile tools like Git, Jira.
Significant hands-on experience with field experiments and hardware integration.
Qualifications
Bachelor’s, Master’s, or PhD in Robotics, Computer Science, Engineering, or related field.