Senior Software Developer, HPC Cluster Management
Job Description
NVIDIA has been transforming computer graphics, PC gaming, and accelerated computing for more than 25 years. It’s a unique legacy of innovation that’s fueled by great technology—and amazing people. Today, we’re tapping into the unlimited potential of AI to define the next era of computing. An era in which our GPU acts as the brains of computers, robots, and self-driving cars that can understand the world. Doing what’s never been done before takes vision, innovation, and the world’s best talent. As an NVIDIAN, you will be immersed in a diverse, supportive environment where everyone is inspired to do their best work. Join the team and see how you can make a lasting impact on the world!
We have positions available for enthusiastic, hardworking and experienced software developers for working on our hardware integration and bare-metal provisioning related functionality in our Linux-based cluster management software environment. NVIDIA's Bright Cluster Manager is used to power thousands of Linux clusters around the world, varying from a few nodes to several thousands of nodes. Bright clusters can run on-premises, completely in the cloud, or in a hybrid environment.
What you’ll be doing:
Development of the head node and compute node installation and provisioning processes.
Work on functionality in the area of edge site deployment.
Integrating our product with the latest hardware (e.g GPUs, DPUs, accelerators, high-speed interconnects such as Infiniband).
Work on features related to composable infrastructure management.
Develop new features for our BIOS and firmware upgrade management.
Develop functionality that makes Bright clusters usable for a wider range of workloads, and increases scalability to allow clusters to scale to huge number of nodes.
Adding support for new Linux distributions.
Improving support for alternative CPU architectures such as ARM.
Work on adding features to our Ansible collections for Cluster Installation and Management.
Assist our support team with customer support requests in the above mentioned features and help our customers to use our product more efficiently.
What we need to see:
Degree in Computer Science or related field (or equivalent experience).
7+ years of experience in software development and/or related roles.
Our software is based on Linux. You should be very familiar with the Linux operating system and in particular with networking concepts in Linux. In addition, good practical knowledge about the most common software that is installed as part of a typical Linux installation is required.
You are proficient in Python and intimately familiar with object oriented software design, design patterns, and concurrent programming techniques.
Emphasis on high quality of work and in producing clean code.
Eager to learn and use new technologies.
Ways to stand out from the crowd:
Experience with Ansible.
Experience with high-performance computing and system administration.
Knowledge of Kubernetes, AWS, Azure, GCE, OpenStack, Jenkins and distributed programming.
Proficiency in C++.
You will also be eligible for equity and benefits. NVIDIA accepts applications on an ongoing basis.