Experience 6+ years
Role Software Engineer
About the role:
We’re looking for software engineering professionals with deep strengths in developing highly performant, highly available software written in C++. Some of the teams you could work with include:
Perception & Computer Vision
Perception is the overarching team that takes raw sensor input and uses it to determine what is happening around the car. We deal with a variety of sensors, including lidars, radars, and cameras. The perception team spans efforts all the way from raw sensor detection to sensor fusion, to tracking and prediction of all the different objects around the car.
Our Planning team handles decision making in all urban road situations, including collision avoidance, intelligent routing, unprotected turns, four-way-stops, lane changes, and more. Our job is to produce robust, general solutions that capture all the nuances of driving safely on the road. Engineers on this team develop algorithms and systems for handling complex maneuvers and road scenarios and write code that is clean, clear, fast and reliable.
Remote Assistance is like Mission Control for a space launch. We build the tools that allow remote operators to help Cruise Vehicles when they need assistance like tele-presence, tele-operation and remote guidance. We work on the front-end, back-end, vehicle and develop the entire experience for the remote advisers.
Our Simulation team is responsible for building all of the tools we need to test and validate our autonomous vehicles performance and behavior before it goes out on the road. That includes tools to validate that our perception systems properly detect obstacles on the road, our planning systems are able to pick safe and efficient paths through the world, and that our controls systems can properly act on those plans. 3D Simulation also works with data inputs and outputs, collision engines and rendering capabilities in order to build massive detailed cities and eventually train our neural networks.
The frameworks team builds performance-critical frameworks, reusable libraries, and components in modern C++ foundational to the entire engineering organization at Cruise. The team provides the basic message-passing and logging primitives used by the on-car software stack, manages resource budgets, establishes best-practices, and advises feature teams on how to best utilize the hardware and fit into the larger resource model.
Day-to-day responsibilities include:
- Design and implement highly performant, high-availability software that will run on our autonomous vehicle
- Build clean architecture that will be compatible across a variety of platforms
- Collaborate with other engineering teams, such as embedded engineers to create hardware/software/OS modules that extend the functionality of the AV core system
- Thrive in a fast-paced, collaborative work environment where immediate impact is a result of your efforts and where your contribution is highly visible
You should apply for this role if you have the following qualifications:
- Exceptional ability to write clean, fast, reliable and highly scalable software
- Excellent C++ coding abilities, with strong system fundamentals
- Propensity for shipping product, ideally commercially available software
- Tendency to automate and unit test everything
- Experience designing, coding, integrating, and debugging C++ software such as in;
- An environment that develops a complex multithreaded product
- Latency and performance constrained environments (e.g. video games, high frequency trading)
- Building applications that run on real-time operating systems
- Understanding of networking and multithreading
- Experience developing in a Linux environment
- Passion for self-driving technology and its potential impact on the world
- Natural ability to communicate well across teams of developers and other staff
- BS, MS or PhD in Computer Science, Math, Physics, or related technical field
- Experience with Python, or
- Designing software applications for safety critical systems, or
- Developing for POSIX compliant operating systems i.e. Linux, ROS, OS X, and/or related paradigms
Take a glimpse through the lens of a Cruiser on our LinkedIn Page