Summary
NVIDIA has been a leader in computer graphics and accelerated computing for over 25 years, now focusing on AI to revolutionize computing. They are seeking a Software Engineer to develop system software components for sophisticated data center platforms, collaborating with international teams to address complex challenges in software and hardware integration.
Responsibilities
- Develop system software components such as processor firmware, boot-loaders, kernel drivers/modules, and user space applications and libraries
- Collaborate with hardware and product design teams to build software for sophisticated SOC platform designs
- Support global teams with various customer and internal DPU projects
- Address complex system-level optimization and resource utilization challenges
- Engage in all levels of the product development lifecycle, prioritizing clear requirements, software quality, and performance
- Work within a worldwide matrixed software development team, making a broad impact within our dynamic and technology-centric company
Skills
- 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
- Excellent written and oral communication skills
- Familiarity with build environment tools such as gcc, git, github, make, bitbake, shell scripts, gerrit, and jenkins
- Experience with ARMv8 microarchitecture, ATF, and/or UEFI software is a strong plus
- Familiarity with multiple Linux distributions, with the ability to compare and contrast them
- Knowledge of secure boot flows and/or trusted computing environments
Qualifications
Must Haves
- 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
- Excellent written and oral communication skills
- Familiarity with build environment tools such as gcc, git, github, make, bitbake, shell scripts, gerrit, and jenkins
Nice to Haves
- Experience with ARMv8 microarchitecture, ATF, and/or UEFI software is a strong plus
- Familiarity with multiple Linux distributions, with the ability to compare and contrast them
- Knowledge of secure boot flows and/or trusted computing environments
Benefits