Senior Software Engineer, Compute Sanitizer - GPU
Join the NVIDIA Developer Tools team and empower engineers throughout the world developing groundbreaking products in Automotive, VR, Gaming, Deep Learning, and High Performance Computing. See your efforts in action as developers and 3rd party tool developers use your products to debug, profile and analyze the correctness of their systems/applications using the products and low-level API that you contributed to as a member of the Developer Tools team. Innovate as you develop the debug and performance analysis capability of future generations of NVIDIA GPUs. Be a part of the team that brings new GPU technologies to market with sophisticated simulation/emulation systems and be among the first to breathe life into new silicon.
NVIDIA is looking for a senior software engineer to join our efforts to advance the state of our Compute Sanitizer product to the next level. The position will be part of a dynamic, world-wide team that develops and maintains several desktop and mobile Developer Tools products that are hosted and targeting OSes including Windows, Linux, Android and other embedded system real time OSes (RTOS).
What you’ll be doing:
You will apply knowledge of compute programming models and compute architecture to build tools that provide actionable feedback to compute developers. You should be comfortable working in existing driver code and application code as well as writing new shared libraries and targeted performance tests, and have an eagerness to learn about new compute and graphics drivers, GPU architectures and operating systems.
Develop the Compute Sanitizer (which is a suite of memory checker) tools for GPUs running on Linux, Windows, and embedded operating systems.
Work with tools, compiler, architecture and driver teams to design, implement and verify new features in the Compute Sanitizer stack.
Work closely with internal and external partners including other peer organizations within NVIDIA.
Effectively estimate and prioritize tasks in order to create a realistic delivery schedule.
Write fast, effective, maintainable, reliable and well-documented code.
Provide peer reviews to other engineers, including feedback on performance, scalability and correctness.
Document requirements and designs, and review documents with teams throughout NVIDIA.
Mentor junior engineers.
What we need to see:
BS or MS in Computer Science or equivalent experience
4+ years of experience
Strong programming ability in C, C++, Assembly Language and scripting languages
Excellent knowledge of computer architecture of x86 or ARM CPUs
Strong problem solving and debugging skills
Familiar with low-level programming using assembly languages
Source control understanding (git, Perforce, etc.)
Ability to self-manage, communicate, and adapt in a fast paced, high demand environment with changing priorities and direction
Excellent communication skills, written and verbal
Ways to stand out from the crowd:
Experience with code patching