Senior Software Engineer, CUDA C++ Core Libraries
$184k - $357k • Remote • US, CA, Santa Clara
Posted 1mo ago
About the job
NVIDIA is seeking a Senior Software Engineer to advance the C++ foundation of CUDA Core Libraries. This role involves designing and optimizing high-performance algorithms and APIs for C++ developers, contributing to the foundational libraries, algorithms, and language/runtime infrastructure that power CUDA. You will be responsible for the full lifecycle of features, from design and implementation to testing, profiling, and maintenance, ensuring a speed-of-light experience for developers and AI coding agents.
Responsibilities
- Design and implement foundational CUDA C++ libraries, parallel algorithms, utilities, and runtime abstractions.
- Compose and optimize GPU algorithms from high-level generic interfaces through low-level implementation.
- Design stable interoperability boundaries for efficient consumption of C/C++ functionality from Python and Rust.
- Balance performance, compile time, portability, compatibility, usability, and long-term API evolution.
- Own features throughout their lifecycle: design, implementation, testing, profiling, benchmarking, documentation, release, and maintenance.
- Improve developer productivity through diagnostics, examples, build integration, tests, benchmarks, and continuous integration.
- Collaborate with Python, Rust, compiler, and runtime engineers during architecture, design, and code reviews.
- Engage with users on performance investigations, API feedback, and correctness issues.
Requirements
- BS, MS, or PhD in Computer Science, Computer Engineering, or related field, or equivalent experience and 8+ years of relevant software-development experience.
- Strong production programming skills in C and C++, with deep knowledge of modern C++.
- Experience with generic programming, templates, type systems, and standard-library design principles.
- Proven experience developing systems-level software with demanding performance, concurrency, and compatibility requirements.
- Practical experience with CUDA or another parallel or heterogeneous programming environment.
- Experience developing production software or foundational libraries, including testing, profiling, benchmarking, and code review.
- Understanding of API and ABI compatibility and challenges of exposing C/C++ functionality to other languages.
- Ability to work independently, define project scope, and drive complex work to completion.
- Clear written communication skills for architecture documents, API specifications, and developer documentation.
- Comfort working in large C/C++ codebases with build systems, toolchains, and continuous-integration infrastructure.
Benefits
- Equity
- Benefits
