Articoli
Appunti dalla produzione
Articoli lunghi e pratici sui sistemi che costruisco: messaggistica real-time, WhatsApp, Postgres ed Elasticsearch su larga scala, agenti AI e come valutarli.
Testare un agent di triage medico con LangWatch Scenario e pytest
Come testo un agent AI di triage medico con LangWatch Scenario: utente simulato, criteri per il judge, conversazioni libere o a copione, in pytest e in CI.
Costruire un receiver di webhook affidabile per la WhatsApp Cloud API su larga scala
Webhook della WhatsApp Cloud API su larga scala: verifica della firma sul body grezzo, risposta 200 immediata, deduplica, ordine per contatto e media.
Backpressure in Elixir: inviare milioni di messaggi WhatsApp senza crollare
Progettare un motore di invio massivo WhatsApp in Elixir: pipeline Broadway guidate dalla domanda, token bucket per numero, retry con jitter e stati in batch.
Come partizionare una tabella PostgreSQL da 1 TB senza downtime: il metodo della default partition
Partiziona una tabella Postgres da 1 TB senza downtime: agganciala come DEFAULT partition, copia lo storico con job Oban e fai lo swap in una transazione breve.
Il partitioning di PostgreSQL in pratica: chiavi di partizione, pruning, index e retention
Come si comporta davvero il partitioning di PostgreSQL: scelta della chiave, pruning verificato con EXPLAIN, index, vincoli, retention e le insidie di Ecto.
Far eseguire codice agli agenti AI in sicurezza in Elixir con tv-labs/lua
Come tv-labs/lua dà agli agenti AI un runtime Lua in sandbox dentro Elixir: funzioni sicure esposte, limiti di esecuzione e integrazione nel loop dell’agente.
Servire MedGemma 27B su Modal: FP8, sleep mode di vLLM e cold start da 21 secondi
Self-hosting di MedGemma 27B con vLLM su Modal: API compatibile OpenAI con scale-to-zero, quantizzazione FP8, GPU snapshot, cold start da 21 s e tool calling.
Progettare agenti AI che sanno quando passare la mano: ad altri agenti, alle regole, alle persone
Un’architettura pratica per agenti AI con handover sicuro: passaggi tra agenti, motore di regole deterministico per decisioni critiche, tool in sandbox ed eval.
Eval con simulazioni: far interpretare l’utente a un LLM per testare il tuo chatbot prima degli utenti reali
Come costruire eval con simulazioni per chatbot LLM: utenti simulati con persona, rubriche LLM-as-judge, tassi di errore nei flussi critici e ciclo di feedback.
CPUSim: il simulatore di CPU che ho costruito per Zanichelli
Oggi mi è tornato in mente CPUSim, il simulatore di CPU nel browser creato per Zanichelli nel 2020 per mostrare agli studenti come gira il codice macchina.
Keeping custom state across the Überauth OAuth flow in Elixir
Überauth now uses the OAuth state parameter for CSRF protection, so custom state gets overwritten. Keep it in the session between request and callback instead.