Autonomous Vehicles Embedded Software Engineer

NVIDIA - Santa Clara, CA (30+ days ago)4.2

We are now looking for an Autonomous Vehicles Embedded Software Engineer

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 the NVIDIA DriveWorks SDK with the goal to provide a scalable software stack and framework to build autonomous vehicles.

We are seeking software engineers with interests on designing, developing and maintaining many aspects of the core technology such as sensor interfaces, data streaming, threading, memory management and lower level platform specific technology.

What you will be doing:
Developing and optimizing software architecture and frameworks for real-world performance while matching or exceeding customer requirements.
Working on areas such as sensor abstraction layers, data processing components, process scheduling and frameworks.
Solidifying existing algorithms and working with large amounts of real and synthetic data to continuously improve the algorithmic and computational performance.
Performing in-vehicle tests, collecting data and completing autonomous drive missions.
Developing unit tests, documentation for features, evaluating quality and proposing corrective actions.
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 MISRA

What we need to see:
BS/MS or higher in computer engineering, computer science or related engineering disciplines and 3+ years of industry experiences
Excellent C and C++ programming skills
Experience developing and debugging multithreaded/distributed applications like multimedia systems, game engines, etc.
Strong knowledge of programming and debugging techniques, especially for parallel and distributed architectures.
Strong knowledge on Linux, Android, and/or other real-time operating systems.
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:
Understanding of embedded architectures
Experience with data-parallel and/or GPGPU programming, CUDA, OpenCL
Expertise with image processing APIs (e.g. OpenCV) and MATLAB tools.
Knowledge of automotive systems, notably ADAS applications.
Software development for modern OpenGL (Core Profile) and Linux.
Experience with version control systems GIT and build system CMake
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
Experience w/ embedded systems & microcontrollers
Experience w/ working on OS and driver internals
We believe that realizing self-driving cars will be a defining contribution of our generation (e.g. traffic accidents are responsible for ~1.25 million deaths per year world-wide). We have the funding and scale, but we need your help on our team.

NVIDIA is committed to fostering a diverse work environment and proud to be an equal opportunity employer. As we highly value diversity in our current and future employees, we do not discriminate (including in our hiring and promotion practices) on the basis of race, religion, color, national origin, gender, gender expression , sexual orientation, age, marital status, veteran status, disability status or any other characteristic protected by law.