NVIDIA is a leading company in computer graphics and AI technology, seeking a Senior System Software Engineer to enhance their GPU Cloud Infrastructure for GeForce NOW. The role involves developing and maintaining cloud-based systems, collaborating with teams, and optimizing software performance.
Responsibilities:
- Apply knowledge of system software, algorithms, and computer architecture to develop robust, scalable, and efficient solutions for cloud-based systems and software
- Prototype and evaluate software enhancements within various cloud subsystems to validate the feasibility of novel architectures
- Collaborate with multi-functional teams, participate in gathering requirements, developing, debugging, and supporting production services
- Contribute to optimizations in software performance, efficiency, scalability, reliability, cost-effectiveness, security, and automation
- Actively participate in design and code reviews, debugging processes, software maintenance, and the documentation of functionalities
- Adhere to standardization, standard methodologies, and collaborate across diverse teams
- Receive guidance and mentorship to deliver high-quality code and adhere to established guidelines
Requirements:
- BS or MS Degree in Computer Science or a related field from an accredited university/college or equivalent experience
- 5+ years of hands-on software engineering or equivalent experience
- Experience contributing to the architecture and implementation of distributed systems
- Familiarity with software-defined storage and storage protocols (NFS, CIFS, iSCSI, block, and object storage), and experience in developing and debugging storage applications and performance issues in distributed storage
- Good working and hands-on knowledge of Kubernetes concepts is required, along with a strong understanding of operating systems (Windows and Linux) and familiarity with virtualization technologies (e.g., VMware, KVM, Hyper-V)
- Proficiency in at least one programming language (e.g., C/C++, Go, Python, Java, Shell, or PowerShell) and solid algorithm and data structure skills
- Experience with DevOps concepts and tools like GitLab, Jenkins, or Ansible, and automation for testing and deployment
- Good problem-solving, programming, and scripting skills, with an understanding of system design in distributed systems
- Ability to learn, adapt, and pivot within a fast-paced and growing environment
- Effective communication and interpersonal skills, capable of collaborating across various departments with a proactive attitude and willingness to take ownership of tasks
- Experience with technologies including gRPC, Protobuf, CMake, and Rust
- Familiarity with AI-assisted development tools and an interest in employing large language models (LLMs) to improve development productivity
- Possesses a data-driven attitude, evidenced by some experience in analyzing data to optimize system services and/or cloud systems, and identifying areas for improvement
- Proven capability to contribute to and complete sophisticated projects, with a history of delivering well-scoped solutions to technical problems