Senior System Software Engineer, Performance - CUDA Driver

at Nvidia

📍 Santa Clara, United States

$148,000-276,000 per year

SENIOR
✅ On-site

SCRAPED

Used Tools & Technologies

Not specified

Required Skills & Competences ?

Linux @ 4 Hiring @ 4 Communication @ 4 Debugging @ 4 API @ 4 macOS @ 4

Details

We are hiring senior engineers to work on the 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.

Responsibilities

  • Evangelize, architect, and implement new features
  • Oversee and drive development efforts across multiple teams
  • Analyze full stack performance ranging from application level through libraries, system software, kernel software and hardware
  • Define forward-looking improvements to the CUDA APIs and programming model
  • Create novel system software optimizations
  • Write effective, maintainable, and well-tested code
  • Develop code for multiple operating systems

Requirements

  • 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
  • Track record of debugging performance problems in complex environments with software and hardware components
  • Experience with operating system interfaces for threads, process control, and virtual memory
  • Experience writing and debugging multithreaded programs
  • Deep understanding of technology and passionate about what you do
  • Strong collaborative and interpersonal skills, specifically a proven ability to effectively guide and influence within a dynamic matrix environment. Good written communication.

Ways to stand out from the crowd

  • Understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO
  • Experience with performance tuning of device drivers or low level system software
  • Experience with performance optimizations across a variety of CPU architectures - like x86, POWER and ARM
  • Knowledge of memory coherence and consistency models
  • Experience with Windows, Linux, or macOS driver development.

NVIDIA is widely considered to be one of the technology world’s most desirable employers. We have some of the most brilliant and hardworking people in the world working for us. If you're creative and autonomous, and are interested in working on novel problems in a collaborative environment, we want to hear from you!