Chi sono
Sono uno sviluppatore full-stack con oltre 20 anni di codice alle spalle. Ho attraversato in prima persona quasi tutte le rivoluzioni che hanno cambiato il mestiere — dal web dei primi anni 2000 fino all'AI di oggi — e continuo a farlo per la stessa identica ragione: la passione per il momento in cui un'idea diventa codice che gira.
Il frontend, una vita intera
Ho iniziato con JavaScript puro quando ogni cosa andava scritta a mano: gestione del DOM senza librerie, AJAX con XMLHttpRequest, layout tenuti insieme con float, clearfix e una pazienza infinita. Poi è arrivato jQuery e tutto è sembrato magico improvvisamente — selettori CSS-like, animazioni in due righe, plugin per ogni cosa. Era una piccola rivoluzione.
Dopo jQuery ho lavorato a lungo con Kendo UI: griglie con server paging, scheduler, dashboard complete che al tempo sembravano fantascienza— fare in due settimane quello che con HTML+CSS+JS puro avrebbe richiesto mesi. Poi AngularJS, con il suo two-way binding che cambiava il modo di pensare le UI, e subito dopo il salto a Angular 2+ con TypeScript: per la prima volta il frontend aveva un sistema di tipi serio, dependency injection, RxJS, e un'architettura enterprise vera.
Negli ultimi anni mi muovo soprattutto in React e Next.js (App Router, Server Components, Server Actions, ISR, streaming con Suspense): è il modo in cui costruisco gran parte delle UI moderne oggi. Ho vissuto in diretta il passaggio da JavaScript a TypeScript — all'inizio scettico, oggi non torno indietro: i tipi sono il miglior commento che il codice possa avere.
E poi il CSS. Chi ha cominciato prima dei framework lo sa: il responsive si scriveva a mano, con media query gestite a uno a uno, hack per Internet Explorer, prefissi vendor per ogni cosa. Niente Tailwind, niente flex, niente grid. Oggi ho un'empatia profonda per chi progetta sistemi di design — perché ricordo benissimo cosa significava costruirli senza strumenti.
Il backend, dal WebForms a Minimal API e gRPC
Sul backend il mio percorso è stato quasi specchio del frontend. Ho iniziato con ASP.NET WebForms (postback, viewstate, controlli server-side: oggi sembra archeologia, ma allora era lo standard enterprise), poi ASP.NET MVC con il modello pulito routing → controller → view, che ha cambiato il modo di scrivere applicazioni web sul mondo .NET.
Da lì il passaggio naturale a Web API per i servizi REST, fino ad arrivare oggi alle Minimal API di .NET — il modo in cui scrivo backend moderni: endpoint composti come funzioni, dependency injection esplicita, filter, validazione, niente più controller ereditati dagli anni 2000. Per servizi ad alte performance e contratti tipizzati uso gRPC, con tutta la chiarezza che dà avere il protocollo definito da uno schema condiviso.
Database: da Access a vector DB
Il primo gestionale che ho consegnato girava su Microsoft Access — un'altra epoca, ma una scuola pratica formidabile su forme normali, indici e query plan. Poi SQL Server per anni: stored procedure, viste indicizzate, piani di esecuzione, transazioni serie. Quando il bisogno è andato verso schemi flessibili e document-oriented sono passato a MongoDB (LINQ provider, UpdateFieldsAsync per update mirati, change streams), e a Redis per cache, code, pub/sub e rate limiting.
Oggi al catalogo si aggiungono i database vettoriali — Qdrant, Chroma, pgvector — per la ricerca semantica e per i RAG. La sfida interessante è la hybrid search: combinare ranking lessicale (BM25) e similarità vettoriale per recuperare i documenti giusti anche quando l'utente usa parole diverse da quelle del corpus.
DevOps: dal server fisico al multi-cloud
Ho passato anni a installare server on-premise — sia Linux (Ubuntu, Debian, RHEL: hardening, firewall, systemd, reverse proxy con Nginx) sia Windows Server (IIS, Active Directory, scheduled task) — e ho visto la transizione al cloud farsi mainstream. Lavoro abitualmente su Azure (App Service, Functions, Container Apps, Cosmos DB), AWS (ECS, Lambda, RDS, S3) e Google Cloud (Cloud Run, Firestore, BigQuery), con pipeline CI/CD su GitHub Actions e Azure DevOps, container Docker sottili e infrastruttura come codice via Terraform quando serve.
Oggi: tutto quello che è AI
La cosa che mi appassiona di più in questo momento è l'AI — e non come marketing, ma come nuovo strato del mestiere di sviluppatore. Dedico la maggior parte del mio tempo a tre fronti, tutti collegati fra loro.
Il primo è il vibe coding: scrivere software con un assistente AI sempre acceso a fianco — Claude Code, GitHub Copilot, Gemini, Ollama in locale. Ma sul serio, non a slogan. Significa progettare skill custom e plugin, costruire server MCP che espongono i sistemi interni come tool dell'agente, configurare guardrail e quality gate per evitare che l'AI faccia danni, definire coding rules che entrano nel processo (i miei base-rules sono il punto di partenza di tutto), e curare strumenti come la llm-wiki per dare all'agente il contesto giusto del progetto invece di farglielo indovinare ogni volta.
Il secondo fronte è l'integrazione AI dentro i software reali: mettere modelli e agenti dentro applicazioni di produzione. Uso gli SDK ufficiali dei maggiori provider (Anthropic, OpenAI, Google, Mistral) ma anche modelli on-premise via Ollama e vLLM quando i dati non possono uscire dal perimetro aziendale. Mi muovo bene fra RAG, knowledge base proprietarie, indici vettoriali e hybrid search per dare ai modelli un contesto solido invece di farli allucinare su risposte plausibili.
Il terzo fronte è l'orchestrazione di agenti: agenti specializzati, ognuno con il suo set di tool, coordinati da un control plane che gestisce policy, escalation umana, audit trail e costi. È qui che l'AI smette di essere un chatbot e diventa un collega digitale capace di chiudere task end-to-end dentro processi aziendali misurabili.
«Una volta si faceva tutto da zero e questo mi ha insegnato come funzionano davvero le cose sotto. Oggi l'AI mi permette di costruire molto più in fretta — ma le decisioni importanti le prendo ancora io, come sempre.»
20+Anni di sviluppo full-stack realeFE → BEDa JS puro a Next.js / da WebForms a Minimal API e gRPCDataAccess · SQL Server · MongoDB · Redis · pgvectorAI-firstVibe coding, MCP, RAG, agenti orchestrati