Senior Application Software Engineer, Simulation – Autonomous Vehicles
Santa Clara, CA
We are looking for a Senior Application Software Engineer, Simulation - Autonomous Vehicles to work on our end-to-end autonomous vehicle application. The role will be working across functional teams to bringup a new autonomous vehicle application in the DriveSim simulation environment. Intelligent machines powered by Artificial Intelligence computers that can learn, reason and interact with people are no longer science fiction. Today, a self-driving car powered by AI can meander through a country road at night and find its way. An AI-powered robot can learn motor skills through trial and error — this is truly an extraordinary time and the era of AI has begun. Image recognition and speech recognition — GPU Deep Learning has provided the foundation for machines to learn, perceive, reason and solve problems. The GPU started out as the engine for simulating human creativity, conjuring up the amazing virtual worlds of video games and Hollywood films.
Now, NVIDIA's GPU runs Deep Learning algorithms, simulating human intelligence, and acts as the brain of computers, robots and self-driving cars that can perceive and understand the world. Just as human imagination and intelligence are linked, computer graphics and AI come together in our architecture. Two modes of the human brain, two modes of the GPU. This may explain why NVIDIA GPUs are used broadly for Deep Learning, and NVIDIA is increasingly known as “the AI computing company.” Make the choice to join us today. Our team builds NVIDIA's end-to-end autonomous driving application. We are seeking software engineers, who want to work "full stack" on crafting self-driving solutions on NVIDIA's multi-computer and heterogeneous hardware architectures.
What you will be doing:
Working across functional teams to bringup a new autonomous vehicle application.
Working in DriveSim simulation environment to promote a simulation-first approach to application development.
Developing tools and tests to improve efficiency working in simulation.
Gathering feedback from large AV organization to improve developer experience.
Integrating modular software components (e.g. perception, localization, planning, etc.) together to implement customer-required self-driving functions.
Diagnosing system software & functional driving issues reported on our target driving platforms
Developing highly efficient product code in C++, making use of high algorithmic parallelism offered by GPGPU programming (CUDA). Follow quality and safety standards such as defined by AutoSAR.
What we need to see:
BS/MS or higher in computer engineering, computer science or related engineering fields, or equivalent experience.
5+ years of relevant industry experience.
Excellent C and C++ programming skills.
Experience developing and testing features in simulation.
Experience debugging multithreaded/distributed applications like game engines, robotics, etc.
Profound knowledge of programming and debugging techniques, especially for parallel and distributed architectures.
Solid understanding on Linux, Android, and/or other real-time operating systems.
Hands-on experience with frameworks for robotics such as ROS and/or for multimedia such as GStreamer.
Thrive on writing low latency, highly performant code.
Great communication and analytical skills.
Self-motivated and a great teammate.
Ways to stand out from the crowd:
Be hands-on and work well within a team of algorithm, software and hardware engineers, with a significant level of detail orientation and a penchant for data organization and presentation.
Product experience on SAE Level 2 and beyond autonomous driving systems. Knowledge of automotive systems, notably ADAS applications.
Certification experience with regulation and safety standards as UN R-157, ISO26262, ISO21448 and others.
Experience on developing software in heterogeneous architectures, including GPUs.
Software development for CUDA and experience with version control systems GIT and build system like CMake/Bazel.