Terminal

Competenze

Python, Javascript, HTML, CSS, XML, XSLT, Node.js, C, Bash, SQL, Bootstrap, Git, Mercurial, Solr, Apache, MySQL, Linux, Black Duck, SonarQube

Dettagli »

Briefcase

Formazione e carriera

Università degli Studi di Milano (Dottore in Fisica, 1992 - 1996), Sviluppatore, Responsabile analisi e sviluppo, Solution architect e Application security lead

Dettagli »

Globe and books

Pubblicazioni e link

Pubblico progetti Open Source, tutorial di programmazione, un blog di articoli su programmazione e apprendimento.

Dettagli »


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.

Application security

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.

PC and car

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.

Logos

Competenze

Utilizzo abitualmente i seguenti linguaggi/tecnologie:

  • Python;
  • C;
  • Bash (sed, grep, ecc.);
  • Javascript;
  • HTML, CSS;
  • XML, SGML, XSLT;
  • SQL;
  • Solr;
  • JSON;
  • YAML;
  • Node.js;
  • Bootstrap;
  • Mustache;
  • Git;
  • Github;
  • CVS;
  • Mercurial;
  • Apache;
  • MySQL;
  • Scratch;
  • Black Duck;
  • SonarQube.

Ho utilizzato in minor misura i seguenti linguaggi/tecnologie:

  • Java;
  • PHP;
  • Docker;
  • TCL;
  • AWK;
  • Common Lisp;
  • Scheme;
  • Smalltalk.

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:

Lego library

I riconoscimenti per questa bellissima creazione in Lego© vanno a questo sito su cui potete trovare altre immagini.