work

Selected work

I work from the first ambiguous requirement to the production system and the relationship around it. Each case is told through context, customer constraints, the decision that mattered, and the result. Enterprise details are limited to what can be shared publicly.

enterprise ai

Forward-deployed and platform delivery

capitole → adp · client engagement · barcelona · mar 2025–jul 2026

Embedded in an enterprise Core AI Platform team

Through Capitole, I worked inside ADP’s Core AI Platform team, building shared capabilities for product teams and business units across two regions. The stakeholders were internal rather than external customers, but the operating model was similar: understand each group’s requirements, agree on an integration and evaluation contract, support rollout, and remain accountable after launch.

customer constraints GDPR data residency, strict hallucination controls, heterogeneous enterprise content, multiple environments, and different integration patterns across more than ten business units.

result Production RAG, offline content generation, retrieval, evaluation, and orchestration capabilities adopted across 5+ teams. Reusable platform patterns reduced delivery of new use cases from months to weeks.

python · fastapi · aws · databricks · opensearch · pydantic · jenkins · docker

adp · paisy · production · 20+ german-market clients

FAQ generation over a 5,000-page payroll wiki

German-market payroll clients were generating a steady stream of support tickets whose answers already existed, buried in a 5,000+ page internal wiki. I owned the design of the answer pipeline end to end and worked with domain experts on the quality bar.

key decision Generate the FAQ corpus offline in batch instead of retrieving live at query time. Query latency drops to near zero, LLM cost becomes bounded and predictable, and every answer can pass a release gate before a client sees it: an LLM-as-judge harness plus subject-matter-expert review.

result In production for 20+ enterprise clients; technical support tickets down 35%. The evaluation harness became the standing release gate for the pipeline.

python · fastapi · aws lambda · databricks · llm-as-judge · sme eval gates

adp · workforcenow · production

Hybrid retrieval over 15,000+ heterogeneous documents

A retrieval system over an HR corpus of 15,000+ documents in five formats: Markdown, PDF, DOCX, HTML, and DITA. The queries that matter are full of policy names, form IDs, and exact terminology, which is precisely where semantic search underperforms.

key decision OpenSearch hybrid search over a pure vector store, because keyword-heavy HR queries need lexical precision as much as semantic recall. On top: a reranking stage and a confidence-based evaluation gate that suppresses low-quality answers rather than shipping them.

result Reranking improved retrieval quality by +15% on an SME-annotated golden set. The eval contract became the alignment tool between engineering, product, and platform teams.

python · opensearch · hybrid search · reranking · confidence gating

neodata → catania airport · project lead · customer-facing delivery

Media intelligence for critical infrastructure

The initial request was broad: give airport leadership a clearer view of its digital reputation, emerging media narratives, and potential threat signals. I owned the project from discovery to an approved MVP and met monthly with the airport’s CFO and CTO to turn that request into priorities, acceptance criteria, demos, and roadmap decisions.

key decision Build a nightly intelligence pipeline rather than a generic real-time chatbot: ingest press and social data, index three years of daily news and 50,000+ social interactions, combine hybrid and vector retrieval, and surface trends and signals through a C-suite dashboard.

result Approved MVP delivered while leading and mentoring two junior engineers. The technical system and the stakeholder cadence evolved together rather than as separate workstreams.

python · llms · osint · data ingestion · embeddings · hybrid search · executive dashboards

neodata · ai consulting startup · 20+ enterprise opportunities

Forward-deployed AI before I had the title

I joined sales in first customer meetings, helped clarify what the client actually needed, assessed feasibility, shaped the proposal, and then guided the implementation. After rollout, I remained involved in support, roadmap discussions, and the technical relationship.

working model The job moved continuously between business context and code: narrowing ambiguous use cases, selecting the right approach, explaining trade-offs to non-technical stakeholders, leading implementation, and adjusting the system when real users changed the problem.

result Technical proposals for 20+ enterprise clients and end-to-end ownership across document intelligence, multimodal retrieval, content generation, and media intelligence. Led two junior engineers and shipped four projects from pilot to production.

discovery · feasibility · solution architecture · applied ai · rollout · post-sales

public builds

Systems I can show

personal · open source · 2026

Lucia, a bilingual HR screening agent

Delivery-driver candidates weren’t answering recruiter phone calls: 60% never picked up. Lucia reframes screening as an async chat in Spanish or English: it collects seven required fields, validates answers, and routes each candidate to a human recruiter with a triage label and a structured summary.

key decision Deterministic code owns the conversation flow and the triage; the LLM’s only job is phrasing. Vague answers cannot erase earlier data, triage is computed in code rather than by the model, and the agent never makes a hiring decision—by design, for GDPR Article 22 and the EU AI Act.

result Public code plus a full write-up of the reasoning. GitHub ↗ · the essay ↗

python · claude · streamlit · sqlite · pytest · ruff

hackapizza · datapizza × ibm · milan · jan 2025 · top 10% of 600+

Graph RAG for a cross-referenced legal corpus

Laws and regulations cite each other constantly, and ordinary RAG falls apart on those cross-references: the answer to one question can live in three documents. My team built a Graph RAG architecture over a Neo4j AuraDB knowledge graph.

key decision A two-step pipeline first induces the graph schema, then populates concrete nodes and relationships per document. Relationships are also built across documents, and an agentic loop chooses between hybrid search and text-to-Cypher.

demo Watch the presentation on YouTube ↗

python · neo4j auradb · langchain · langgraph · pgvector

hackathons

Teaching and organising

hackatania i & ii · university of catania · organiser · tech lead

Two editions of a GenAI hackathon

With Neodata and the University of Catania I organised and technically led two editions of Hackatania: defined the technical challenges, ran the opening workshops—LLMs and RAG in the first edition, agents and multi-agent systems in the second—and supervised teams through the weekend.

links Hackatania I on Devpost ↗ · Hackatania II on Devpost ↗

open source

Contributions

Concrete maintenance work rather than “contributing to the future”: bug fixes, compatibility, type coverage, import hygiene, and documentation.

more systems

Additional delivery