Tech Stack
Tag name is followed by "@" symbol and proficiency level value.
About proficiency levels:
- 1-2 — basic awareness. Minimal hands-on experience, and a rudimentary understanding of the technology's purpose;
- 3-6 — daily use. Comfortable and regular usage, capable of handling common tasks and challenges related to the technology;
- 7-9 — you are an expert, you can teach others, you know all the pitfalls and tricks;
- 10 — exceptional knowledge, comprehensive understanding, and adeptness in all aspects of the technology, including advanced problem-solving. Think twice before claiming or demanding such level.
AI @ 3
Communication @ 3
Debugging @ 3
GenAI
Generative AI @ 3
Linux @ 3
Rust @ 3
Software Development @ 3
- 1-2 — basic awareness. Minimal hands-on experience, and a rudimentary understanding of the technology's purpose;
- 3-6 — daily use. Comfortable and regular usage, capable of handling common tasks and challenges related to the technology;
- 7-9 — you are an expert, you can teach others, you know all the pitfalls and tricks;
- 10 — exceptional knowledge, comprehensive understanding, and adeptness in all aspects of the technology, including advanced problem-solving. Think twice before claiming or demanding such level.
Details
NVIDIA develops system software that brings complex silicon to life. The system control and power management firmware team builds low-level capabilities that manage power, clocks, performance, system initialization, and thermal behavior across NVIDIA System-on-Chips (SoCs). As a System Software Engineering Intern, you will collaborate with experienced software, hardware, and architecture engineers to solve problems at the boundary between hardware and software. The role offers opportunities to contribute from pre-silicon development through silicon bring-up, with a focus on reliable firmware for demanding applications.
Responsibilities
- Develop and test system control and power management firmware for NVIDIA SoCs with guidance from experienced engineers.
- Contribute to firmware features that manage power, clocks, performance, system initialization, and thermal behavior.
- Design test cases and build automation to verify functionality and identify regressions.
- Investigate hardware and software issues using debugging tools, test results, and system documentation.
- Support pre-silicon software development.
- Collaborate with architecture, hardware, and software teams on firmware design and implementation, including reliability and functional safety requirements.
Requirements
- Currently pursuing a bachelor's or master's degree in Electrical Engineering, Computer Science, Computer Engineering, or a related technical field.
- Strong C or C++ programming skills demonstrated through coursework, projects, or prior experience.
- Familiarity with computer architecture and microprocessor or microcontroller fundamentals, such as caches, buses, memory controllers, and DMA.
- Ability to debug software, analyze technical problems, and learn unfamiliar hardware and software systems.
- Interest in low-level firmware development and engineering practices that support reliability and functional safety.
- Clear written and verbal communication skills in English, with the ability to collaborate, seek feedback, and follow through on assigned work.
- Experience applying generative AI tools to software development, testing, or debugging, with careful validation of their output.
Preferred Qualifications
- Coursework or project experience with Arm or RISC-V architectures, embedded firmware, or real-time systems.
- Experience with Linux or QNX internals, device drivers, or contributions to open-source software.
- Familiarity with Automotive SPICE, ISO 26262, or other structured software development and verification processes.
- Experience programming in Rust.
Compensation
The expected annual rate for this position is 39,000 EUR–67,600 EUR. Internship pay is based on the position, location, year in school, degree, and experience, and is prorated for the duration of the internship.