Avevo una autobiografia professionale da manuale! Avevo seguito tutti i suggerimenti di quelli che ti dicono "devi venderti bene!". Avevo usato tutti i trucchetti per pompare un po' la caratura del sottoscritto. Avevo anche impostato una narrativa discretamente interessante. Le parole erano tutte al posto giusto. Eppure niente, non sono fatto così, non cerco d'impressionare a tutti i costi usando formati preconfezionati o dicendo quello che la gente vorrebbe sentirsi dire. Sono una persona genuina, con tutti i pregi e difetti che comporta. Per cui dopo aver gettato al vento il mio tempo cercando di essere più appetibile, ho deciso di riscrivere questo testo di modo che mi rappresenti per ciò che sono. Perché indossare la maschera della perfezione è faticoso, e preferisco spendere le mie energie altrove.

Dunque, chi sono? Sono Federico Vaga, e sono un ingegnere del software. Mi occupo di progettare, gestire e sviluppare sistemi software a diversi livelli.

Nella mia carriera professionale ho avuto modo di lavorare in molti ambiti, dai sistemi integrati alle interfacce grafiche, passando per i sistemi operativi, le librerie di sistema e quelle grafiche, i servizi di sistema e la loro amministrazione, le librerie applicative, gli strumenti a riga di comando, le basi di dati, ed i servizi agli utenti. Ovviamente, non posso millantare d'essere uno specialista in tutti questi settori, in alcuni ho una conoscenza più profonda, in altri più basilare. Tuttavia, questo ampio spettro di esperienze mi permette d'avere un'ottima visione d'insieme su come tutti questi livelli contribuiscano alla formazione di un complesso sistema software e a destreggiarmi agilmente in esso: sia scrivendo e revisionando codice, sia progettando e coordinando lo sviluppo, anche per progetti più a contatto diretto con l'elettronica. Nonostante in informatica le epoche passino molto più rapidamente rispetto ad altri contesti, in realtà i fondamentali sono pressoché fissi da molti decenni, e spesso l'innovazione è evolutiva e raramente dirompente. Per cui credo di aver sviluppato basi abbastanza solide che mi permettono di spaziare su diversi ambiti.

Insomma, a livello professionale, non c'è componente software che non abbia toccato! In realtà no. Purtroppo, sono mancate le occasioni per lavorare su sistemi di rete, o all'implementazione di sistemi di virtualizzazione e tecnologie affini. Inoltre, non ho mai lavorato su sistemi di intelligenza artificiale né visione artificiale. Oltre alla mancanza di occasioni, mi lasciano molto perplesso le implicazioni etiche e sociali di queste tecnologie ed in particolare il loro possibile uso scriteriato in nome di un qualche guadagno facile.

Più nel dettaglio posso dirvi che progetto e scrivo software dal 2006, ma purtroppo solo dal 2012 hanno iniziato a pagarmi per farlo.

Fra il 2006 e il 2012 ci sono stati tirocini non pagati, contributi a titolo gratuito, ed il tentativo - fallito - di avviare una nuova impresa con un amico (qualcosa come foursquare alle origini e un pagine gialle molto migliorato). In questo periodo mi sono occupato molto di Front-End (JavaScript, JQuery, XHTML, CSS, AJAX), Back-End (PHP, Symfony, Doctrine), e basi di dati (MySQL, SQL). Ma a tempo perso anche di progettazione e sviluppo di programmi C a riga di comando, e di qualche applicazione con interfaccia grafica in REALBasic .

Nel gennaio del 2012 inizio la mia carriera come libero professionista offrendo consulenze in diversi settori, e occupandomi di diversi tipi di software. Ho sviluppato driver e sottosistemi per il kernel Linux per conto di ST Microelectronics, CERN, biotechware, e MEN. Attraverso una piccola società ho contribuito allo sviluppo della piattaforma Arduino YUN, scrivendo driver Linux, interfacce web in Lua, e pacchetti per OpenWRT. Per conto dello studio d'ingegneria Restart38 ho lavorato su applicazioni Android, basi di dati (SQLite, PostgreSQL), web front-end e back-end (Java, Hibernate), ma anche sistemi integrati per FCA . Termino definitivamente la libera professione nel 2017.

