An open toolcase with every tool in its own cut-out, and one oddly shaped empty slot in the middle with a blank paper tag tied to it

Where Should the Library Stop?

My data profiler gives the same untouched file a lower score on New Year’s Day. I found that by using it as a dependency for the first time. On the glue a real pipeline needs, and the line between what a library should do and what it should leave to the caller.

October 20, 2026 · 11 min · 2296 words · Andrea Bozzo
Two friends preparing their Fantacalcio auction together during a summer holiday

I Built a Model for Fantacalcio. The Useful Part Is When It Says No.

I started with Milan in Championship Manager 03/04, went through an almost perfect auction and a season shaped by injuries, then built Fantabuddy on holiday: a system that turns player lists, history and APIs into an auditable auction report.

August 20, 2026 · 9 min · 1820 words · Andrea Bozzo
dbt Core v2: 77 Rust crates, 18 Python files, no Python runtime

dbt rewrote itself in Rust. The speed is the boring part.

I opened a bug report against dbt and found a codebase nobody had told me about: 77 Rust crates where the Python used to be. This is what the rewrite is actually for, why the marketing undersells it, and what I broke loose while poking at it — two fixes, both for bugs that never printed an error.

August 4, 2026 · 16 min · 3408 words · Andrea Bozzo