Un semenzaio con 24 celle di piantine irregolari, alcune vuote e una piegata, accanto a una bustina di semi che mostra una pianta impossibilmente perfetta

Un anno, 24 articoli: cosa ha retto e cosa no

Il mio primo articolo annunciava una rivoluzione. Quelli recenti raccontano soprattutto cosa non ha funzionato. Uno sguardo indietro, in parole semplici, su un anno di scrittura sugli strumenti per i dati, pensato per chi non ne ha mai usato nessuno.

9 novembre 2026 · 11 minuti · 2171 parole · Andrea Bozzo
Una valigetta degli attrezzi aperta, ogni attrezzo nel suo incavo, e al centro un incavo vuoto dalla forma strana con un cartellino di carta bianco legato sopra

Dove deve fermarsi la libreria?

Il mio profiler di dati darà allo stesso file, mai toccato, un punteggio più basso a Capodanno. L’ho scoperto usandolo per la prima volta come dipendenza. Sul codice di raccordo che serve a una pipeline vera, e sul confine tra cosa deve fare una libreria e cosa deve lasciare a chi la usa.

20 ottobre 2026 · 12 minuti · 2390 parole · Andrea Bozzo
Lo scrittore A controlla epoch 1 sulla base A, la transazione viene ribasata sulla base B, e la premessa stabilita dal controllo si perde prima che il commit atterri

Ho provato a mettere la data quality dentro il commit. Mi ha fermato un pub(crate).

Un esperimento di falsificazione con una kill list scritta prima e un risultato negativo. Delta ha un commit idempotente fatto apposta; iceberg-rust ribasa la transazione su una base che il chiamante non ha mai controllato, quindi uno scrittore esterno non può rendere condizionale un commit. Il test di concorrenza verde era un falso positivo — 0 round su 40 hanno davvero gareggiato — e solo un failpoint ha fatto uscire il duplicato.

4 settembre 2026 · 16 minuti · 3358 parole · Andrea Bozzo
Due amici preparano insieme l'asta del Fantacalcio durante una vacanza estiva

Ho costruito un modello per il Fantacalcio. La parte utile è quando dice di no.

Sono partito dal Milan di Scudetto 03/04, sono passato per un’asta quasi perfetta e una stagione decisa dagli infortuni, e in vacanza ho costruito Fantabuddy: un sistema che trasforma listoni, storico e API in un report d’asta verificabile.

20 agosto 2026 · 9 minuti · 1800 parole · Andrea Bozzo
dbt Core v2: 77 crate Rust, 18 file Python, nessun runtime Python

dbt si è riscritto in Rust. La velocità è la parte noiosa.

Ho aperto una segnalazione di bug su dbt e ho trovato una codebase di cui nessuno mi aveva parlato: 77 crate Rust dove prima c’era il Python. Questo è a cosa serve davvero la riscrittura, perché il marketing la sottovende, e cosa ho smosso frugandoci dentro — due fix, entrambi per bug che non hanno mai stampato un errore.

4 agosto 2026 · 17 minuti · 3593 parole · Andrea Bozzo
Zerobus Ingest, Rust producer, Unity Catalog sink

Zerobus Ingest: quando Unity Catalog diventa il sink

Nel post dlt+dbt il contratto era uno schema Unity Catalog. Con Zerobus Ingest ho spostato la stessa domanda al bordo producer: quando il sink è già una tabella Delta governata, serve davvero un bus nel mezzo?

5 luglio 2026 · 11 minuti · 2281 parole · Andrea Bozzo
dlt + dbt su un solo Unity Catalog

dlt + dbt su un Solo Unity Catalog (e Perché Non Sono 'Due DLT')

Ingestion Python-native con dlt (dlthub), trasformazione SQL con dbt e un singolo schema Unity Catalog come contratto tra i due. Note dal cablarli insieme su un workspace Databricks reale — inclusa la collisione di nomi che mi ha morso nel codice vero.

22 giugno 2026 · 9 minuti · 1835 parole · Andrea Bozzo
FinOps per Piattaforme Dati AI 2026

FinOps per Piattaforme Dati AI nel 2026: Databricks vs AWS-Native vs Iceberg DIY sul Tuo Warehouse

Tre stack lakehouse per aggiungere AI/ML e streaming sopra un warehouse esistente, confrontati con una lente FinOps: DBU, DPU, TB scansionati, S3 GB-mese ed egress, applicati a workload reali con i prezzi 2026.

7 maggio 2026 · 20 minuti · 4189 parole · Andrea Bozzo
Lance Format e LanceDB

Lance Format e LanceDB: Storage Columnar per l'Era degli Embedding

Lance è un formato di storage columnar costruito per i workload di machine learning — accesso casuale veloce, indicizzazione vettoriale nativa e integrazione Arrow zero-copy. Questo articolo esplora il formato stesso, come LanceDB ci costruisce sopra, e come l’ho collegato a uno stream NATS live per costruire un layer di ricerca semantica su eventi in tempo reale.

7 aprile 2026 · 8 minuti · 1616 parole · Andrea Bozzo

Guardrail per il ML Tabulare: la prospettiva di un Data Engineer su Data Leakage, Poisoning e Pipeline Fragili

La maggior parte dei fallimenti nelle pipeline ML non nasce da bug esotici del modello, ma da problemi di dati mai codificati come controlli. In questo articolo vediamo come costruire guardrail con pandas, Apache DataFusion, contratti dati e Arrow C Data Interface.

23 marzo 2026 · 13 minuti · 2673 parole · Andrea Bozzo