New The Skills of Tomorrow: how AI-exposed is every skill in 2026? See the data →
NVIDIA

Senior Software Engineer CUDA UMD - GPU Kernel Scheduling

NVIDIA
Apply →
senior full-time Santa Clara, CA

First indexed 2 Sept 2026

Description

NVIDIA is seeking a Senior Software Engineer to work on the CUDA Driver, a core component of their platform for accelerating general-purpose computation on GPUs. As a member of this team, you will use your design abilities, coding expertise, and creativity to deliver the best compute platform in the world.

Responsibilities:

  • Evangelize, architect, and implement new features
  • Coordinate and drive development efforts across multiple teams
  • Help define forward-looking improvements to the CUDA APIs and programming model
  • Extend important CUDA programming models and functionality such as CUDA Graphs
  • Explore ways to use Graphs to improve the scheduling of AI/ML workloads on GPUs to be more efficient and faster
  • Write effective, maintainable, and well-tested code
  • Develop code for multiple operating systems

Requirements:

  • BS or MS degree in Computer Science, Electrical Engineering, or related field (or equivalent experience)
  • Strong C and C++ programming skills
  • Minimum of 4 years of related development experience
  • Experience driving projects across multiple teams
  • Experience working with large codebases
  • Background with operating system interfaces for threads, process control, and virtual memory
  • Understanding of system-level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO
  • Experience writing and debugging multithreaded programs
  • Good written communication and presentation skills

Preferred qualifications:

  • Prior experience with parallel computing, preferably writing CUDA Programs or Libraries that use CUDA
  • Knowledge of memory coherence and consistency models
  • Background with kernel mode development
  • Experience with Linux Systems Software development
  • Experience maintaining and extending programming models or higher-level language support for similar environments