Software Engineer, Cpu and Soc Profiling Tools

NVIDIA NVIDIA · Semiconductors · Poland +1 · Remote

Software Engineer role focused on developing and improving profiling tools (like Nsight Systems) for NVIDIA's hardware and software products. The role involves working with various hardware platforms, collaborating with design and metrics teams, understanding user needs, and participating in the full software development lifecycle to deliver features for internal and external developers.

What you'd actually do

  1. Join the Developer Tools team to work on software such as Nsight Systems.
  2. Work with a wide variety of hardware platforms, ranging from small embedded systems, to large multi-GPU and NUMA servers and clusters.
  3. Be the communicator between our Nsight Systems team, various chip and system design teams, and the metrics library team.
  4. Work with internal and external users to understand their software and performance goals, and use that knowledge to influence future chip design.
  5. Communicate across multiple teams to collect and understand the requirements.

Skills

Required

  • Excellent problem solving, collaborative, and interpersonal skills.
  • Strong C++ knowledge.
  • Strong understanding of algorithms and data structures.
  • Demonstrated ability to track large amounts of information across long periods of time, ability to explain complex concepts in clear and concise language.
  • BS or MS in EE, CE, CS, Systems Engineering and 4 years of experience in a related software position.

Nice to have

  • Experience with GPUs, CUDA, HPC, clusters, networking, and performance optimization in distributed environments.
  • Hands on experience with profiling and performance optimizations (e.g. Linux perf, VTune).
  • Understanding of software toolchains and its components (e.g. Arm tools, Android NDK tools).
  • Experience with data science, data analysis and Python.
  • Experience working in remote and distributed teams.