Senior System Software Engineer, ML and Vector Search
Overview
In this role you will build and optimize GPU-accelerated libraries for unstructured data processing, focusing on vector preprocessing, indexing, and search. You’ll contribute to cuVS and cuML, collaborating with a cross-functional team to deliver high-performance ML algorithms and fast vector databases. You will benchmark and refine algorithms on CUDA/C++ and expose capabilities to Java and Python. This is an opportunity to shape state-of-the-art vector search within a quickly growing field at NVIDIA.
Compensation / Benefitsbase salaryequitybenefitsremote work optionscareer growthinclusive environment
ResponsibilitiesAnalyze, design, and implement optimized GPU algorithms for large-scale vector search, databases, and machine learningDrive performance analysis, benchmarking, and optimization of associated librariesCollaborate with a multi-functional team to understand requirements and implement or improve solutionsDevelop and improve machine learning algorithmsImplement solutions in C++, CUDA, and PythonContribute to open source projects (cuML, cuVS, RAFT)
Key requirementsBS, MS, or PhD in Computer Science, Data Science or AI, Applied Math, or related field (or equivalent experience)8+ years of experience programming in C++ or ability to learn it from similar languages (C, Rust, Java)Experience with ML concepts, writing ML algorithms, and applying ML to problemsStrong analytical, problem-solving, algorithms, and mathematics fundamentalsExcellent software development, debugging, performance analysis, and test design skillsAbility to work independently and manage own development effortsGood communication and documentation habitsCommitment to robust, readable, high-performance codeFamiliarity with at least one parallel programming or concurrency framework (CUDA, OpenMP, OpenACC, Java concurrency, pthreads)Good communicationDocumentation habitIndependent work ethicCUDAC++Python