NVIDIA is looking for a Systems Software Engineer to build the NVIDIA Drive Platform, a scalable software stack and framework for autonomous vehicles.
Requirements
- Excellent C, C++ and Python programming skills
- Experience developing and debugging multithreaded/distributed applications like multimedia systems, game engines, etc.
- Expertise in low-latency programming and debugging techniques, especially for parallel and distributed architectures.
- Solid grasp of Software Architecture principles.
- Strong understanding of Linux and real-time operating systems.
- Experience with the git version control system and build systems like Cmake/Bazel.
- Experience shipping products meeting ISO26262 standards while following ASPICE practices.
Responsibilities
- Developing and optimizing software architecture and frameworks for real-world performance while matching or exceeding customer requirements.
- Improving efficiency by optimizing computer utilization with multiple hardware engines for enhanced software performance.
- Working on areas such as component abstraction layers, inter-process data sharing and communication, and process scheduling.
- Solidifying existing frameworks and software components and validate with large amounts of real and synthetic data the improvements of the computational performance and system utilization.
- Performing in-vehicle tests, collecting data and completing autonomous drive missions.
- Developing unit/integration tests, documentation for features, evaluating quality and proposing corrective actions.
- Developing highly efficient product code in python and/or in C++, making use of high algorithmic parallelism offered by GPGPU programming (CUDA). Follow quality and safety standards such as defined by MISRA and ISO26262.
Other
- BS/MS or higher in computer engineering, computer science or related fields (or equivalent experience)
- Great communication and analytical skills.
- Be hands-on and work well within a team of algorithm, software and hardware engineers, with a significant level of detail orientation and a penchant for data organization and presentation.
- Knowledge of automotive systems, notably ADAS applications.
- Research background in discrete optimization and/or real-time scheduling.