Nvidia is hiring a
Senior Systems Software Engineer, Autonomous Vehicles Scheduling
We are looking for a Senior Systems Software Engineer for our AV team which is building the NVIDIA DriveWorks SDK with the goal to provide a scalable software stack and framework for autonomous vehicles. If you are a software engineer with interests in crafting, developing and maintaining the application framework, and the real time scheduling algorithms and tools that we use for self driving cars, then we'd love to talk to you.
What you will be doing:
Developing and optimizing software architecture and frameworks for real-world performance while matching or exceeding customer requirements.
Establishing efficient mechanisms to maximize utilization on computers with multiple heterogeneous hardware engines by performing performance analysis, and proposing and implementing changes for optimizing the end-to-end performance of the software stack.
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 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 ASPICE, MISRA and ISO26262.
What we need to see in you:
BS/MS or higher in computer engineering, computer science or related engineering disciplines (or equivalent experience) and 8+ years of experience.
Excellent C, C++ and Python programming skills.
Experience developing and debugging multithreaded/distributed applications like multimedia systems, game engines, etc.
Experience shipping products compliant with ISO26262 while following ASPICE practices.
Expert understanding of programming and debugging techniques, especially for parallel and distributed architectures.
Solid understanding of Software Architecture principles.
Solid understanding of Linux and real-time operating systems.
Thrive on writing low latency, highly performant code.
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.
Experience with version control systems GIT and build system like Cmake/Bazel.
Ways You Can Stand Out From The Crowd:
Knowledge of automotive systems, notably ADAS applications.
Research background in discrete optimization and/or real-time scheduling.
Background with graphs and networks.
Experience on developing software in heterogeneous architectures, including GPUs.
Experience or interest in computer vision and image processing
Background with frameworks for robotics such as ROS and/or for multimedia such as GStreamer.
You will also be eligible for equity and benefits.
Please mention that you found the job on ARVR OK. Thanks.