Chapter II: What I do as a Software Integration Engineer

Have you ever tried to explain to someone what you do for a living? I find this to be one of the most difficult things and usually I end up explaining in a simplistic way something that would be worth more. So let me walk you through this journey to make you understand what my job is.

Introduction

I work as a Software Manufacturing Engineer at Volvo Cars, the vehicle manufacturer that produces the safest cars in the world. In short, my team takes care of the integration of the software to make it compliant for the production environment. Ok Silvio, nice catchy phrase but, what does that mean? Let me take some steps back.

The All New Volvo EX90

Every vehicle on the market is built on an Automotive Platform. This can be described as the sum of all non-styling specific parts – functions, components, systems, and sub-assemblies – of a vehicle. Probably you get to think about a platform as a series of physical parts mounted together. And it is, do not get me wrong. But, nowadays the big deal in a platform is the software. The traditional car manufacturers has a century of experience on the hardware, but only a few decades on the software. Cars are now so technologic that they can be easily defined as "computers on wheels".

Every main system composing the platform of a car has a dedicated little computer called Electronic Control Unit (ECU). Engine? Infotainment? Doors? Brake System? Active suspensions? Yes, all these systems have an ECU which enables the communication with the vehicle. To be controlled, the car accepts strings of bytes called diagnostic commands that contains the information to trigger different actions.

Overview of a few common ECUs which can be found on a vehicle

Now that these basic concepts are clear, follow me in this example to make you better understand. Let’s say you are sitting in your car and you have just parked on the seaside in Sicily during a hot summer day. Outside there is a nice breeze and you would like to enjoy your fried calamari in the car while looking at the rumbling waves. But wait, the window switch is broken, it is impossible to roll it down, and it's way too hot to stay in the car. Then you remember, you have your computer with you. By connecting to the diagnostic port under the steering wheel, the car is now at your orders. Reading the instructions you get to know that the driver window is controlled by the Driver Door ECU and the command to roll it down is 31 01 12 12. By sending the command, the window starts to roll down and you can now enjoy your calamari.

This is just a funny story but it gives you an idea of what you can do with a diagnostic command. This series of bytes, that at first glance has no meaning, allows you to control the car in every aspect. The ECU understands what to do with that series of bytes just because the downloaded software translates the command in actions. In our case, 31 01 12 12 triggers the ECU to actuate the little motor responsible of rolling the window down.

What I do at my workplace

On a daily basis I am sitting on a desk in a low-volume production plant. The main part of my job is assemble and test the software that comes from my colleagues at the R&D department. With "assemble" I am referring to putting together all the needed diagnostic commands, so that they follow a certain sequence. As cars are mass produced goods which need to undergo many different calibrations, these instructions are automatically sent in such a way to take into account the time and space limitations coming from the production plant layout. Earlier in the story, the only action was rolling down the window, but imagine if the diagnostic commands to be sent are thousands. From each command comes an action that is performed to comply with internal quality standards and also with legal requirements.

Another part of my job is to represent the production plants in the software design. As I mentioned earlier, there is the need to respect certain time and legal constraints. In the weeks prior to the software release in plant, a pre-testing takes place, so to assess if the software is compliant with the requirements. The continuous software integration allows to improve the software and to introduce new functionalities. Being the car mass produced, it is important to catch as much software bugs as possible during the pre-testing. It is always easier to fix a problem in a controlled environment rather than in the production plant.

And you? What do you do for a living? Have you ever tried explaining it to someone outside your field?

Let's catch up on Discord, I would love to know more about what you do!

Ciao