Description
We are seeking a top-notch software engineer to join our GPU Firmware team. You will be responsible for designing, developing, testing, debugging, and optimizing GPU firmware throughout the entire GPU lifecycle.
Your goal will be to shape the future of GPU technologies by solving puzzles and working on the boot software that powers the world's best GPUs. You will collaborate with hardware, software, and business teams to transform new firmware features from idea to reality.
Responsibilities:
- Design, develop, test, debug, and optimize GPU firmware throughout the entire GPU lifecycle.
- Design and implement creative solutions for boot software.
- Collaborate with hardware, software, and business teams to transform new firmware features from idea to reality.
- Interact with leading OS and PC vendors to improve and innovate on the startup experience.
- Improve team software process and core infrastructure via projects dealing with build systems and regression farms.
- Continuously evaluate and improve security for firmware that functions as a root of trust for flash and boot security.
- Evaluate and improve control-plane and management interfaces of the GPU.
- Work with hardware teams to improve NVIDIA's GPU hardware security, manageability, etc.
Requirements:
- BS or MS degree or equivalent experience in EE/CS/CE.
- 5+ years' experience in developing device BIOS, firmware, or other low-level software.
- Strong C skills.
- Even stronger communication skills.
- Sense of humor heavily encouraged, but not required.
- Deep understanding of software process.
- Secure software fundamentals including cryptography, authentication/attestation, chains of trust, and understanding of common SW security vulnerabilities.
- Easy to work with, as you'll constantly work closely with both hardware designers and other software engineers to design, develop, and debug functional (and non-functional!) aspects of GPU subsystems.
Nice to have:
- Experience in x86 assembly and in-depth knowledge of the PC architecture.
- Expertise with RISCV and other microarchitectures.
- Proficient with PCI/PCIe architecture.
- Experience working on protocols like MCTP, PLDM, SPDM, etc.
- Good knowledge on developing for UEFI environments.