The Role
At Optimus Ride, software engineers create the software at the heart of our vehicles and systems. Software engineering managers not only have the ability to roll up their sleeves and contribute to the code, but also manage and lead a team of engineers to build software for self-driving vehicles. You will manage your team's project goals, contribute to overall strategy, and help develop your team. The software your team builds will enable cars to drive themselves and provide people with new forms of mobility.
Our team is focused on a rapid path to market in order to maximize the benefits of self-driving technologies for all. To do this, we need our engineers to be versatile, have leadership qualities, and be enthusiastic about tackling problems across the full range of our systems. Your peers will cumulatively have decades of experience from places like Google X, SpaceX, iRobot, Rethink Robotics, and Draper Laboratories, and have built self-driving vehicles, electric vehicles, manufacturing robots, surgical robots, autonomous drones, and more. You will be creating new technologies through software development that integrates your areas of expertise to enable self-driving systems to be possible today.
Responsibilities
- Build software for self-driving cars by leading and managing a team of software engineers
- Take responsibility for the overall planning, execution and success of complex technical projects
- Provide the team with technical leadership and contribute technically to projects
- Work closely with and enable other teams
- Collaborate with product team, other engineering leaders, and key stakeholders to lead the team to execute on goals
Requirements
- BS, MS or PhD in robotics or a related technical field, or equivalent practical experience
- The passion and ability to tackle both hardware and software challenges in making robots work in real life
- Experience building and commercially deploying real-time systems running a POSIX OS (e.g., Linux, QNX, Solaris, BSD)
- Deep experience with systems and platform software engineering. Examples include: operating systems, network engineering, software distribution and updating, monitoring, tracing, profiling, containerization, and virtualization.
- Significant experience working in a production environment and writing quality code, preferably in C++
- Excellent knowledge of version control tools such as Git/Mercurial/SVN, and extensive experience with software engineering processes such as code reviews and continuous integration
- Significant hands-on technical leadership experience: defining the team's vision, leading technical development, providing guidance and advice, promoting collaboration, as well as providing mentorship and career development for junior engineers
- Strong understanding of software engineering principles and processes along with the ability to apply this knowledge to execute projects and optimize development strategies
- Significant experience with project and program management using tools such as JIRA, with a proven track record of delivering complex technical projects
- Excellent communication skills in written and verbal English