Senior Framework Software Engineer – Autonomous Vehicles
Santa Clara, CA
We are now looking for a Senior Framework Software Engineer for Autonomous Vehicles. 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.
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 crafting, developing and maintaining the application framework and tools that we use to develop self driving solutions on multi computer and heterogeneous architectures.
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 component abstraction layers, inter-process data sharing and communication, and process scheduling.
Developing efficient mechanisms to maximize utilization on computers with multiple heterogeneous hardware engines.
Solidifying existing frameworks and software components and validate with large amounts of real and synthetic the improvements of the computational performance and system utilization.
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:
5+ years of relevant industry experience.
BS/MS or higher or equivalent experience in computer engineering, computer science or related engineering disciplines.
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.
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:
Understanding of embedded architectures.
Experience on developing software in heterogeneous architectures, including GPUs.
Knowledge of 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 like CMake/Bazel.
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.
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!The base salary range is $144,000 - $270,250. Your base salary will be determined based on your location, experience, and the pay of employees in similar positions.