Overview
Over summer 2026 I worked as an automotive R&D engineering intern at Kenotom in Thessaloniki, Greece, through Princeton's international internship program. I worked on embedded ECU software in C on an AUTOSAR Classic stack, targeting Infineon AURIX TC3x7 hardware.
This page covers the stack and what I learned working in it. It doesn't cover anything proprietary about the work itself.
My role
- Wrote ECU software in C.
- Configured and generated AUTOSAR components (BSW, RTE, OS, and MCAL) with ETAS RTA-CAR and RTA-OS.
- Worked on communication stack configuration, including CAN interfaces and BMS-related communication.
- Resolved integration and build issues across the stack, using serial/printf debugging on the target.
- Worked with a Greece-based, multilingual engineering team.
System
AUTOSAR Classic splits ECU software into layers. Application software components sit at the top and talk only to the RTE, a generated layer that connects them to each other and to the basic software: the communication stack, services, and the OS. Underneath is the MCAL, the drivers for the specific microcontroller, which here was an Infineon AURIX TC387 on a TC3x7 Application Kit.
Much of this is generated from configuration, so a working system depends on the configuration being right in every layer as much as on the C code.
Challenges
When I first opened the stack, it was unfamiliar and very layered. My instinct was to treat problems like a normal C program: find the line that looked wrong and try a quick fix.
That didn't work. A symptom in application code could come from an RTE mapping, a COM stack setting, OS configuration, or an MCAL setting several layers down. Patching the symptom at the top usually just moved the problem.
How I changed my approach
So I stopped patching and started tracing:
- Follow the signal from the application code through the RTE.
- Look at how the basic software and COM stack handle it.
- Understand what the OS is doing: which task runs when.
- Follow the interface down toward the MCAL and the hardware.
- Read the documentation for each layer carefully, and write down my assumptions so I can check them.
- Ask engineers specific questions about a particular layer or interface instead of vague ones.
When a system is complex and unfamiliar, understanding its architecture and interfaces matters more than patching the symptom quickly.
What I learned
- How a production-style automotive ECU stack is structured, and how different it is from classroom code.
- How to debug through layers of abstraction, many of them generated.
- How to get productive with unfamiliar professional tooling.
- How to ask better technical questions.
- What it's like to work on an engineering team in another country.
I'm not an AUTOSAR expert after one summer. I did come away knowing how to find my way around a stack like this, and how to approach the next large system I don't understand yet.