Progetti selezionati

Sistemi che ho costruito e da cui dipendono persone vere

La maggior parte del mio lavoro recente l’ho fatta come senior engineer in Turn.io, una piattaforma WhatsApp usata dall’OMS, da ministeri della salute nazionali e da reti di cliniche per raggiungere milioni di persone. Questi sono sistemi che ho progettato e costruito lì. Nomi dei clienti e dettagli restano riservati.

Real-time

  • Elixir
  • OTP
  • PostgreSQL
  • Kubernetes
  • WhatsApp Cloud API
Servizio correlato →

Un motore di invio massivo per campagne sanitarie nazionali

Contesto Programmi di sanità pubblica dovevano raggiungere milioni di persone su WhatsApp, in fretta, senza subire throttling e senza perdere traccia di chi aveva ricevuto cosa.

  • Ho progettato e costruito il motore di invio ad alto throughput, con rate limiting, backpressure, tracciamento delle consegne e retry.
  • Usato per campagne nazionali di salute pubblica, una delle quali ha raggiunto 14,7 milioni di persone, e per i promemoria nazionali delle vaccinazioni.
  • Elixir e Phoenix su Google Cloud e Kubernetes.

Piattaforma AI

  • Elixir
  • Sandbox Lua
  • Anthropic
  • OpenAI
  • Gemini
  • ElevenLabs
  • RAG
Servizio correlato →

La piattaforma di agenti dietro l’AI su WhatsApp

Contesto Le organizzazioni volevano far girare agenti AI su WhatsApp in sicurezza, collegarli ai propri sistemi e passare la conversazione a un operatore quando serve.

  • Ho progettato e costruito l’harness agentico: l’agent loop con tool use, orchestrazione, guardrail e handover tra agenti e verso operatori umani.
  • Ho collegato il motore di app Lua al blocco Agent, così gli agenti eseguono tool e codice dentro una sandbox. I clienti lo usano per collegare gli agenti a cartelle cliniche e API esterne senza poter rompere la piattaforma.
  • Ho integrato i modelli di Anthropic, OpenAI e Gemini, con RAG sulle knowledge base dei clienti.
  • Ho costruito le chiamate vocali real-time su WhatsApp con i modelli vocali di ElevenLabs e LLM piccoli e veloci, con una latenza abbastanza bassa da rendere la conversazione naturale.

Eval

  • LLM-as-judge
  • OpenTelemetry
  • LangSmith
  • Opik
  • LangWatch
Servizio correlato →

Eval, dalla simulazione alla produzione

Contesto I team che fanno triage clinico dovevano conoscere il tasso di errore dei loro bot prima che li usassero pazienti veri, e continuare a misurarlo dopo il lancio.

  • Ho costruito eval in simulazione multi-turno: un LLM interpreta l’utente a partire da una persona e un obiettivo, parla con il bot vero, e dei giudici LLM valutano la trascrizione rispetto a criteri definiti dal cliente.
  • Ho implementato la raccolta e l’export OpenTelemetry GenAI di tutto il traffico AI, rendendo semplice integrare Comet Opik, LangSmith e LangWatch per le eval online.
  • Ho costruito il ciclo che porta i risultati delle eval nel copilot AI di Turn per la costruzione dei chatbot. Un criterio fallito diventa una modifica concreta al bot, e chi lo costruisce rilancia le eval per verificarla.

AI in sanità

  • Multi-agente
  • Motore di regole
  • RAG
  • Eval in simulazione
  • Integrazione EMR
Servizio correlato →

Agenti AI per il triage e le linee guida cliniche

Contesto Organizzazioni di medicina di base in Africa volevano un’AI che aiutasse pazienti e infermieri senza mai improvvisare consigli medici.

  • Ho condotto la discovery per mappare i percorsi di triage, costruito un dataset di vignette cliniche e progettato un’architettura a due agenti con un motore di regole deterministico per le decisioni ad alto rischio.
  • Ho costruito le eval in simulazione che misurano sensibilità ed errori di omissione.
  • Ho trasformato le linee guida cliniche in un agente che guida gli infermieri nella diagnostica e nel triage e risponde solo sulla base di linee guida validate. È stato testato con 107 infermieri ed è ora in uso nelle cliniche.
  • Ho integrato il sistema con la cartella clinica elettronica di una clinica, in modo che i riepiloghi di accettazione generati dall’AI a partire dalla conversazione WhatsApp finiscano direttamente nella cartella.