Dal 2014 lavoro a tempo pieno presso il CERN nel dipartimento Beams; prima attraverso una collaborazione con l'Università degli studi di Pavia, poi dal 2017, assunto direttamente alle dipendenze del CERN. Qui mi sono occupato e mi occupo di software per il sistema di controllo del complesso di acceleratori di particelle. In particolare della progettazione, gestione e produzione di software su sistemi Linux, questo include: kernel Linux, driver per Linux, librerie per l'astrazione delle interfacce hardware, utilità a riga di comando, amministrazione di sistema, basi di dati per la configurazione automatica. Il tutto è limitato a calcolatori industriali basati su VME, PCIe, PXIe e MTCA. In questo contesto, il codice è scritto principalmente in C, Python, e Bash (e i vari strumenti UNIX); poi, timidamente, mi sto affacciando a Rust seguendo l'evoluzione del kernel Linux. Trattandosi delle fondamenta di un sistema software, con esso viene anche il supporto verso i suoi utilizzatori che altri non sono che gli specialisti per i diversi componenti degli acceleratori. Gestisco tutte le fasi del lavoro tramite l'istanza interna della piattaforma GitLab.

Questo mio particolare posizionamento mi ha permesso di essere quotidianamente a contatto con gli ingegneri elettronici e dover quindi saper leggere schemi elettrici e codice VHDL usato per programmare FPGA; di essere a contatto con amministratori di sistema e dover quindi capire come gestire migliaia di computer ed altrettanti utenti; inoltre, di capire e seguire gli sviluppi di applicazioni web e basi di dati usati per la gestione dei servizi di supporto.

Questa carriera così variegata mi ha permesso di sviluppare un'ottima visione d'insieme di sistemi software complessi. Questa è una delle mie qualità più apprezzate e per la quale le persone mi chiedono consulenza e opinioni: l'architettura software (qualunque cosa significhi visto che è difficile darne una definizioni esatta, e non ho certificazioni specifiche a sostegno di questa mia affermazione). Inoltre, questo mi ha portato anche a gestire progetti con al seguito una piccola squadra di lavoro.

Al di fuori del lavoro, mi occupo dell'educazione dei miei figli con mia moglie, e quando riesco mi occupo della traduzione italiana del manuale del kernel Linux. Ho iniziato e mantengo attivo questo progetto perché credo che una conoscenza si sviluppi in un paese solo se quella conoscenza parla la lingua del suo popolo; e dunque mi sforzo di rendere più accessibile questo pezzo di tecnologia.

Immagino sia evidente che sono di madrelingua italiana. Ma nel tempo, vuoi la scuola, vuoi il lavoro o la vita, mi sono ritrovato a parlare anche inglese e parlucchiare francese (lo capisco, e mi capiscono). A più riprese provo ad avviarmi allo spagnolo ma né il tempo né le occasioni me lo permettono. Questa che segue è un'autovalutazione secondo il quadro comune europeo di riferimento per la conoscenza delle lingue: italiano C2, inglese C1/B2, francese B1 (ma scritto A2/A1).

Venendo ai miei studi, questi ruotano attorno a due costanti: l'informatica e la città di Pavia. Ho iniziato a studiare informatica alla scuola superiore presso l'I.T.I.S Girolamo Cardano, per poi proseguire alla facoltà di ingegneria dell'Università degli studi di Pavia, dove nel dicembre del 2011 ottengo la laurea specialistica con Lode. Dopo anni di lavoro era evidente che avevo delle lacune professionali in ambito dirigenziale. Decisi di colmarle e nel giugno del 2021 ottengo il diploma Executive MBA presso la Fondazione Alma Mater Ticinensis con indirizzamento verso la gestione dei processi d'innovazione.

A parte i "titoli", cerco sempre di dedicare del tempo allo studio ed alla lettura. Principalmente leggo d'informatica e la gestione di progetti informatici. Poi, cerco anche di esplorare altre materie dove l'informatica può essere utile, o da cui l'informatica avrebbe qualcosa da imparare. Per esempio sono affascinato dall'economia, dalla filosofia, e dalla storia, ma anche dall'istruzione e dall'innovazione (specialmente se ha riscontri socialmente utili). Il tempo per dedicarmi a queste letture l'ho trovato eliminandomi da quasi tutte le reti sociali. Ad oggi mi troverete, inattivo, solo su LinkedIn.

Con questo credo di avervi fornito una breve descrizione di chi sono e cosa faccio.