Senior Systems Software Engineer, C++ and CUDA - Accelerated Apache Spark

  • Full Time
Job expired!

We are seeking System Software Engineers to join our Accelerated Apache Spark team. As NVIDIA leads the world in accelerated computing, we are building the next generation data processing ecosystem. Apache Spark is the most popular distributed data processing engine in data centers, being used for a wide range of workloads including data preparation, feature generation, reporting, analytics, and more. Data scientists spend a significant amount of time exploring data and iterating on machine learning (ML) experiments. Every hour of compute required for sorting through datasets, extracting features, and fitting ML algorithms hinders an efficient business workflow.

At NVIDIA, we are passionate about tackling challenging problems that have significant impact. To join us, you'll need strong programming skills, a deep understanding of software building and packaging, particularly in relation to C++. You will work with a team that uses open source libraries – RAPIDS libcudf, RMM and cuIO – to accelerate operations in Apache Spark Extract, Transform, Load (ETL) and ML.

What you'll be doing:

  • Develop CUDA/C++ libraries for use by distributed data processing engines, speeding up operations in Apache Spark
  • Enhance the open-source software RAPIDS through technical discussions and code contributions
  • Cooperate with distributed systems teams to design solutions for large-scale distributed processing problem challenges
  • Offer recommendations and feedback to teams on decisions concerning infrastructure, continuous integration and testing strategies
  • Build, test and optimize CUDA/C++ libraries across different platforms
  • Create automation and tools that will enhance the efficiency of teams developing distributed systems

What you need to have:

  • BS, MS, or PhD in Computer Science, Computer Engineering, or a related field, or equivalent experience
  • 8+ years of work experience in software development
  • Exceptional technical skills in designing and implementing high-quality distributed systems
  • Excellent programming skills in C++, Java, and/or Scala
  • Ability to work with multi-functional teams across boundaries and regions
  • High motivation and strong interpersonal skills

What will distinguish you from others:

  • Familiarity with RAPIDS libcudf, RMM and cuIO
  • Experience in writing efficient distributed software at scale
  • Experience in operating system kernel development
  • Experience with developing in CUDA on GPUs
  • Solid understanding of C++ 17/20

We are widely considered one of the most desirable employers in the technology world, employing some of the most progressive and hardworking individuals out there. If you're passionate, creative, and motivated, we'd love for you to join our team. With competitive salaries and a generous benefits package, we are seen as one of the most attractive employers in the tech industry. We've experienced unprecedented growth, leading to rapid expansion of our exclusive engineering teams. If you're a creative and autonomous engineer with a real passion for technology, we'd love to hear from you.

The base salary range for this position is between 176,000 USD - 333,500 USD. Your base salary will be determined based on your location, experience, and the remuneration of employees in similar positions. You will also be eligible for equity and benefits. NVIDIA accepts applications on an ongoing basis.