I had a professional by-the-book autobiography! I followed all the suggestions from those who tell you "you have to sell yourself well!". I applied all tips to push myself. Furthermore, I also had a decent narrative. All words were at the right place. But I'm not like that, I do not try hard pretending to be someone I am not using pre-designed formats or by telling people what they want to hear. I am a genuine person, with all the good and bad coming with it. Hence, after having wasted time, I decided to write something that could better represent me. Because wearing the mask of perfections is a heavy job, I prefer spending my energy elsewhere.

So, who am I? I'm Federico Vaga, and I'm a software engineer. I design, manage, and develop computer systems at different levels.

In my professional career I had the chance to work on different software domains, from the embedded systems to the graphical user interfaces, passing through the operating systems, system and graphic libraries, system services and their administration, graphic libraries, command line tools, databases, and user-oriented services. Obviously, I can't brag about being a specialist on all these fields. In some I've developed a deeper knowledge, on others a more basic one. However, this wide spectrum of experiences allows me to have a good overview over complex software systems and to be able to move easily in it: be it coding or reviewing, or designing and coordinating the development. Despite the fact that in the IT domain an epoch pass fast, fundamentals are the same since decades, and usually innovation is evolutionary e rarely disruptive. I believe I have well-developed fundamentals allowing me to easily move among different fields.

In other words, at the professional level, there are no software components that I did not touch! Actually no. Unfortunately, I never had the chance to work on network systems, nor on the implementation of virtualisation systems and related technologies. Moreover, I've never worked on artificial intelligence nor computer vision. Not only I did not have the chance, but I am puzzled about the ethical and social consequences of these technologies, in particular when they get used in silly applications.

More specifically, I can say that I design and write software since 2006, but I've been paid for it only since 2012.

Between 2006 and 2012, there were unpaid internships, pro bono work, and the failed attempt to start a startup with a friend (something like foursquare in its early days and a much-improved version of the yellow pages). During this time, I focused a lot on Front-End (Javascript, JQuery, XHTML, CSS, AJAX), Back-End (PHP, Symfony, Doctrine), and databases (MySQL, SQL). But in my spare time, I also worked on designing and developing command-line C programs, and a few applications with graphical interfaces in REALBasic .

In January 2012, I began my career as a freelance professional active in different sectors and working on different types of software. I developed drivers and subsystems for the Linux kernel on behalf of ST Microelectronics, CERN, biotechware, and MEN. Through a small company, I contributed to the development of the Arduino YUN platform by writing Linux drivers, web interfaces in Lua, and packages for OpenWRT. For the engineering firm Restart38, I worked on Android applications, databases (MySQL, PostgreSQL), web front-end and back-end (Java, Hibernate), as well as integrated systems for FCA. I permanently ended my freelance career in 2017.

Since 2014, I have been working full-time at CERN in the Beams department; initially through a collaboration with the Università degli studi di Pavia, and then, as of 2017, directly employed by CERN. Here, I have been involved in developing software for the control system of the particle accelerator complex. Specifically, I have worked on Linux systems (Linux kernel, hardware abstraction libraries, command line utilities, system administration, and database for automated configurations) limited to industrial PCs based on VME, PCIe, PXIe and MTCA. Within this context, code is written mainly in C, Python, and Bash (and the various UNIX tools); then, shyly, I've started working in Rust following the latest developments in the Linux kernel. Being the foundation of a software system, with it comes as well users' support from specialists for the different components of the accelerator complex. I manage all the development phases on and internal GitLab instance.

This particular positioning of mine allowed me to have daily contacts with electronic engineers and so having the need of being able to read circuit diagrams and VHDL code used to program FPGA; to have constant contacts with system administrators and being able to understand how to manage thousands of machines and users; moreover, to understand an to follow the developments of web applications and databases used for the services surrounding the above-mentioned industrial systems.

This variety in my career allowed me to develop a good overall knowledge about complex software systems. This is one of my best appreciated skill and people tend to ask me consultancy on this matter: software architecture (whatever it means, being hard giving a good definition, and I can't show any certification supporting my claim). Moreover, this allowed me to manage projects and a small team.

Outside working hours, I am involved in educating my children with my wife, and when I can, I work on the Italian translation of the Linux kernel manual. I started and keep maintaining this project because I believe that a particular technology develops better in a country only if that technology speaks the language of the people; therefore, I strive to make this piece of technology more accessible.

I think is evident that my mother tongue is Italian. During the time, due to the school, the work, or simply life, I've ended up speaking English and mutter in French (I understand them, they understand me). Often I kickstart my Spanish but I can't find the time nor finding the right occasion to put efforts in it. The following table shows my self evaluation according to the Common European Framework of Reference for Languages: Italian C2, English C1, French B1 (but A1 when writing).

About my studies, they turn around two fixed points: computer science and the city of Pavia. I started studying computer science at the high school at the I.T.I.S Girolamo Cardano, then I continued at Università degli studi di Pavia where I obtain the master degree in December 2011 cum laude. After years of work it was evident to me the need for further studies in a more managerial direction. Therefore, I joined and Fondazione Alma Mater Ticinensis Executive MBA program and obtained the diploma in June 2021.

"Tiles" aside, I try to spend time studying with a focus on the IT domain and IT project management. Then, I also try to explore other fields where I believe the IT could be of help, or viceversa from which I believe the IT field can learn something. For instance, I'm fascinated by economy, philosophy and history, but also education and innovation (especially if it can be useful for society). I've found the time to focus on these subjects by deleting most of my social media accounts. As of today, you will find me, inactive, only on LinkedIn.

I hope this brief description could tell you who I am and what I do.