Data Science & Management · LUISS Guido Carli, Rome
I build retrieval and machine-learning systems — and I publish the numbers, including the ones that don't flatter me.
Selected work
Review-aware hybrid search over 60K Amazon products — RRF-fused dense + BM25 retrieval in Qdrant, cross-encoder reranking, and schema-enforced LLM summarisation.
A Gemini-based agent that audits public-sector algorithms against the EU AI Act — ingest, evaluate, explain, remediate.
Can stablecoins replace correspondent banking? Four hypotheses over 2020–2025, using the FTX collapse as a structural break — and three came out against the prediction.
The energy, water and carbon cost of a single LLM query, mapped across data centres and grids — with a 184× spread between the lightest and heaviest models.
Reproducing a Jinja2 sandbox escape end to end — template injection to root RCE in a Dockerised target, then verifying the patch rejects the same input.
A week of my own AI usage, self-tracked and rendered as a navigable 3D spatial topography rather than a bar chart.
Built in my own time: a local-first nutrition PWA that measures maintenance calories from your own weigh-ins and logged intake instead of assuming a formula — with the uncertainty on the number shown rather than hidden.
How I work
A number without a baseline is decoration. Every system gets compared against the simpler thing it was meant to beat — sometimes the simpler thing wins, and that is worth knowing early.
DiscoverAI's cross-encoder reranking lowers the headline metric, and the faithfulness audit came in under the threshold I set in advance. Both are in the first paragraph of the report. Work that hides its weak points is harder to trust than work that names them.
Pinned model SHAs, fixed seeds, per-stage validation gates. Same seed and same hardware, same artefacts — otherwise a result is an anecdote.
Toolkit
Education