System Software Engineer – Data Center GPU Compute Diagnostics
$124k - $196k • Remote • US, NC, Durham
Posted 1d ago
About the job
NVIDIA is seeking a system software engineer to develop low-level diagnostic software for next-generation data center GPUs and rack-scale AI systems. The team builds software that exercises and validates complex hardware, including compute engines, memory and cache subsystems, NICs, PCIe and NVLink interfaces, power delivery, and thermal behavior. This role is ideal for an embedded, firmware, device-driver, hardware-validation, or systems software engineer who enjoys working close to hardware. You will own well-scoped components of the diagnostic software from design through implementation, validation, productization, and field support, collaborating with various engineering teams to bring up new hardware and diagnose system failures.
Responsibilities
- Develop diagnostic and stress software in C/C++ and Python for complex hardware systems.
- Interface with hardware blocks, firmware, Linux device drivers, registers, telemetry, and low-level debugging tools.
- Bring up and validate new silicon and system features using pre-production hardware and software.
- Create targeted tests for compute engines, memory and cache subsystems, DMA engines, PCIe/NVLink interfaces, power, and thermal behavior.
- Investigate hardware and software failures involving memory errors, ECC, data integrity, performance, thermals, voltage/frequency behavior, and high-speed interfaces.
- Contribute to diagnostic and stress workloads, with opportunities to develop expertise in CUDA programming, GEMM-style compute, NCCL, and PyTorch-based workloads.
- Utilize modern development and analysis tools, including AI-assisted tools, to accelerate coding, debugging, test creation, and failure analysis.
Requirements
- BS or MS degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field, or equivalent experience.
- 2+ years of experience in embedded software, firmware, Linux device drivers, systems software, hardware validation, diagnostics, or silicon bring-up.
- Strong programming skills in C and C++, with working proficiency in Python.
- Experience developing software that interacts with hardware, firmware, device drivers, hardware registers, or low-level interfaces.
- Experience creating diagnostics, validation tests, stress tests, manufacturing tests, or other software used to isolate hardware or system failures.
- Understanding of fundamental computer architecture concepts (memory, caches, interrupts, DMA, buses, device I/O).
- Strong debugging and problem-solving skills, with the ability to investigate failures across hardware and software boundaries.
- Ability to own a problem and drive it to completion while collaborating with cross-functional teams.
- Good written and verbal communication skills.
Benefits
- Highly competitive salaries
- Comprehensive benefits package
- Equity
- Benefits
