Senior Firmware Engineer

NVIDIA NVIDIA · Semiconductors · Santa Clara, CA

Senior Firmware Engineer to join the NVIDIA System Control Firmware team, focusing on developing, implementing, and securing essential software for Tegra SoCs used in autonomous vehicles, AI edge devices, data centers, and robotics. The role involves core firmware development, active program support, project leadership, process improvement, and global collaboration.

What you'd actually do

  1. Core Firmware Development: Build, implement, and optimize low-level C firmware for the Boot and Power Management Processor (BPMP) across the entire Tegra SoC lifecycle.
  2. Active Program Support: Provide hands-on technical support to active product programs by diagnosing and debugging complex, high-priority issues, collaborating closely with cross-functional teams to drive rapid resolutions.
  3. Project Leadership: We offer opportunities to lead system control firmware from inception through bring-up and productization, owning integration, release readiness, issue resolution, and customer/factory deliverables. Requires strong collaboration across functions, focused delivery, clear communication, managing interactions with partners, swift attention to critical issues, and thorough bug/status tracking through final binary delivery. Also requires technical depth in firmware integration, configuration delivery, branch/release workflows, validation, production binaries, and applying lessons learned to future bring-up, with regular cross-team status reporting on progress, risks, blocking issues, and bugs.
  4. Process Improvement: Lead and promote the ongoing refinement of software engineering processes, development methodologies, and team workflows to improve efficiency, code quality, and release reliability.
  5. Global Collaboration: Work closely with hardware, software, and safety architecture groups across our worldwide engineering locations to coordinate requirements and system-level interfaces.
  6. Debug & Test Automation: Identify complex hardware/software boundary failures by analyzing boot logs and hardware traces. Develop thorough unit/integration tests and conduct error injection on emulation platforms and physical boards.

Skills

Required

  • BS or MS degree in Electrical Engineering, Computer Science, Computer Engineering, or equivalent experience.
  • 8+ years of professional experience in embedded firmware development, low-level C programming, and memory-mapped register access.
  • Demonstrated ability to lead technical problem-solving efforts in complex projects, with a proven track record of influencing cross-functional teams and driving technical alignment.
  • Excellent written and verbal communication skills, with the ability to articulate complex technical ideas clearly across a distributed, multi-site team.
  • Practical experience or familiarity with contemporary software development involving AI agents or LLM-assisted workflows to improve code generation, testing, or engineering efficiency.
  • Solid grasp of SoC boot flows, interrupts, linker/build systems, and device tree-based configurations.
  • Direct experience managing low-level SoC infrastructure like clocks, resets, voltage rails, and power-gating behaviors.
  • Outstanding debugging skills, a self-starter attitude, a high sense of teamwork, and a meticulous approach to avoiding regressions in sensitive system behaviors.

Nice to have

  • Experience or strong professional interest in applying the Rust language for systems programming, safe firmware architectures, or tooling.
  • Proven background working under ISO 26262 functional safety standards and accomplishing FMEA.
  • Knowledge of secure boot principles and hardware/software boundary protection.
  • A passion for collaborating closely with hardware engineers to influence next-generation silicon development across automotive, robotic, and data center platforms.

What the JD emphasized

  • low-level C firmware
  • complex hardware
  • system stability
  • essential software
  • firmware development
  • low-level C programming
  • memory-mapped register access
  • complex projects
  • complex, high-priority issues
  • complex hardware/software boundary failures