Competenze
Python, Javascript, HTML, CSS, XML, XSLT, Node.js, C, Bash, SQL, Bootstrap, Git, Mercurial, Solr, Apache, MySQL, Linux, Black Duck, SonarQube
Formazione e carriera
Università degli Studi di Milano (Dottore in Fisica, 1992 - 1996), Sviluppatore, Responsabile analisi e sviluppo, Solution architect e Application security lead
Pubblicazioni e link
Pubblico progetti Open Source, tutorial di programmazione, un blog di articoli su programmazione e apprendimento.
Senior Solution Architect e Application Security Lead
Mi occupo della parte di analisi che serve per definire qual è l'architettura tecnologica da utilizzare nei progetti, quali sono i processi da seguire, quali procedure il gruppo di sviluppo deve realizzare.
Collaboro con gli altri solution architect dell'azienda all'estero nei progetti internazionali. Coordino, in collaborazione con i PM, le risorse di sviluppo sia italiane che straniere durante lo svolgimento dei progetti supervisionando così in modo più efficace lo sviluppo della componente tecnologica.
Studio nuove tecnologie per capire se possono essere adottate per migliorare i prodotti dell'azienda.
Nell'ambito dell'application security configuro e utilizzo programmi di analisi statica del codice come Black Duck e SonarQube integrandoli nel ciclo di vita del software sviluppato in azienda. Ho seguito il corso di Synopsys "OWASP TOP 10" e i corsi di Jim Manico "Web Security" e "Authentication Controls": i corsi sono stati tenunti in aule virtuali dai rispettivi docenti.
Mentor presso CoderDojo Malpensa
Presto servizio come mentor presso il CoderDojo MXP - Malpensa.
Insegno a utilizzare le nuove tecnologie in modo creativo ai bambini di età compresa tra i 7 e i 14 anni mediante l'uso dell'ambiente di programmazione Scratch e altri strumenti (Python, HTML, CSS, Javascript).
Nell'ambito di questa attività realizzo dei tutorial che raccolgo e organizzo in questo sito: Creare programmando.
Ho partecipato al corso Learning Creative Learning del MIT e sono interessato a tutto ciò che concerne l'apprendimento creativo dei giovani.
Introduzione al coding per ragazzi, insegnanti e adulti in genere
Organizzo su richiesta corsi di introduzione al coding.
I corsi si svolgono secondo le modalità tipiche di un CorderDojo, ovvero cercando di limitare al massimo l'insegnamento frontale e puntando soprattutto su un approccio pratico al coding in cui i partecipanti provano il più presto possibile a sviluppare qualcosa di personale.
Nei corsi il fine non è unicamente lo studio dello strumento di sviluppo o del linguaggio di programmazione, bensì attraverso questi si vogliono comunicare i meccanismi che sono alla base del pensiero computazionale, in modo tale che gli alunni possano applicarli a qualunque linguaggio che si troveranno ad affrontare.
Competenze
Utilizzo abitualmente i seguenti linguaggi/tecnologie:
|
|
Ho utilizzato in minor misura i seguenti linguaggi/tecnologie:
|
|
Durante la mia carriera ho svolto i seguenti lavori:
- sviluppo di programmi che si occupano di elaborare la documentazione elettronica in formato XML e SGML e di indicizzarla nel motore di ricerca Solr. I principali linguaggi usati sono Python e C in ambiente Linux;
- sviluppo di applicazioni web la cui parte server è piuttosto varia: ci sono CGI scritte in linguaggio C o in Python, oppure applicativi scritti in Javascript ed eseguiti tramite Node.js; la parte client è realizzata usando le tecniche standard basate su HTML, CSS, Javascript e richieste Ajax per colloquiare con i server;
- sviluppo di procedure per automatizzare la gestione della sala macchine: script Bash, container Docker; amministrazione dei server Linux, con la gestione dei servizi principali: SSH, FTP, NFS, ecc.;
- installazione e configurazione di applicazioni server come, per esempio: Solr, Apache, MySQL;
- analisi dei processi di autenticazione sui siti web aziendali per integrarli tramite un meccanismo di single sign on (SSO);
- analisi dei requisiti business delle applicazioni web per stabilire quali sviluppi sono necessari per realizzarli;
- generazione reportistica tramite strumenti di analisi statica del codice (SAST) per controllare la qualità del software e prevenirne le vulnerabilità
Formazione, carriera e interessi
Esperienze lavorative
Wolters Kluwer Italia
Senior solution architect e Application security lead, 2018 - oggi
Mi occupo della parte di analisi che serve per definire qual è l'architettura tecnologica da utilizzare nei progetti, quali sono i processi da seguire, quali procedure il gruppo di sviluppo deve realizzare. Collaboro con gli altri solution architect dell'azienda all'estero nei progetti internazionali. Coordino, in collaborazione con i PM, le risorse di sviluppo sia italiane che straniere durante lo svolgimento dei progetti supervisionando così in modo più efficace lo sviluppo della componente tecnologica. Studio nuove tecnologie per capire se possono essere adottate per migliorare i prodotti dell'azienda. Gestisco, per la divisione italiana, il progetto sulla sicurezza del software, coordinandomi con le altre strutture internazionali. Alcuni esempi di argomenti di cui mi occupo sono: struttura ed elaborazione dei contenuti XML nei CMS; autenticazione, single sign on (SSO) per i siti online con il protocollo OIDC; analisi dei requisiti delle applicazioni web per stabilire quali web service è necessario sviluppare lato server per supportare lo sviluppo del front end; inserimento di strumenti di analisi statica del codice (SAST) nel ciclo di sviluppo del software per aumentarne la sicurezza e la qualità.
Wolters Kluwer Italia
Responsabile analisi e sviluppo software, 2001 - 2017
Mi occupo di coordinare un gruppo di dieci sviluppatori e altrettanti fornitori che lavorano per realizzare prodotti editoriali online specializzati per clienti professionali come avvocati, commercialisti, consulenti del lavoro ed enti locali. Gestisco le pianificazioni dei progetti che coinvolgono la mia struttura mantenendo le relazioni con le altre strutture aziendali, sia nazionali che straniere. Le attività del gruppo (attività che svolgo anche in prima persona) sono: sviluppo di programmi che si occupano di elaborare la documentazione elettronica in formato XML e SGML e di indicizzarla nel motore di ricerca Solr; sviluppo di backoffice ad uso interno; sviluppo di applicazioni web; sviluppo di procedure per automatizzare la gestione della sala macchine; amministrazione dei server Linux; installazione e configurazione di applicazioni server come il motore di ricerca Solr, il server web Apache, il database MySQL.
Alpha Test
Sviluppatore software, 1997 - 2001
Sviluppo di applicazioni in ambiente Windows utilizzando il linguaggio Delphi di Borland. Le applicazioni erano versioni elettroniche degli eserciziari cartacei a cui erano allegate. Sviluppo, sempre con Delphi, di un'applicazione per la gestione dei concorsi con questionari a risposta multipla acquisiti tramite lettori ottici e scanner.
Formazione
Università degli Studi di Milano
Dottore in Fisica, 1992 - 1996
Interessi
Pianoforte, studio dei linguaggi di programmazione, lettura, cinema, trekking in montagna, matematica, fisica, scacchi, playstation.
Pubblicazioni e link
Contributi Open Source: GitHub
Didattica e tutorial di programmazione: Creare programmando
Pubblicazioni:
Altri profili: