Software Engineer- Performance Optimization, Self-Driving
We're changing the way people think about transportation. Not that long ago we were just an app to request premium black cars in a few metropolitan areas. Now we're a part of the logistical fabric of more than 600 cities around the world. Whether it's a ride, a sandwich, or a package, we use technology to give people what they want, when they want it.
For the people who drive with Uber, our app represents a flexible new way to earn money. For cities, we help strengthen local economies, improve access to transportation, and make streets safer.
And that's just what we're doing today. We're thinking about the future, too. With teams working on autonomous trucking and self-driving cars, we're in for the long haul. We're reimagining how people and things move from one place to the next.
About the Role
In this role you will be improving the efficiency and performance of existing software with a strong ability to understand how software interacts with hardware at a low level. You will be working with diverse groups of team members including software and hardware engineers, autonomy researchers, as well as managers and executives.
What You'll Do / What You'll Need / Bonus Points / About the Team
What You'll Do
- Are comfortable reading and developing production quality software with C++ and Python
- Have an excellent understanding of optimization techniques to overcome CPU and GPU bottlenecks, with a focus on algorithmic & low level processor-specific optimizations
- Can write tools to assist developers with increasing functionality, reducing memory usage, and increasing overall system performance
- Comfortable with making architectural changes to fully take advantage of hardware
- Have a thorough understanding of multi-threaded programming
- Have excellent communication skills especially with
- Enjoy working with Linux - be comfortable using Linux as your primary environment
What You'll Need
- You think a working proof-of-concept is the best way to make a point. You strive on proving that speed and quality are not conflicting; that you can achieve both at the same time.
- In addition to having an intimate knowledge of the whole software stack, you understand how all the pieces fit together.
- You feel ownership over everything you ship; you'd never call code "released" until you're confident it's correct. You pride yourself on efficient monitoring, strong documentation, and proper test coverage.
- You believe that you can achieve more on a team — that the whole is greater than the sum of its parts. You rely on others' candid feedback for continuous improvement.
- You understand requirements beyond the written word and how your technical contributions will influence the viability of future products. Whether you're working on a software library used by other developers, a sensor to be retrofitted on a test vehicle, or a printed circuit to be mass produced, the other members of the team can depend on the quality of your work to rapidly advance our goals.
About the Team
At the Advanced Technologies Group (ATG), we are building technologies that will transform the way the world moves. Our teams in Pittsburgh, San Francisco, Phoenix, and Toronto are dedicated to mapping, software and hardware development, vehicle safety, and operations for self-driving technology. Our teams are passionate about developing a self-driving system that will one day move people and things around more safely, efficiently, and cost effectively.
We're looking for team members who thrive on learning new technologies, who adapt easily, and who don't believe in one-size-fits-all solutions.
Back to top