Sviluppo · Da autodidatta

Sto imparando a costruire, partendo dal fondo.

Ho iniziato dal web, ma la strada che mi interessa scende: verso il linguaggio C, verso il sistema operativo, verso l'hardware. Qui trovi i lavori a cui sto lavorando davvero, con i loro tempi veri.

This site is in Italian — but if you'd rather write to me in English, please do.

In costruzione

Il lavoro in corso

Non ho un catalogo di progetti conclusi. Ho tre cantieri aperti che vanno tutti nella stessa direzione, e che porto avanti nei ritagli di tempo tra il lavoro e la famiglia. È il percorso che conta, più dell'arrivo.

StatoIn sviluppo LinguaggioC (C11), GCC A che punto sonoMotore completo: parser, scene, oggetti, inventario, flag di stato, uscite condizionali e dialoghi funzionanti. Sette stanze giocabili, tre finali progettati. 14 test automatici verdi.

Vault 1: First Contact

Avventura testuale a parser

Un'avventura testuale in C, nello spirito dei libri-game e dei giochi da terminale MS-DOS con cui ho conosciuto i computer. Si gioca scrivendo: guarda, prendi, usa, parla. Il cuore non è il combattimento ma il mistero — un rifugio sotterraneo, una versione ufficiale della realtà, e qualcuno che bussa a una porta che non doveva aprirsi.

Tutto il contenuto vive in file di testo separati dal codice, così le stanze e i dialoghi si aggiungono senza ricompilare. L'input e l'output del terminale sono isolati in un modulo a parte, per tenere il nucleo del gioco portabile: l'obiettivo a lungo termine è arrivare a una versione grafica, e più avanti a una build homebrew per console.

Ci lavoro un'ora o due a settimana, senza scadenze. L'ambientazione verrà rivista da cima a fondo prima della pubblicazione.

StatoFase concettuale AmbitoKernel, driver, GUI di basso livello A che punto sonoStudio e lettura di codice altrui. Nessuna riga scritta: prima voglio capire come si parla a una macchina senza intermediari.

Un sistema operativo

Progetto di studio a lungo termine

L'idea è costruire da zero un sistema a finestre ispirato a quelli di fine anni Novanta. Non per nostalgia: perché è l'unico modo che conosco per capire davvero cosa succede sotto: come si comunica con l'hardware, come si gestisce la memoria, come si disegna un'interfaccia quando non c'è nessuna libreria a farlo per te.

L'ispirazione diretta è III-Millennium OS di Alberto Sanfelice, un sistema x86 a 32 bit scritto interamente in C e Assembly, senza dipendenze esterne. Studiarlo è impegnativo — è il lavoro di chi sa già dove sta andando — ma è esattamente il tipo di riferimento che serve per capire come si risolvono certi problemi.

StatoIn pausa AmbitoElettronica, meccanica, software applicato A che punto sonoAccantonato per mancanza di tempo. Tornerà.

Robotica

Un robot assistente, un giorno

L'ultimo gradino della stessa discesa: portare avanti in parallelo le basi di elettronica e meccanica insieme allo sviluppo software, fino a costruire un prototipo di robot assistente. È un obiettivo lontano e ne sono consapevole.

Non conta l'effettiva realizzazione concreta, ma il percorso. L'ho messo in pausa perché il tempo è quello che è, e preferisco portare avanti bene una cosa per volta.

Realizzati

Cose finite e consegnate

Tre lavori conclusi: uno di squadra, uno nato sul posto di lavoro, uno per un cliente vero. Diversi per contesto, ma tutti mi hanno insegnato più della somma delle loro righe di codice.

StatoConsegnato · 2025 StackNext.js, TypeScript, TailwindCSS, API OpenAI Il mio ruoloPrompt engineering degli agenti, integrazione API, contributo alle macchine a stati, presentazione dei progressi

Recipe Chatbot

Progetto di squadra · Summer camp

Faccio parte da anni della community TomorrowDevs, ed è lì che è nata l'occasione: un summer camp a squadre, con più team in gara e una lista di requisiti minimi da rispettare. Questo progetto è il risultato.

Un chatbot di cucina che non ti dà mai la ricetta. Un cameriere virtuale accoglie l'utente, propone tre chef a caso, e dopo un'attesa volutamente esasperante parte una chat in cui il cuoco risponde con ingredienti sbagliati e divagazioni assurde. È una satira dell'attesa telefonica travestita da app di ricette.

Sotto la comicità c'è il problema di design interessante: far funzionare un'esperienza costruita per frustrare, senza che l'utente se ne vada. L'architettura usa tre agenti distinti — il cameriere, il cuoco, e un terzo agente tecnico che restituisce solo JSON per estrarre dati strutturati dalle risposte in linguaggio naturale — governati da macchine a stati esplicite.

Eravamo in sei sulla carta, di fatto abbiamo lavorato in tre o quattro, e i ruoli iniziali si sono ridisegnati strada facendo. La parte che non si vede nei commit è quella che mi ha insegnato di più: le videocall di allineamento tra noi e il confronto con gli altri team del contest.

