It has been a very long time since my last post.
The main reason is that at the end of 2016 I landed a new job within a wonderful but sensitive industry: Formula 1. Specifically with Scuderia Ferrari, probably the most secretive company among this tightlipped industry.
So for a while, I decided it was best to just give up writing rather than find ways to say things without saying too much.
But now that I am saying "arrivederci", it is time for me to write a little recap.
At the very beginning of 2017 I joined a wonderful team of very skilled, very senior developers, and I had a blast working at such a high level for 4 wonderful years.
I had the chance to get insights on the development of race cars, visited places very few people are admitted to, attend official Formula 1 events and worked in the pitlane along cars, mechanics and drivers.
I still remember my first time at the track, and I’ll probably treasure that experience forever. I was there for the first fire-up of the 1000hp Ferrari engine in the morning, and believe me, even if these turbocharged hybrid power units are not the 12 cylinder screamers of the olden days, listening to them come to life gives me the chills.
And that’s not even the best part of the job.
I got to work in the team responsible for the software orchestrating all kind of measured and simulated data. Data coming from real-time on-board ECUs, from dynamics simulation of mechanical components, from dynos and benches, from the mega simulators used by drivers and engineers to test cars, setups and tracks. All kinds of high frequency telemetry were coming through our software, which provided ways to run, read, correlate and analyze them and, of course, visualize them.
A mighty piece of architecture with tens of services and programs all working together, and I had the opportunity to work on it and help in shaping it.
But all good things come to an end, and so here I am, at the end of a chapter and ready for a new adventure.
I want to write down the good lessons I learned during these four year; for me, it’s very important to look back and ask myself “what have I learned?”
I can tell an experience was good to me if I realize I was able to learn a lot; and even as a senior developer, I realized I was still able to improve and learn a lot, and that’s fantastic. Here are the main lessons:
Be always ready to defend/attack ideas. The level of brainstorming and discussion was mind-blowing. Everyone in the team and outside was always ready to challenge ideas and respond to challenges. Ideas were thrown at you all the time, and I quickly began to do the same. It can be intimidating, but it’s the most efficient (if brutal) way to weed out mediocre ideas. Only solid, well though design survive.
Code for change: in a business were evolution happens weekly (from one race to the next one) and each year you have what basically is a new product, the only way software can be written is with change in mind. Which is definitely NOT design or write it to cover all scenarios, quite the opposite: make it simple, and make it so it is easy to go in and change it, rewrite parts of it. I am sure my refactoring skills got to a new level!
What mission critical means: when the software you write can prevent a multi-million euro race car from leaving the pits, missing a race or a qualy in front of millions of people… you get a new idea of what mission critical is. Sure, there are more critical things, related to safety and human lives, but for the business here failure is not an option. Which gave me a whole new perspective on…
Testing. What I learned and done in this area could cover a post by itself!
And finally, remote working. I was able to work the majority of the time remotely, in a very smooth way. Sure, regular visit at the factory were necessary (and pleasant) from time to time, but the team was organized to be remote-first, I had previous experience with remote working, and I have to say that when both parties are committed, it is great. It will be difficult/impossible for me to give up remote working, there are too many advantages (for both parties, I believe).
Of course, the shiny world of Formula 1 has its downsides. It can be exhausting, cruel, and excessively competitive. But for me, it was worth it. It is an experience that demanded a lot, but gave me a lot, and let me know lots of great people some of which I can now call my friends.