Senior System Software Engineer, ML and Vector Search

at Nvidia
USD 184,000-287,500 per year
SENIOR
✅ On-site

Tech Stack

AI @ 4 Algorithms @ 4 CUDA @ 3 Communication @ 6 Data Science @ 4 Debugging @ 7 Distributed Systems @ 4 GPU @ 4 HPC @ 4 Java @ 7 Machine Learning @ 4 Mathematics @ 4 Parallel Programming @ 3 Performance Analysis @ 6 Python Rust @ 7 Software Development @ 6 Vector Databases @ 3

Details

NVIDIA is expanding its capabilities in data science, data processing, and database acceleration. The role focuses on developing unstructured data processing libraries, including NVIDIA cuVS and cuML.

These libraries compile highly optimized C++ and CUDA algorithms and expose them to higher-level languages such as Java and Python. You will research, develop, benchmark, and explore tuned custom algorithms for vector preprocessing, indexing, and search, while building high-performance machine learning algorithms for clustering and visualization. You will work closely with engineers on vector search at the intersection of databases and machine learning.

Responsibilities

  • Analyze, design, and implement optimized GPU algorithms for large-scale vector search, databases, and machine learning.
  • Drive performance analysis, benchmarking, and optimization of associated libraries.
  • Collaborate with a multifunctional team to understand requirements and implement or improve solutions.
  • Develop and improve machine learning algorithms.
  • Implement solutions in C++, CUDA, and Python.
  • Contribute to open-source projects such as cuML, cuVS, and RAFT.

Requirements

  • Bachelor's, master's, or doctoral degree in Computer Science, Data Science or AI, Applied Mathematics, or a related field, or equivalent experience.
  • At least 8 years of experience programming in C++, or the ability to learn C++ from a similar language such as C, Rust, or Java.
  • Experience with machine learning concepts, including approximation versus exact methods, iterative versus closed-form methods, writing machine learning algorithms, and using machine learning to solve problems.
  • Strong analytical problem-solving skills and strong foundations in algorithms and mathematics.
  • Excellent software development skills, including programming, debugging, performance analysis, and test design.
  • Ability to work independently and manage development efforts.
  • Good communication and documentation habits.
  • Commitment to developing robust, readable, high-performance code.
  • Familiarity with at least one parallel programming or concurrency framework, such as CUDA, OpenMP, OpenACC, Java concurrency, or pthreads.

Preferred Qualifications

  • Experience developing distributed algorithms and running them on distributed systems, including HPC and cloud environments.
  • Strong debugging skills for complex, multi-language, multi-hardware systems.
  • Familiarity with vector databases and nearest-neighbor algorithms, such as Milvus, Pinecone, or LanceDB, including graph and IVF indexes.
  • Machine learning background, including clustering and dimensionality reduction, probability and formal methods, and applied research.
  • GPU programming experience.

Benefits

The position offers equity and benefits in addition to the base salary. NVIDIA is an equal opportunity employer committed to fostering an inclusive work environment.

Applications will be accepted at least until September 12, 2026. This posting is for an existing vacancy. NVIDIA uses AI tools in its recruiting processes.

More jobs at Nvidia

Similar jobs