
Senior Compute System Software Engineer
Required skills
- low level device drivers
- Linux OS
- C++
- operating system internals
- device driver models
- low-level operating system
- GPU hardware
- clock management
- thermal management
- power management
Nice to have
- Windows experience
Role summary
NVIDIA is seeking a Senior Compute System Software Engineer to design, develop, and maintain low-level device drivers and embedded software for their Data Center GPU products. This role involves working with C/C++ on Linux and Windows, focusing on operating system internals, GPU architecture, and features like clock, thermal, and power management. The ideal candidate will have 8+ years of experience in low-level device driver development, strong problem-solving skills, and the ability to work independently. Experience with Windows is a plus. The position offers a competitive salary range and eligibility for equity and benefits.
We are a very diverse and dynamic team with many responsibilities and opportunities! We work with sister software teams on developing features for upcoming generations of products. We engage partners on deploying new products, maintaining existing products, and developing requested improvements. We also work with hardware and architecture on the future direction of NVIDIA's product features. These responsibilities evolve over time, resulting in a rich engineering experience and career. As a Compute Systems Software Engineer at NVIDIA, you will work on the kernel drivers and embedded software for our Data Center products!
What you'll be doing:
Design software for next-generation compute GPU solutions.
Develop and maintain software technologies that enable and support NVIDIA GPU hardware across Linux and Windows operating systems, ensuring optimal performance and feature functionality.
Implement cross-platform software solutions that support new and evolving hardware architectures.
Collaborate with global internal teams across software, hardware, architecture, and OEM support.
Develop features for clock, thermal, and power management.
Build telemetry, device initialization, device management, and reset capabilities.
Implement memory-management solutions and performance optimizations for GPU platforms.
Contribute to embedded software development supporting GPU functionality and platform integration.
What we need to see:
Bachelor of Science or Master of Science degree in Computer Science, Electrical Engineering, or related field (or equivalent experience)
8+ years "hands on" experience developing low level device drivers, especially for the Linux OS
Strong software engineering skills combined with a drive to solve hard problems are a must.
Strong programming skills in C and C++
Detailed knowledge of operating system internals and various device driver models.
Low-level operating system knowledge (required)
Strong English written and oral communication skills to collaborate with other engineers (worldwide)
A self motivated, passionate and eager teammate with a strong desire to learn, grow and create
The candidate is expected to work independently with minimal direction.
Windows experience is a plus
You will also be eligible for equity and benefits.
Applications for this job will be accepted at least until September 1, 2026.This posting is for an existing vacancy.
NVIDIA uses AI tools in its recruiting processes.
NVIDIA is committed to fostering an inclusive 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.Sample NVIDIA interview questions
- 1
Design a system for a rock paper scissors game
system designmedium - 2
Implement a distributed data migration management platform.
system designmedium - 3
Design a Distributed Build System with Cross-Data Center Artifact Sharing
system designhard - 4
Design a distributed training system for a trillion-parameter language model
system designmedium - 5
Develop a distributed tracing system for tracking and debugging.
system designmedium
Get started to unlock a personalized interview prep pack for this role.
Similar roles
Senior Machine Learning Engineer, AI SafetyNVIDIA · Remote · Remote
Senior System Software Engineer - Datacenter Power ManagementNVIDIA · Remote · Hybrid
Software Engineer IIHumata Health · | Us · Hybrid- Intermediate Software Engineer (Frontend/UI)Achievers · Toronto, ON · Hybrid
Lead, Mobile App Software EngineerWhitepages · Seattle, WA · Hybrid- Staff Embedded Software EngineersRivian and Volkswagen Group Technologies · Palo Alto, CA · Onsite
