Software Engineer, Hardware-Oriented

NVIDIA Ltd.
Santa Clara, United States of America
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Junior

Job location

Remote
Santa Clara, United States of America

Tech stack

Databases
Continuous Integration
Data Validation
Data Visualization
Software Design Patterns
Linux
DevOps
Django
Hardware Interface Design
Python
Linux System Administration
MongoDB
Object-Oriented Software Development
Software Maintenance
Oop Languages
Software Engineering
Software Systems
Systems Integration
Backend
FastAPI
Matplotlib
REST

Job description

We are looking for a Software Engineer to join our team developing software solutions to control NVIDIA HW in Python on Linux for various internal engineering groups, including chip designers, algorithm engineers, PHY characterization engineers, optics engineers, and other R&D teams. Our work includes building and maintaining a framework, as well as developing GUI tools that support complex engineering workflows. This role combines advanced software engineering with a hardware-oriented perspective - the ideal candidate should have both the interest in areas such as hardware, Linux systems, and low-level drivers.

Collaborate with the development team to improve existing framework and tools, suggest creative solutions, and develop new projects. In our group, software engineers are responsible for the full lifecycle of solutions - from defining requirements and designing architectures to implementation, integration, and delivery. This approach allows every team member to grow professionally, develop a broad skills, and unlock their full potential.

What You'll Be Doing

  • Design, develop, and maintain Python-based software solutions (framework, internal tools, GUI applications).
  • Collaborate with internal customers - including chip designers, algorithm engineers, optics engineers, PHY characterization engineers, and other R&D teams - to understand requirements and translate them into robust solutions.
  • Take ownership of projects: define the solution, design the architecture, implement, integrate, and support production-ready tools.
  • Extend the current framework and tools, while also developing and implementing new ones from scratch.
  • Work within Linux environments, integrating software with hardware interfaces, drivers, and engineering workflows.
  • Apply OOP principles and design patterns to build scalable, maintainable software architectures.

Requirements

  • B.Sc in Electrical or Software Engineering.
  • 1-2 years of relevant experience.
  • Proficiency in Object-Oriented Programming (OOP) and solid understanding of design patterns.
  • Experience with GUI development (PyQt or similar frameworks).
  • Interest in hardware systems, circuits, or engineering workflows.
  • Hands-on experience in Linux systems, including software/hardware interaction and exposure to drivers.
  • Strong analytical and problem-solving approach, with attention to both detail and big-picture architecture.
  • Good communication skills and ability to work closely with multidisciplinary engineering teams.

Ways To Stand Out From The Crowd

  • Familiarity with SerDes, optics, or related hardware.
  • Experience with DevOps, CI/CD, or containerized development environments.
  • Knowledge of REST APIs and backend frameworks (Django, FastAPI) including data validation tools (Pydantic).
  • Experience with databases (e.g., MongoDB or equivalent experience) and visualization tools (e.g., Matplotlib).

, , JR2017404

Apply for this position