NVIDIA is a leader in accelerated computing and AI, seeking a Senior Software Engineer to enhance the C++ foundation of CUDA Core Libraries. The role involves designing and optimizing high-performance algorithms and APIs, contributing to foundational libraries and infrastructure for GPU-accelerated software.
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 that allow core C/C++ functionality to be consumed efficiently 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 a 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 the 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
- Strong understanding of CPU/GPU architecture and performance optimization, with hands-on experience in GPU-accelerated stacks (CUDA C++/Python, PyTorch, JAX, Numba, CuPy, or similar)
- Proficiency with modern C++ and GPU libraries such as Thrust, CUB, and libcudacxx
- Experience with compiler infrastructure and tooling, including LLVM, Clang, or MLIR
- Knowledge of binary interfaces, linking, versioning, cross-platform distribution, and interoperability across Python, Rust, and C/C++ stacks
- Demonstrated interest in developer tools, library design, and improving developer productivity