We’re Cruise, the self-driving ride-hailing service.
We are building the world’s most advanced, all-electric, self-driving cars to safely connect people to the places, things, and experiences they care about. We believe self-driving cars will help save lives, reimagine cities, redefine time in transit, and restore freedom of movement for many.
At Cruise, our engineers have opportunities to grow and develop while learning from leaders at the cutting-edge of their fields. With a culture of internal mobility, there's opportunity to thrive in a variety of disciplines. This is a place for dreamers and doers to succeed.
If you are looking to solve one of today’s most complex engineering challenges, see the results of your work in hundreds of self-driving cars, and make a positive impact in the world starting in our cities, join us.
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
Perks of being a Cruiser
While doing meaningful work is rewarding in itself, we also offer the following programs and benefits to support the extraordinary humans who serve as the backbone in making our self-driving cars go:
- Competitive salary and benefits including 401(k) Cruise matching program to help you meet your long-term financial goals
- Medical / dental / vision, AD+D and Life
- Flexible vacation and company paid holidays
- Healthy lunch, snacks, dinner
- Paid parental leave & family expansion stipend
- Monthly gym stipend
- Quarterly offsites & working retreats
- On-site massages
- State-of-the-art equipment for your work station
Learn more about Life at Cruise through the lens of a Cruiser on our LinkedIn Page.
GM Cruise LLC provides equal employment opportunities to all employees and applicants for employment without regard to race, color, religion, sex, national origin, age, disability, sexual orientation, gender identity or expression, veteran status, or genetics. In addition to federal law requirements, GM Cruise LLC complies with applicable state and local laws governing nondiscrimination in employment in every location in which the company has facilities. This policy applies to all terms and conditions of employment, including recruiting, hiring, placement, promotion, termination, layoff, recall, transfer, leaves of absence, compensation and training. Pursuant to applicable laws, we will consider for employment qualified applicants with arrest and conviction records. And if you believe that you will need any type of accommodation, please let us know.