Roles and Responsibilities
- Design and implement a flexible and robust navigation stack that enables quick iterations.
- Design and implement a test environment that supports automated testing with validation data.
- Explore, evaluate, and select suitable approaches for decision-making under uncertainty.
- Proactively address problems with a research-thinking mindset and critically think about the pros and cons of different approaches.
- Independently read relevant literature and share your insights and knowledge with other stakeholders.
- Work in a cross-functional team that takes ownership of the full software lifecycle.
- Collaborate with other teams to make optimal software architecture design decisions.
Qualifications
- Master’s degree or PhD in computer science, electrical engineering, mechanical engineering, applied mathematics, or a related field.
- Industry work experience is a plus.
- Exceptional academic track record with expertise in machine learning, artificial intelligence, computer vision, robotics, control theory, and/or mathematical optimization.
- Proficiency in data structures, algorithm development and software architecture design.
- Exceptionally strong understanding of fundamentals and problem solving skills.
- Understanding of software development best practices, including coding standards, code reviews, design patterns, source control management, and test automation.
- Programming skills in C++, Python, JavaScript, and/or Go.
- Strong verbal and written communication skills.