StatoDal 2024, in uso quotidiano StrumentiGoogle Sheets, Apps Script, IMPORTRANGE Il mio ruoloIdea, progettazione, sviluppo e manutenzione

Cruscotto partenze

Automazione interna · Logistica

Nato da una domanda semplice che mi è stata fatta al lavoro: si possono unire dati che stanno su file diversi? La risposta ovvia sarebbe stata farlo a mano. Invece mi sono accorto che le estrazioni dal gestionale di magazzino esistevano già, generate per altri scopi, e che si potevano riusare come sorgente.

Il risultato è un foglio che incrocia il planning delle partenze con la collocazione delle ribalte, la quantità effettivamente preparata e lo spazio disponibile sul mezzo. Non si limita a mostrare i dati: segnala le eccedenze prima che diventino un problema in banchina.

La parte interessante è stata dividere i compiti. Apps Script genera il foglio del giorno e ci scrive dentro le formule; da quel momento in poi il foglio vive da solo e ricalcola in autonomia. Prima andava aggiornato a mano ogni settimana, con copia e incolla tra file diversi.

È in uso tutti i giorni, ha bisogno di poca manutenzione — e sono l'unico che sa metterci le mani. Questo è il motivo per cui, da allora, documento tutto quello che scrivo.

StatoOnline dal 2019 StackHTML, CSS, JavaScript, poi PHP Il mio ruoloProgettazione, sviluppo, manutenzione

sp81coach.com

Sito vetrina per un coach professionista

Il mio primo lavoro commissionato. Paolo, un ex collega diventato coach professionista, aveva bisogno di una vetrina che raccontasse il suo percorso di formazione e presentasse la sua proposta a possibili clienti — nello sport, nel lavoro, nella crescita personale.

Nato in HTML, CSS e JavaScript, è poi passato a PHP: non l'ho consegnato e dimenticato, l'ho fatto crescere. È online da anni e Paolo lo usa ancora.

Guardarlo oggi mi dà sensazioni contrastanti. Sono orgoglioso perché è stato il primo, e sono critico perché so di averlo fatto in fretta con metà delle conoscenze che ho adesso. Ma un sito che serve ancora il suo scopo dopo sette anni ha fatto il suo mestiere, e questo mi basta.

Chi sono

Fuori dallo schermo

I computer mi affascinano da quando ero bambino. È per questo che ho scelto di diplomarmi Ragioniere Programmatore — informatica a scuola, Pascal, Visual Basic — e poi la vita ha preso un'altra direzione.

Alcune circostanze, alcune scelte sbagliate, e mi sono ritrovato a lavorare in logistica. Non è una storia drammatica: è successo, ed è quello che faccio ancora oggi. Ma la strada che avevo studiato per percorrere è rimasta lì, in attesa, e a un certo punto ho smesso di considerarla chiusa.

La spinta decisiva è arrivata ascoltando Storie di Developers, il podcast di Simone Torrisi: in particolare le puntate con Salvatore Sanfilippo e Matteo Collina. Due percorsi opposti — chi ha imparato da solo e chi è cresciuto dentro l'industria — che raccontavano la stessa cosa: che la strada non è mai una sola, e che non è detto sia troppo tardi.

Ho ricominciato sul serio durante la quarantena, studiando HTML, CSS e JavaScript da solo. Da lì è arrivato il primo lavoro vero, poi il linguaggio C — di cui ormai sono innamorato — e la voglia di scendere sempre più vicino alla macchina. Che poi è la stessa curiosità di quando ero bambino, solo con gli strumenti per soddisfarla.

La cosa che so fare meglio non è scrivere codice: è imparare qualcosa e poi spiegarlo a qualcun altro. Documento tutto quello che faccio, non per disciplina astratta, ma perché scrivere come funziona una cosa è il modo in cui verifico di averla capita — e perché così qualcun altro può riprenderla da dove l'ho lasciata.

Di giornoLogistica. Il turno finisce, il resto comincia.
A casaLa mia famiglia, il giardino, le cose che vanno curate ogni giorno.
Ai fornelliCucino quando capita, senza pretese. Provo, sbaglio, riprovo — come con tutto il resto.
Con la voceCanto. E vorrei riprendere in mano la chitarra.
C Linux · Manjaro HTML · CSS JavaScript TypeScript Next.js PHP Git Neovim Prompt engineering

Alle superiori: Pascal, Visual Basic. Tutto il resto è venuto dopo, da solo.

Tre strati sovrapposti: una finestra di browser, un terminale, un microchip — la discesa dal web verso l'hardware
Dal browser al terminale al silicio

Contatti

Scrivimi.

Mi interessano le occasioni per imparare qualcosa che non so ancora fare, i progetti da portare avanti insieme, e il confronto con chi ha voglia di spiegare e di ascoltare. Se qualcosa qui ti ha incuriosito, fammelo sapere.