Dopo alcune esperienze di programmazione in assembler Z80 e Basic, approda nel mondo della programmazione dei PC fin dai primi 8088 con l'assembler. Dopo alcune parentesi su linguaggi minori, inizia a programmare in C e in C++ quando era ancora un linguaggio sperimentale.
Programma in assembler durante tutta l'evoluzione del DOS dalla versione 1 alla 6 e poi in C per Windows 16 bit. È verso la fine di questo periodo che approfondisce molte tematiche sulla grafica per aver co-sviluppato il porting di un videogame da Amiga a DOS in assembler misto C e successivamente a sviluppare il software di acquisizione di uno dei primi digitalizzatori per PC su porta parallela bidirezionale.
La presentazione europea di NT 3.1 a Brussels nel 1992 lo porta subito a programmare già dalle prime alfa delle Win32 con la prima versione di C++ a 32 bit e le MFC. Partecipa a numerosissimi beta testing su molte versioni di Windows e soprattutto sui linguaggi dai compilatori MASM 6, C/C++7 fino alle più recenti versioni di Visual Studio.
Matura l'esperienza dell'era COM con l'uso di Visual Studio e le ATL per C++ che gli fanno dimenticare subito le MFC anche per le interfacce utente. Alcuni progetti lo avvicinano alla programmazione con il Device Driver Kit con il quale sviluppa alcuni driver per Win9x e NT/Win2000.
Entra a contatto con la programmazione per il web con Visual Interdev e ASP. Visti i limitati strumenti a disposizione all'epoca, si focalizza soprattutto su ISAPI filter e Activex Server Component sviluppati in C++. Nel febbraio 2000 scrive l'articolo Scambio dati in applicazioni distribuite: ADO o XML? pubblicato su Computer Programming, ISSN 1123-8526. Entusiasta della programmazione OOP, entra subito in sintonia con il framework.net fin dalla beta 1 di Visual Studio .NET 2002 utilizzando C#, VB.NET e IL.
È docente di tecnologie di programmazione fin dal 1992 e da diversi anni di linguaggi come C/C++/VB7/C#/VB.NET. È internal auditor per le normative ISO 9001:2000 dal 31 Luglio 2001.
Nel corso degli anni, il lavoro e la passione per l'elettronica digitale lo porta ad occuparsi di progettazione e programmazione in assembler di microcontroller con cui ancora oggi sviluppa. Sulle basi dell'elettronica è coautore del libro "Elettronica Applicata" (ISBN 88-86017-04-9), usato per diversi anni come libro di testo dell'omonimo corso nella facoltà di Ingegneria Elettronica di Genova.
Attualmente si occupa di progettazione, programmazione e consulenza nell'ambito dell'automazione di ufficio e industriale.