Job Information
Nvidia Senior System Software Engineer - NvIPC in Seoul, South Korea
NVIDIA is a leading artificial intelligence computing company, and we are paving the way with innovations in self-driving cars, machine learning, supercomputing, gaming and visualization. We give automakers, tier-1 suppliers, automotive research institutions, and start-ups the power and flexibility to develop and deploy breakthrough artificial intelligence systems for self-driving vehicles. Our unified computing architecture enables training deep neural networks in the data center, and then seamlessly runs them on NVIDIA DRIVE Platforms inside the vehicle.
NvIPC technology provides communication services to all components of the NVIDIA DRIVE software across multiple Operating Systems and hardware platforms. It provides stable, time-critical communication modules for quickly building high-integrity pipelines. Our team is building the technology with strong focus on automotive quality, safety and security needed for the real-time, highly-available system level components of world-class Autonomous Vehicles.
As a System Software Engineer in the Automotive team, you will get an opportunity to work on NVIDIA's latest SOCs, extensively and effectively use novel formal development and verification methods, help tackle complex and important problems, and work alongside industry experts in diverse teams and projects!
What you’ll be doing:
Design and develop safety (ISO26262) and security (ISO21434) compliant NvIPC software for NVIDIA DRIVE platform for autonomous vehicles.
Design Real Time System solutions for NVIDIA Tegra SOC.
Perform early development & bring-up activities for next-generation Tegra SOC hardware.
Work with the ASIC teams to enhance virtualization support in the SOC.
Design debugging solutions and tooling to improve developer experience on DRIVE platform.
Harness, maximum and consistent system software performance and develop workflows and tools to measure performance.
Handle complex issues requiring interactions between components partitioned across the large software stacks.
Using Formal Methods to drive up the integrity of your software, using toolchain automation. Using Ada/SPARK to implement critical code and specify unit design with contracts. Verifying code with hybrid testing and proving verification techniques.
What we need to see:
Bachelors/Masters or equivalent experience in Computer Science from a reputable engineering college
5+ years of experience in System Software development on real time embedded systems
Strong understanding of computer architecture and operating system fundamentals
Strong C/C++ and debugging skills
Experience and expertise in Ada/SPARK and/or TLA+ development highly desirable
Hands-on experience with debugging tools like gdb, Valgrind
A dedicated, committed, strong teammate, who’s self-motivated with excellent analytical and interpersonal skills
Ways to stand out from the crowd:
In-depth knowledge of embedded systems and real time operating systems, like QNX, RT/SE Linux, and Android
Good understanding of ARM architecture and writing low level software for ARM v8 based SOCs
Experience in taking features from inception to the product following Software Development Process (SDLC) practices
Hands-on experience with performance analysis tools, such as gprof, perf, system analyzer tools
NVIDIA is widely considered to be one of the technology world’s most desirable employers. We have some of the most talented and forward-thinking people in the world working with us. Due to unprecedented growth, our best-in-class engineering teams are growing rapidly fast. If you're creative, self-starter and have fun while building innovative products, then what are you waiting for? Go ahead and apply today!
We are an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.