Résumé
I am a passionate software developer, low-level programming enthusiast, merciless debugger and a life-long learner.
I am mainly interested in low-level programming languages such as C and C++, and using them for making things that work efficiently and predictably. As a formally educated Electrical Engineer (MSc) I have a working knowledge of embedded hardware and various low-level communication protocols. Occasionally I delve into newer or less mainstream technologies for inspiration and in order to keep myself relevant, I have created side projects using C#, JavaScript, Python, Perl and Go.
Recently my most explored area is AutoSAR Classic and its application for creating automotive embedded systems.
Skill set
Embedded Automotive Development
I’ve worked on different automotive software projects for over 15 years and in this time I’ve worked with a myriad of embedded-related technologies. My strongest skills include:
- Software development in the C programming language according to MISRA C coding standard on CPUs ranging from 16-bit single core units with barely enough flash memory to host a RTOS to multicore monstrosities running full-fledged Linux or Windows CE operating systems.
- Working in ASPICE compliant projects with high focus on full traceability starting from system requirements level all the way to system acceptance and qualification tests
- Debugging hard to catch problems with limited introspection capabilities.
- Providing clear explanations for difficult concepts and presenting them in a way that is appropriate for the target audience.
- Automotive-specific diagnostics solutions, mostly focusing on the UDS protocol.
- Working with AutoSAR Classic based systems.
Web Development
My career started in a small company providing web application solutions and over the years I have tried to follow that branch of the tech industry. As a result I’ve been teaching web development techniques at a local technical vocation school. I’m currently working with Node.js and React but have previously worked with Django with Vue and C# with .NET.
Experience
- 2024 - Present | Bootloader software for a Tier 1 Automotive Supplier
The aim of the project was implementing a bootloader software solution for a multi-CPU ECU designed as a user-facing component in truck vehicles. The solution was spread between a small, housekeeping CPU running a Vector AutoSAR Classic implementation and an application CPU running a QNX-based Android OS.
My responsibilities included:- Implementing software according to end-customer specifications and internal requirements
- Ensuring proper level of technical documentation including traceability between different documentation artifacts and delivered software
- 2024 - Present | Teaching development of advanced web applications at local technical vocation high school
Aside from actually teaching the material in the classroom I also had to prepare my own teaching materials and order and grade project assignments for my students. - 2023 - 2024 | ECU Diagnostics software for an Automotive OEM
The goal of my team was development of AutoSAR Diagnostic functionalities for multiple ECUs.
My responsibilities were: team leading, configuration AutoSAR Dcm and Dem, and requirement analysis. - 2022 - 2023 | Body Controller Module software for a Tier 1 Automotive Supplier
The goal of the project was development and maintenance of Body Controller Module software for various car models. My responsibilities were: configuration, maintenance and debugging of BCM software modules in AutoSAR Classic architecture. - 2020 - 2022 | AutoSAR based CAN gateway in a Telematics Control Unit
The goal of the project was to evolve existing software from a previous iteration and adapt it to new hardware and customer requirements. The Telematics Control Unit developed during this project provided the car with Internet Access and Emergency/Assistance Call capability. The ECU was a multi-processor device, consisting of three units: a small, low-power watchdog and power controller, an AutoSAR-based CAN gateway and a Linux-based application processor responsible for connectivity and CPU-heavy tasks.
As the main developer responsible for adapting the whole AutoSAR stack I was responsible for:- Adapting the configuration of all BSW components in the project
- Configuration and development of additional functionalities in all SWC and CDD components
- Integration of updated Diagnostic Specifications and Ecu Extracts
- Debugging and resolving issues with inter-process communication
- 2019 - 2020 | AutoSAR Classic BSW Configuration for Multi-domain ADAS Controller
The goal of the project was to create a Multi-domain Controller ECU that would provide the driver with ADAS functionality and up to level 3 autonomous driving support. The ECU integrated input from mid and long range radar units and an automotive grade vision camera.
My team was designated to provide an AutoSAR Classic based platform for the applications to be created by other teams.
I was responsible for AutoSAR Base Software modules configuration, mainly focusing on the BswM life-cycle and Ethernet and TCP/IP stack. Other responsibilities involved primarily supporting the other application teams in properly using features provided by the used AutoSAR stack. - 2017 - 2019 | AutoSAR Core for Car Radio with Connectivity
The project encompassed development of software for one of three microcontrollers of the Infotainment System for a German Premium OEM.
My teams’ microcontroller (Renesas RH850) was running on AutoSAR 4.2 (Vector stack) and acting as a CAN interface of the ECU and Power Manager of the ECU I was responsible for:- Configuration and integration of BSWs, SWCs and CDDs on AutoSAR core.
- Implementation of UART protocol for communication with Multimedia core (ECU internal CAN gateway).
- 2016 - 2017 | Mobile-to-Embedded Bluetooth communication protocol and application development
The projects goal was to create a communication protocol implementation based on client-provided specification, test the implementation and create mobile application communicating with an embedded device using this implementation.
Main responsibilities:- Development of a custom test software and a protocol-testing GUI/CLI application
- Dashboard display emulator
- Development of a Bluetooth transport layer for the protocol stack
- 2015 - 2016 | CarPlay and Android Auto integration for an Automotive Infotainment System
The goal for this project was creating a concept and implementation of system infrastructure allowing projection of mobile device content on infotainment system.
My responsibilities included:- Requirement analysis and elicitation
- Concept and design of system-wide approach
- Interface specification and initial implementation
- USB device driver implementation, integration and tuning
- being the Technical Contact to Apple
- 2011 - 2015 | System Software for an Automotive Infotainment System for a Tier 1 Automotive Supplier..
During this project I had to wear quite a few hats and move between multiple teams. My responsibilities were mainly:
- Requirement analysis and elicitation
- Design, implementation and maintenance of following modules:
- User Input Devices (touchscreen, knobs, buttons, steering wheel controls)
- Vehicle Configuration Manager via CAN
- USB Host Controller
- Cross-domain issues debugging
- AUTOSAR diagnostics implementation
- Technical expertise on USB-related features