Senior System Software Engineer - CUDA Driver
We are hiring senior engineers to work on CUDA driver and runtime, core components of our platform for accelerating general purpose computation on the GPU. Our team analyzes performance of applications, investigates bottlenecks in software or hardware and delivers features and improvements to better realize the potential of NVIDIA hardware for a growing range of computational workloads, ranging from deep learning, scientific computation, and self-driving cars to video games and virtual reality. CUDA defines a unified programming model across a range of system configurations and hardware capabilities. To accomplish this, the CUDA driver interacts with GPU hardware, kernel mode drivers, and the operating system.
What you'll be doing:
As a member of our team, you will use your design abilities, coding expertise, and creativity to deliver the best compute platform in the world. You will craft elegant solutions to exciting problems and craft the strategic direction of CUDA as you collaborate with your peers across NVIDIA. You will investigate complex performance problems and deliver robust solutions that accelerate applications.
In this role, you will promote, architect, and implement new features and analyze full stack performance ranging from application level through libraries, system software, kernel software and hardware.
You'll coordinate and drive development efforts across multiple teams defining forward-looking improvements to the CUDA APIs and programming model and building novel system software optimizations.
Effectively write maintainable and well-tested code as well as develop code for multiple operating systems.
What we need to see:
BS or MS degree in Computer Science, Electrical Engineering or equivalent experience
5+ years of related development experience
Strong C programming skills
Experience working with large codebases
Experience with operating system interfaces for threads, process control, and virtual memory
Track record of debugging performance problems in complex environments with both software and hardware components
Having a deep understanding of technology and having passion for what you do
Strong collaborative and interpersonal skills, specifically a proven ability to effectively influence across groups
Good written communication
Experience writing and debugging multithreaded programs
Ways to stand out from the crowd:
Solid understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO
Knowledge of memory coherence and consistency models
Background with kernel mode development
Experience with Windows, Linux, or macOS driver development
Some familiarity with C++
NVIDIA is widely considered to be one of the technology world’s most desirable employers. We have some of the most hard-working and talented people in the world working for us. If you're creative and passionate about developing cloud services we want to hear from you!The base salary range is 144,000 USD - 270,250 USD. Your base salary will be determined based on your location, experience, and the pay of employees in similar positions.