Software engineering

Hello everyone, I am Federico Fiorini and I am currently in my second year of the Master in Embedded Systems at TU Delft. Last year I decided to challenge myself with something I have a deep interest in: building a racecar! And, since I am a passionate F1 supporter since I was born, I decided to apply for a full-time engineering position at the Formula Student Team Delft.

My current position is software engineer. I know, people are often puzzled and keep asking "is there a need for a software engineer? It's a car!". Well, the answer is definitely yes. Software manages all the electronics components, enables safety features and enhances the overall performances, plus more and more things "behind the scenes". So it's clear that software is a fundamental part of bulding a racecar. 

It's important to point out that being a software engineer in this team is not just about programming, is about doing it in the most efficient and careful way. In addition, we often use a whole range of technologies you don't learn in your academic career, therefore there is a lot of study work behind.

It's crucial to acquire the needed knowledge as soon as possible, as time is the biggest of our constraints: we want to be ready for the competition season way in advance, so that we can (hopefully) win everything!

Concerning the software development, we are not "reinventing the wheel" every year, we (mostly) keep on perfecting and optimizing year by year. But there is a limit in such approach, and we thought that limit was reached two years ago.

Thus, in the first months I have been working on the introduction of a new chip for the ECU (Electronic Control Unit) but, needless to say, it was not straightforward at all. I had to be sure that this chip would have been compatible with the existing ones, so I carefully studied the hardware specifications and tested some software on it. It came out that this was not the most efficient solution at all, but hey, failure is a part of the engineering process!

With my chief's approval, I decided to shift towards the so-called "Plan B", which is extensive software optimization. Basically, we take existing software components that are not performing as expected, and after deep and close inspection we improve them. At the moment we are still in the analysis phase, in which we get to know the code in a more detailed way and we would make some tests to determine the optimizable components.

It's definitely going to be a long and tough year, but I do think we can make software great again!