Senior Software Engineer - CUDA Python

Posted:
8/19/2024, 9:19:05 AM

Location(s):
California, United States

Experience Level(s):
Senior

Field(s):
Software Engineering

Workplace Type:
Remote

NVIDIA’s invention of the GPU in 1999 sparked the growth of the PC gaming market, redefined modern computer graphics, and revolutionized parallel computing. More recently, GPU deep learning ignited modern AI — the next era of computing — with the GPU acting as the brain of computers, robots, and self-driving cars that can perceive and understand the world. We're looking to grow our company, and form teams with the most inquisitive people in the world. Join us at the forefront of technological advancement.

We are looking for experienced software professionals to lead/extend our work on bringing delightful developer and user experience to the Python ecosystem. Our goal is to grow NVIDIA’s accelerated Python offerings to a mature product and make Python one of the first-class citizens for programming NVIDIA CUDA GPUs. You will be a crucial member of a team that is working to bring together the power of GPU acceleration and the expressibility and programmability of Python, by developing foundational software that supports many key products spanning the gamut of high performance computing, scientific computing, data analytics, deep learning, and professional graphics running on hardware ranging from gamer laptops to supercomputers to the cloud.

What You'll Be Doing:

As a member of our team, you will use your design abilities, coding expertise, creativity, and community engagement to develop and enhance the functionality and performance of NVIDIA GPUs such that the current and future generations of Python users can enjoy the programmability and take full advantage of the NVIDIA CUDA platform, including both NVIDIA hardware and software. Specifically, you will be working to:

  • 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

What We Need To See:

  • 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

Ways To Stand Out From The Crowd:

  • 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

With competitive salaries and a generous benefits package, we are widely considered to be one of the technology world’s most desirable employers. We have some of the most forward-thinking and hardworking people in the world working for us and, due to unprecedented growth, our exclusive engineering teams are rapidly growing. If you're a creative and autonomous engineer with a real passion for technology, we want to hear from you!

The base salary range is 180,000 USD - 339,250 USD. Your base salary will be determined based on your location, experience, and the pay of employees in similar positions.

You will also be eligible for equity and benefits. NVIDIA accepts applications on an ongoing basis.

NVIDIA is committed to fostering a diverse work environment and proud to be an equal opportunity employer. As we highly value diversity in our current and future employees, we do not discriminate (including in our hiring and promotion practices) on the basis of race, religion, color, national origin, gender, gender expression, sexual orientation, age, marital status, veteran status, disability status or any other characteristic protected by law.