Software Engineering Intern
Rivian and Volkswagen Group Technologies
About the Role
Rivian and Volkswagen Group Technologies is a joint venture focused on the next chapter of automotive technology, including operating systems, zonal controllers, and cloud/connectivity solutions. This is a general application for multiple internship openings within our Embedded Platforms teams. You will be matched to a specific team based on your background and interests.
Role Summary
As an Embedded Platforms intern, you will design, implement, and debug core software for ECUs and embedded Linux or RTOS environments. You will also contribute to software for verification and board bring-up on next-generation vehicle platforms.
Specific Project Areas May Include
- Bringing up new ECUs and development boards (drivers, bootloaders, board support software)
- Implementing and optimizing Hardware Abstraction Layers (HALs)
- Working on embedded Linux or Android platform components
- Developing and benchmarking real-time operating system (RTOS) kernel features
- Building security firmware features (e.g., secure boot, cryptographic services)
- Developing camera and imaging software on embedded hardware
- Writing automated tests and CI integrations
Key Responsibilities
- Design, develop, and deploy embedded software on Linux, Android, or RTOS for electronic hardware.
- Contribute to the implementation and optimization of HALs for vehicle hardware interaction.
- Debug and troubleshoot issues at the firmware, driver, and board level.
- Collaborate with cross-functional teams (hardware, charging, body controls).
- Document work and present progress.
Requirements & Tech Stack
Minimum:
- Currently enrolled in a Bachelor's or Master's program at an accredited US university.
- Proficiency in C or C++.
Preferred:
- Actively pursuing a degree in Computer Science, Computer Engineering, Electrical Engineering, or a closely related technical field, with intent to return to school after the internship.
- Experience with scripting languages such as Python, Shell, or Go.
- Coursework or project experience in embedded software development.
- Understanding of RTOS fundamentals.
- Familiarity with embedded Linux environments.
- Familiarity with kernel-level development or automotive communication protocols.
- Experience with interface protocols such as CAN, Ethernet, SPI, or I2C.
- Interest in automotive systems and applications.