Senior Software Engineer - Python Numerical Computing Libraries

NVIDIA NVIDIA · Semiconductors · Santa Clara, CA +1 · Remote

NVIDIA is seeking a Senior Software Engineer to contribute to the design and development of accelerated and distributed implementations of Python APIs for numerical computing. This role involves optimizing GPU-accelerated libraries that support frameworks like NumPy, SciPy, TensorFlow, and PyTorch, crucial for AI, data science, and HPC. The engineer will architect, develop, and analyze performance of these APIs on various architectures, and contribute to runtime systems for multi-GPU computing.

What you'd actually do

  1. Work closely with product management and internal or external partners, to understand use cases and requirements, and contribute to the technical roadmaps of libraries
  2. Architect, prioritize, and develop accelerated and distributed implementations of numerical algorithms
  3. Design future-proof Python APIs for accelerated numerical/scientific computing libraries
  4. Analyze and improve the performance of developed APIs on various CPU and GPU architectures, especially as a part of customer-critical end-to-end workflows
  5. Prototype integrations of developed APIs into targeted frameworks

Skills

Required

  • Python
  • C++
  • CUDA
  • Numerical methods
  • Array computing
  • Python numerical computing libraries (NumPy, SciPy)
  • Accelerated implementations (CuPy, Jax.NumPy, NumS, cuNumeric)
  • Python library development
  • Parallel programming
  • Performance analysis

Nice to have

  • Pandas
  • scikit-learn
  • TensorFlow
  • PyTorch
  • Low-level GPU performance optimization
  • Distributed applications
  • Tasking or asynchronous runtimes
  • Compiler optimization techniques
  • Domain-specific language design

What the JD emphasized

  • Excellent Python, C++ and CUDA programming skills
  • Strong understanding of fundamental numerical methods, dense and sparse array computing
  • Deep familiarity with Python numerical computing libraries (e.g. NumPy, SciPy), including accelerated implementations (e.g. CuPy, Jax.NumPy, NumS, cuNumeric)
  • Experience developing and publishing Python libraries, following standard methodologies for pythonic API design
  • Strong background with parallel programming and performance analysis