Senior Software Engineer – CUDA Python
Company | NVIDIA |
---|---|
Location | Santa Clara, CA, USA |
Salary | $184000 – $425500 |
Type | Full-Time |
Degrees | Bachelor’s, Master’s, PhD |
Experience Level | Senior |
Requirements
- BS, MS or PhD degree in Computer Science, Electrical Engineering or related field (or equivalent experience)
- 5+ years of relevant industry experience or equivalent academic experience after BS
- Strong Python programming and deployment skills with track record of driving formulation and/or adoption of Python community standards
- Fluent C/C++ and CUDA programming skills
- Background in AI, high performance computing or performance critical applications
- Track record of developing/maintaining Python projects, and/or engaging with Python users on UX or performance improvements
- Experience in designing, developing, tuning, navigating, and/or maintaining a large, complex, multi-language software stack (between C/C++/CUDA and Python)
- Good written communication, collaboration, and presentation skills with ability of operating across team boundaries
- Experience in distributed programming in C/C++/Python using MPI, Dask, Legate, or other distributed programming models/frameworks
- Knowledge of generating Python bindings for mid- to large- size C/C++ codebases
Responsibilities
- Architect, prioritize, and develop new features in CUDA Python
- Analyze, identify, and improve the UX and performance of CUDA software in Python
- Write effective, maintainable, and well-tested code for production use
- Bridge the language gap between existing CUDA C/C++ solutions and Python
- Understand and address unique challenges in developing and deploying Python GPU solutions
- Identify key open source players in the Python/PyData ecosystem, and engage with them to develop and drive necessary protocols and standards for the NVIDIA CUDA platform
- Evangelize CUDA programming in Python to encourage and empower adoption of the NVIDIA CUDA platform
Preferred Qualifications
- Deep understanding in the CUDA programming model and language features
- Familiarity with Python ecosystem, language idioms, and pioneering solutions
- Dexterity with compilers, static/dynamic analysis techniques, and/or dynamic code generation/transpilation/compilation
- Experience in using or developing the LLVM/Clang compiler infrastructure
- Experience in memory management of a multi-language project or development of domain specific libraries/languages for AI, Data Analytics or Scientific Computing