Are you passionate about 3D graphics, GPUs, and low-level, close to the hardware programming? Have you ever dreamed of helping bring video games to life? Do you want to work with a fast, agile, and experienced team? Are you ready to move at the speed of light?
NVIDIA is looking to hire a deeply technical, creative and hands-on software engineer to pioneer the next generation of Graphics Developer Tools for Game Consoles. You will work with the NVIDIA Graphics Tools team to build tools that enable developers worldwide to harness the full power of NVIDIA GPUs. We are looking for a low-level programmer to help us provide the best possible experience for game developers seeking to debug and optimize their games.
What you'll be doing:
As a valued member of the team, you will be involved in the technical design and implementation of numerous features working in an Agile/JIRA environment. You will write code in C and C++ operating directly on the GPU and low-level driver data structures to enable graphics debugging and profiling. In this role you can expect to:
Create graphics profiler features for NVIDIA GPUs, enabling developers to achieve higher and more consistent frame rates.
Implement graphics debugging features by reading / writing GPU registers and memory, and by processing and manipulating GPU commands at the driver level.
Work closely with internal and external partners including other peer organizations within NVIDIA.
Drive technology discussions and provide valuable feedback about the architecture.
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 key partners.
Demonstrate growth in technical and non-technical abilities.
Meet with the QA Department to develop a test plan for new features.
What we need to see:
Real passion for 3D graphics and low-level programming with five or more years of industry experience.
B.S. or higher degree in Computer Science or related field or equivalent experience.
7+ years experience or equivalent.
Excellent C / C++ programming skills.
Knowledge of 3D Graphics Algorithms and GPU Architectures, with proficiency in at least one 3D Graphics API such as Direct3D, OpenGL, or Vulkan.
Deep understanding of computer architecture concepts such as virtual memory, caches, registers, threads, and heterogeneous computing.
Ability to articulate key aspects of Object-Oriented Programming.
Able to work effectively with a team of engineers in a fast paced and dynamic environment.
Excellent written and verbal communication skills.
Able to provide accurate estimates to ensure delivery of software on time.
Ways to stand out from the crowd:
Experience developing drivers for GPUs.
Expert with GPU low-level performance tuning/optimization, including profiling and debugging.
Background in the Game Industry or in a field that requires high performance graphics.
Be able to demonstrate initiative and determination in getting things done.
NVIDIA is widely considered to be one of the technology world’s most desirable employers with some of the most forward-thinking and hardworking people in the world working here.
If you're highly technical and enthusiastic about 3D Graphics, we want to hear from you! For two decades, we have pioneered visual computing, the art and science of computer graphics. With our invention of the GPU - the engine of modern visual computing - the field has expanded to encompass video games, movie production, product design, medical diagnosis and scientific research. Today, we stand at the beginning of the next era, the AI computing era, ignited by a new computing model, GPU deep learning.