Job summary:
Our work at NVIDIA is dedicated towards a computing model focused on visual and AI computing. For two decades, NVIDIA has pioneered visual computing, the art and science of computer graphics, with our invention of the GPU. The GPU has also shown to be spectacularly effective at solving some of the most complex problems in computer science. Today, NVIDIA’s GPU simulates human intelligence, running deep learning algorithms and acting as the brain of computers, robots and self-driving cars that can perceive and understand the world. We are looking to grow our company and teams with the smartest people in the world and there has never been a more exciting time to join our team!
NVIDIA is currently seeking a Developer Technology Engineer for High-Performance Databases! Would you enjoy researching new algorithms and memory management techniques to accelerate databases on modern computer architectures? Do you like investigating hardware and system bottlenecks, and optimizing performance of data intensive applications? Are you excited about the opportunity to work on the top tier edge of technology with both visibility and impact to the success of a leader like NVIDIA? If so, the Developer Technology Team invites you to consider this opportunity.
What you will be doing:
- In this role, you will research and develop techniques to GPU-accelerate high performance database, ETL and data analytics applications.
- Work directly with other technical experts in their fields (industry and academia) to perform in-depth analysis and optimization of complex data intensive workloads to ensure the best possible performance of current GPU architectures.
- Influence the design of next-generation hardware architectures, software, and programming models in collaboration with research, hardware, system software, libraries, and tools teams at NVIDIA.
- Pursuing or recently completed Masters or PhD in Computer Science, Computer Engineering, or related computationally focused science degree or equivalent experience.
- Programming fluency in C/C++ with a deep understanding of algorithms and software design.
- Hands-on experience with low-level parallel programming, e.g. CUDA (preferred), OpenACC, OpenMP, MPI, pthreads, TBB, etc.
- In-depth expertise with CPU/GPU architecture fundamentals, especially memory subsystem.
- Domain expertise in high performance databases, ETL, data analytics and/or vector database.
- Good communication and organization skills, with a logical approach to problem solving, and prioritization skills.
- Experience optimizing/implementing database operators or query planner, especially for parallel or distributed frameworks (e.g. production database or Spark).
- Experience optimizing vector database index build and/or search.
- Experience profiling and optimizing CUDA kernels.
- Background with compression, storage systems, networking, and distributed computer architectures.