Senior Software Engineer, Chip Simulation

NVIDIA NVIDIA · Semiconductors · Tel Aviv, Israel

NVIDIA is seeking a Senior Software Engineer for their chip simulation team, focusing on the physical layer of networking chips and GPUs. The role involves developing and maintaining simulation components, collaborating with hardware and firmware teams, and extending the simulation infrastructure with CI/CD and testing tools. The ideal candidate has 5+ years of experience in Python and C/C++, with a strong understanding of Linux and debugging complex systems.

What you'd actually do

  1. Develop and maintain simulation components for the physical layer of NVIDIA’s high-performance networking chips (e.g., GPUs, switches, NVLink, Ethernet...)
  2. Collaborate with chip architects, firmware developers, and hardware design teams to accurately simulate complex physical-layer behaviors in software.
  3. Define, implement, and validate simulations of features such as link training, error injection, and transceiver behavior, making the simulation platform a go-to internal platform for development and debugging.
  4. Extend and optimize the simulation infrastructure by contributing to CI pipelines, automated test frameworks, and regression tools.
  5. Support internal users by debugging simulation flows and collaborating on bug resolution.

Skills

Required

  • Bachelor's Degree or equivalent experience in Computer Science / Software Engineering / Computer Engineering / Electrical Engineering / Communication Engineering
  • 5+ years of experience in Python programming, with strong object-oriented design skills
  • Experience with C and/or C++, especially in systems or performance-sensitive environments
  • Experience debugging using debuggers (gdb), including concurrency issues (races, deadlocks...)
  • Solid understanding of Linux, containerized environments (e.g., Docker), and command-line tools
  • Familiarity with Inter-Process Communication (IPC) mechanisms (sockets, message queues, shared memory...)
  • Ability to communicate complex technical ideas in simple terms
  • Well-organized, proactive and capable of leading your own tasks
  • Collaborative personality with a love for teamwork

Nice to have

  • Experience building complex simulation or emulation systems, especially those simulating hardware behaviors
  • Experience with multi-platform systems spanning HW, FW, and SW
  • Experience with low-level networking protocols and applications
  • Knowledge of physical layer concepts
  • Experience contributing to CI/CD systems and tooling (e.g., Git, Jenkins, Gerrit)

What the JD emphasized

  • physical layer
  • link training
  • error injection
  • transceiver behavior
  • CI pipelines
  • automated test frameworks
  • regression tools
  • next-generation devices
  • 5+ years
  • Python
  • C and/or C++
  • Linux
  • complex simulation or emulation systems