NVIDIA is a leader in accelerated computing, providing foundational technologies for modern HPC and AI. They are seeking a Senior Software Engineer to enhance the Python experience for CUDA Core Libraries, focusing on building APIs, algorithms, and runtime infrastructure for GPU-accelerated software.
Responsibilities:
- Design and implement idiomatic Python APIs and bindings for foundational CUDA capabilities and GPU algorithms
- Develop and integrate the native C/C++ components that support Python-facing functionality
- Define reliable and efficient interoperability boundaries between Python, C/C++, Rust, and other languages
- Develop high-performance interfaces that minimize Python and native-language integration overhead
- Own features throughout their lifecycle: design, implementation, testing, profiling, benchmarking, documentation, release, and long-term maintenance
- Improve the Python developer experience through typing, packaging, examples, diagnostics, continuous integration, and compatibility testing
- Collaborate with C/C++, Rust, compiler, and runtime engineers on shared architecture and API decisions
- Work directly with users to investigate correctness, usability, compatibility, and performance issues
Requirements:
- BS, MS, or PhD in Computer Science, Computer Engineering, or a related field, or equivalent experience
- 8+ years of relevant software-development experience
- Strong production programming skills in both Python and C/C++; both are required for this role
- Experience building Python interfaces to native or systems-level software
- Understanding of systems software concepts, performance, concurrency, and API design
- Practical experience with parallel, heterogeneous, or GPU programming
- Experience developing production software or widely used libraries, including testing, profiling, benchmarking, packaging, and code review
- Ability to work independently, define project scope, and drive complex work to completion
- Clear written communication skills for API specifications, technical designs, and user documentation
- Comfort working in large codebases spanning Python, C/C++, build systems, packaging, 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
- Expertise in designing low-overhead interoperability between Python and native languages, including exposure to Rust in mixed-language stacks
- Demonstrated interest in developer tools, library design, and improving developer productivity