Modelli

  • MedGemma
  • llm-compressor
  • FP8
  • vLLM
  • Modal
  • Hugging Face
Servizio correlato →

Un LLM medico self-hosted, pagato a consumo

Contesto Un modello medico open può fare bene quanto i modelli frontier su conversazioni di triage reali, costando meno?

  • Ho confrontato MedGemma con i modelli OpenAI e Claude che i clienti usano in produzione, con eval in simulazione sui loro bot reali invece che con benchmark.
  • Ho quantizzato MedGemma 27B in FP8 con llm-compressor e l’ho pubblicato su Hugging Face, dove viene scaricato centinaia di volte al mese.
  • Ho costruito un deployment vLLM su Modal che scala a zero, con tool calling compatibile OpenAI. Snapshot della memoria GPU e sleep mode di vLLM hanno ridotto i cold start da ~100 s a ~21 s, così i clienti pagano a consumo invece di tenere GPU sempre accese. I risultati guidano ora una policy di routing tra modelli.

Dati

  • PostgreSQL
  • Partizionamento
  • Elasticsearch
  • ILM
Servizio correlato →

PostgreSQL ed Elasticsearch su larga scala

Contesto I dati dei messaggi crescevano di milioni di righe al giorno, e le tabelle e gli indici più grandi stavano diventando il collo di bottiglia.

  • Ho partizionato tabelle PostgreSQL di produzione da oltre 1 TB per recuperare le performance.
  • Ho fatto lo stesso con indici Elasticsearch in produzione, con policy di index lifecycle che spostano i dati più vecchi su storage a freddo.

Piattaforma

  • Elixir
  • Oban Pro
  • Motore di regole
  • Phoenix
Servizio correlato →

Job, pipeline e automazioni

Contesto Una piattaforma in crescita aveva bisogno di job in background affidabili e di un modo per permettere ai clienti di automatizzare i propri flussi.

  • Ho costruito l’infrastruttura di job e pipeline dati di Turn su Oban Pro.
  • Ho costruito un sistema di trigger in stile IFTTT con un motore di regole.
  • Ho parlato a ElixirConf EU 2023 dell’architettura del chatbot builder low-code di Turn.

Engineering

  • Claude Code
  • Skill
  • GitHub
Servizio correlato →

Agentic coding per il team di sviluppo

Contesto I coding agent ripagano solo quando un team impara a usarli bene.

  • Guido l’adozione dell’agentic coding in Turn: ho portato Claude Code al team di sviluppo, gestisco le licenze e aiuto gli sviluppatori a ottenere risultati concreti.
  • Ho scritto le skill di PR review basate su Claude che il team usa sulle proprie pull request.
  • Faccio da mentor AI in ogni edizione degli acceleratori di Turn (con OpenAI nel 2025, con Anthropic ed ElevenLabs nel 2026), aiutando ogni team a progettare il proprio agente, costruire le eval e arrivare a un servizio live.

Prima di Turn.io

  1. 2024

    Engineering Manager, Adoption · n8n

    Durante un periodo sabbatico da Turn ho guidato il team Adoption, il più vicino agli utenti di n8n, responsabile di UX, developer experience e delle funzionalità che guidano l’adozione, incluse le funzionalità AI come l’AI copilot e le integrazioni AI. Sono tornato in Turn perché volevo tornare a costruire e rilasciare insieme ai clienti.

  2. 2019–2020

    Software Engineer · Templafy, Berlino

    TypeScript, React, C# e microservizi su Azure, durante la riscrittura da monolite a microservizi in piena iper-crescita. Ho guidato la frontend guild e costruito il layer di integrazione con servizi terzi. Lì ho imparato a fare pair programming ogni giorno, con clean code ed extreme programming.

  3. 2017–2019

    Software Engineer · Max Planck Institute for Human Development, Berlino

    App per la ricerca, servizi di raccolta dati, analisi e modelli di ML in Python, TypeScript, Node.js e C#.

  4. 2016–2017

    Full Stack Developer · Progresso Srl, Italia

    JavaScript, Node.js, MongoDB e RabbitMQ: un sistema di elaborazione asincrona di job per contenuti video.

Parliamone (si apre in una nuova scheda)