Software Engineer - Dpu Platform

NVIDIA NVIDIA · Semiconductors · Westford, MA

Software Engineer role at NVIDIA focused on developing system software components for DPU platforms, including processor firmware, boot-loaders, kernel drivers, and user space applications. Requires experience in embedded systems, C/Python, and understanding of software/hardware interactions. Familiarity with build tools and high-performance processor architecture is needed.

What you'd actually do

  1. Develop system software components such as processor firmware, boot-loaders, kernel drivers/modules, and user space applications and libraries
  2. Collaborate with hardware and product design teams to build software for sophisticated SOC platform designs
  3. Support global teams with various customer and internal DPU projects
  4. Address complex system-level optimization and resource utilization challenges
  5. Engage in all levels of the product development lifecycle, prioritizing clear requirements, software quality, and performance

Skills

Required

  • C
  • Python
  • embedded systems
  • system software stack
  • software/hardware interactions
  • platform firmware
  • device drivers
  • Linux kernel
  • user-space application performance
  • high-performance processor architecture
  • CPU and cache coherency concepts
  • hardware accelerators
  • technical investigation
  • building
  • testing
  • agile software development processes
  • build environment tools (gcc, git, github, make, bitbake, shell scripts, gerrit, jenkins)

Nice to have

  • ARMv8 microarchitecture
  • ATF
  • UEFI software
  • multiple Linux distributions
  • secure boot flows
  • trusted computing environments

What the JD emphasized

  • Bachelor's degree in Computer Science/Engineering or equivalent experience
  • 2+ years of experience in developing software for embedded systems, with proficiency in C and Python
  • Strong desire to understand the system software stack, focusing on software/hardware interactions, including platform firmware, device drivers, Linux kernel, and user-space application performance
  • Knowledge of high-performance processor architecture, including CPU and cache coherency concepts, and hardware accelerators
  • Strong engineering skills, including technical investigation, building, testing, and agile software development processes