Software Engineer, Planning and Control (Autonomy)

The Role: Software Engineer, Planning and Control (Autonomy)

Location: Palo Alto, CA

Full-time

Software Engineer, Planning and Control (Autonomy)

at LyftPalo Alto 

At Lyft, community is what we are and it’s what we do. It’s what makes us different. To create the best ride for all, we start in our own community by creating an open, inclusive, and diverse organization where all team members are recognized for what they bring.

We care deeply about delivering the best transportation experience; this means the best experience for the passenger and the best experience for the driver. We believe this quality of service can only be achieved with a deep understanding of our world, our cities, our streets… how they evolve, how they breathe. We embrace the powerful positive impact autonomous transportation will bring to our everyday lives and with our ambition, we will become a leader in the development and operation of such vehicles. Thanks to our network, with hundreds of millions of rides every year, we have the means to make autonomy a safe reality. As a member of Level5, you will have the opportunity to develop and deploy tomorrow’s hardware & software solutions and thereby revolutionize transportation.

As part of the Autonomy Team, you will be interacting on a daily basis with other software engineers to tackle highly advanced AI challenges. Eventually we expect all Autonomy Team members to work on a variety of problems across the autonomy space; however, with a focus on planning and control, your work will initially involve taking output from the perception, localization, and prediction systems to determine a short, medium, and long-term course of action. For this position, we are looking for a software engineer with the ability to understand autonomous vehicles in general and a strong level of expertise in AI or robotics.

Responsibilities:

  • Work on core planning and control algorithms such as routing, behavior planning, trajectory planning, feedback controllers, etc.

  • Develop state-of-the-art algorithms for planning under uncertainty using stochastic optimization techniques with linear and non-linear objective functions

  • Develop behavioral reasoning framework to support navigation in complex traffic scenarios, such as lane changes, merges, double-parked vehicles, and blind turns

  • Develop functionally safe systems that fail gracefully and safely exit traffic when difficult situations arise

  • Implement real-time algorithms on CPU/GPU in C++

  • Build tools and infrastructure to verify and evaluate the performance of the planner/controller over time

Experience & Skills:

  • Ability to produce production-quality C++

  • Strong background in artificial intelligence, robotics, algorithms, and data structures

  • Ability to build applications for robot path planning using a broad range of tools such as numerical optimization, feedback control, system modeling, etc

  • Ability to develop safety critical navigation systems for low-latency compute platforms

  • Bachelor's degree or higher in Computer Science, Electrical Engineering, or related field

  • Ability to work in a fast-paced environment and collaborate across teams and disciplines

  • Openness to new / different ideas. Ability to evaluate multiple approaches and choose the best one based on first principles

Nice to Have:

  • 2+ years experience working in a related role

  • 5+ years developing in C++

  • Hands on experience with building a navigation stack for mobile robots, from high-level route planning on road graphs and behavioral reasoning to trajectory generation and low-level feedback control

  • Experience with robot path planning techniques like energy functions, behavior trees, jerk minimization, stochastic optimization, etc.

  • Experience with traffic agent intention modeling

  • Experience with GPU programming in CUDA or OpenCL


ITTina MondragonFull-time