We are looking for a System Software Engineer for our Tegra System Software Team with good understanding of ARM architecture, low level programming skills and experience to help us develop fast, robust and safe systems used in Automotive, Embedded and Data Center products. We are a leading artificial intelligence computing company and are paving the way with innovations in gaming, visualization, supercomputing and self-driving cars. NVIDIA gives customers, developers, tier-1 suppliers, research institutions, and start-ups the power and flexibility to develop and deploy breakthrough artificial intelligence systems for self-driving vehicles and embedded devices used for intelligent video analytics and voice assistants.
With its recent acquisition of Mellanox that is a dominant player in providing intelligent networking solutions, NVIDIA will optimize datacenter-scale workloads across the entire computing, networking and storage stack to achieve higher performance, greater utilization and lower operating cost for customers.
Are you dedicated, upbeat and dynamic with excellent analytical ability? Are you a software engineer passionate and highly motivated about solving complex problems? If so, you may be a perfect fit for our group.
We are now looking for Engineer for the Tegra Software Team.
What you’ll be doing:
Develop features to see them through the full software development lifecycle, from conceptualization to productization.
Work closely with software engineers, hardware and arch teams to implement Kernel drivers and optimize features for the automotive, embedded, networking and robotic system-on-chip (SOC) devices.
Triage, debug and implement fixes for Tegra Software stack.
Communicate effectively with various teams throughout the company, as well as customers and partners and Linux community to get the Kernel changes Upstreamed.
What we need to see from you:
Bachelor's/Master's degree in Computer Science, Electronics or equivalent working experience.
Excellent C programming skills. Expertise in coding and debugging is essential for your success in this role.
Possess very good knowledge of computer system architecture and low-level interfaces such as buses, controllers(I2C/SPI/UART/GPIO) and interrupts.
Prefer that you to have good understanding of operating system concepts, specifically memory/resource management, scheduling, process management and synchronization and power management.
Programming experience with Linux Kernel.
Need to have excellent communication and planning skills.
Ways to stand out from the crowd:
Strong knowledge of Linux Kernel internals and working knowledge of ARM based platforms.