# Gianluca Mazza — Software Engineer & Fractional CTO > Production AI systems for technical teams and technical founders shipping LLM-backed systems that must survive contact with production: durable state, deterministic recovery, reproducible evals, and cost under control. One technical contact from the operational problem to working software in production. Bilingual personal site (English canonical, Italian mirror). Article links below point to plain-markdown mirrors of the canonical HTML pages. ## Identity - [Site](https://gianlucamazza.it) - [Contact](https://gianlucamazza.it/en/contact) - [GitHub](https://github.com/gianlucamazza) - [LinkedIn](https://linkedin.com/in/gianlucamazza) - [X](https://x.com/gmazza1989) - [ORCID](https://orcid.org/0009-0005-1462-3019) ## Code - [orka](https://github.com/gianlucamazza/orka) - [emotional-memory](https://github.com/gianlucamazza/emotional-memory) - [OpenFatture](https://github.com/gianlucamazza/openfatture) - [reasoning-kernel](https://github.com/gianlucamazza/reasoning-kernel) - [msg2agent](https://github.com/gianlucamazza/msg2agent) - [Case studies](https://gianlucamazza.it/en/projects) - [Research notes](https://gianlucamazza.it/en/research) ## Archived artifacts - [emotional-memory — archived record, DOI 10.5281/zenodo.19972258](https://doi.org/10.5281/zenodo.19972258): published version 0.17.0 - [emotional-memory — benchmark sources](https://github.com/gianlucamazza/emotional-memory/tree/main/benchmarks): reproducible benchmarks ## Articles - [Is Saying an LLM Doesn't Think Like Saying a Calculator Can't Do Numbers?](https://gianlucamazza.it/en/blog/llm-thinking-calculator.md): Where the calculator analogy for LLMs holds and where it breaks: what interpretability, chain-of-thought and philosophy of mind say about thinking. - [Running a Small Language Model on an Xbox Series S](https://gianlucamazza.it/en/blog/slm-on-xbox.md): An engineering report on porting a small language model to an Xbox Series S: what runs at 71 tok/s on the Zen 2 CPU, updated with the measured GPU verdict. - [What Bank-Grade Key Management Teaches You About Agent Eval Harnesses](https://gianlucamazza.it/en/blog/bank-grade-agent-evals.md): Five disciplines from banking security — durable state, deterministic recovery, dual control, and audit trails — applied to LLM agent evaluation. - [Where CrewAI Breaks in Production — and What to Use Instead](https://gianlucamazza.it/en/blog/crewai-multi-agent-production.md): The role abstraction in CrewAI works for demos and struggles under production load. Four specific failure modes and the LangGraph patterns that replaced them. - [State as the API: LangGraph After Three Rewrites](https://gianlucamazza.it/en/blog/langgraph-workflow-orchestration.md): The state schema is the most consequential decision in LangGraph. Three iterations on modeling it, and why channels with reducers are the right primitive. - [RAG in Production: Fix Chunking and Re-Ranking Before Touching Embeddings](https://gianlucamazza.it/en/blog/rag-systems-production.md): Most RAG pipelines fail on chunking or re-ranking before embedding quality. A diagnostic-first framework for finding and fixing the right bottleneck. - [Why Shared State Breaks Multi-Agent Systems Past Three Agents](https://gianlucamazza.it/en/blog/agent-to-agent-communication.md): Shared blackboards work in demos and fail under coordination load — the failure modes of shared state, and why message-passing with a supervisor wins. - [Five Function-Calling Patterns That Survived Production](https://gianlucamazza.it/en/blog/llm-function-calling-patterns.md): Tool use is where LLM systems fail most reliably. A catalog of five patterns that held under production load — and the anti-patterns they replaced. - [Why Autonomous Research Agents Hallucinate — and How a Critic Loop Fixes It](https://gianlucamazza.it/en/blog/autonomous-research-agents.md): Planner-executor agents fail on verifiability. Adding a critic agent with independent source access is the structural fix that survives adversarial queries. ## Pages - [Home](https://gianlucamazza.it/en) - [Services](https://gianlucamazza.it/en/services) - [Systems](https://gianlucamazza.it/en/systems) - [Projects](https://gianlucamazza.it/en/projects) - [Research](https://gianlucamazza.it/en/research) - [Writing](https://gianlucamazza.it/en/writing) - [Architecture](https://gianlucamazza.it/en/architecture) - [Contact](https://gianlucamazza.it/en/contact) - [Multi Agent Systems](https://gianlucamazza.it/en/multi-agent-systems) - [Agent Orchestration](https://gianlucamazza.it/en/agent-orchestration) - [AI Workflow Engines](https://gianlucamazza.it/en/ai-workflow-engines) - [Durable AI Execution](https://gianlucamazza.it/en/durable-ai-execution) - [Memory Architectures](https://gianlucamazza.it/en/memory-architectures) - [MCP Ecosystem](https://gianlucamazza.it/en/mcp-ecosystem) - [Retrieval Infrastructure](https://gianlucamazza.it/en/retrieval-infrastructure) - [Privacy Policy](https://gianlucamazza.it/en/privacy-policy) - [Cookie Policy](https://gianlucamazza.it/en/cookie-policy) ## Pages (IT) - [Home](https://gianlucamazza.it/it) - [Servizi](https://gianlucamazza.it/it/servizi) - [Sistemi](https://gianlucamazza.it/it/sistemi) - [Progetti](https://gianlucamazza.it/it/progetti) - [Ricerca](https://gianlucamazza.it/it/ricerca) - [Scrittura](https://gianlucamazza.it/it/scrittura) - [Architettura](https://gianlucamazza.it/it/architettura) - [Contatti](https://gianlucamazza.it/it/contatti) - [Multi Agent Systems](https://gianlucamazza.it/it/multi-agent-systems) - [Agent Orchestration](https://gianlucamazza.it/it/agent-orchestration) - [AI Workflow Engines](https://gianlucamazza.it/it/ai-workflow-engines) - [Durable AI Execution](https://gianlucamazza.it/it/durable-ai-execution) - [Memory Architectures](https://gianlucamazza.it/it/memory-architectures) - [MCP Ecosystem](https://gianlucamazza.it/it/mcp-ecosystem) - [Retrieval Infrastructure](https://gianlucamazza.it/it/retrieval-infrastructure) - [Privacy Policy](https://gianlucamazza.it/it/privacy-policy) - [Cookie Policy](https://gianlucamazza.it/it/cookie-policy) ## Optional - [Dire che un LLM non pensa è come dire che una calcolatrice non sa fare i numeri?](https://gianlucamazza.it/it/blog/llm-thinking-calculator.md): Dove regge e dove si spezza l'analogia tra LLM e calcolatrice: cosa dicono interpretabilità, chain-of-thought e filosofia della mente su "pensare". - [Far girare uno Small Language Model su Xbox Series S](https://gianlucamazza.it/it/blog/slm-on-xbox.md): Porting di uno SLM su Xbox Series S: 71 tok/s sulla CPU Zen 2, con il verdetto GPU misurato per workload. - [Cosa insegna il key management bancario sugli eval harness per agenti](https://gianlucamazza.it/it/blog/bank-grade-agent-evals.md): Cinque discipline dalla sicurezza bancaria — stato persistente, recovery deterministica, dual control, audit trail — applicate agli agenti LLM. - [Dove CrewAI fallisce in produzione — e cosa usare al suo posto](https://gianlucamazza.it/it/blog/crewai-multi-agent-production.md): L’astrazione dei ruoli in CrewAI regge nelle demo e mostra limiti in produzione: quattro modi di fallimento e i pattern LangGraph che li hanno sostituiti. - [Lo stato è l'API: LangGraph dopo tre riscritture](https://gianlucamazza.it/it/blog/langgraph-workflow-orchestration.md): Lo schema di stato è la decisione più importante in LangGraph. Tre iterazioni su come modellarlo, e perché i canali con reducer sono la primitiva giusta. - [RAG in produzione: correggi chunking e re-ranking prima di toccare gli embedding](https://gianlucamazza.it/it/blog/rag-systems-production.md): Le pipeline RAG falliscono su chunking o re-ranking prima che sugli embedding: un metodo diagnostico per trovare il collo di bottiglia giusto. - [Perché lo stato condiviso compromette i sistemi multi-agente oltre i tre agenti](https://gianlucamazza.it/it/blog/agent-to-agent-communication.md): Le lavagne condivise reggono nelle demo e falliscono sotto carico: i modi di fallimento dello stato condiviso e perché vince il message-passing con supervisor. - [Cinque pattern di function calling che hanno retto in produzione](https://gianlucamazza.it/it/blog/llm-function-calling-patterns.md): L’uso degli strumenti è dove i sistemi LLM falliscono più spesso: cinque pattern che hanno retto in produzione e gli anti-pattern che hanno sostituito. - [Perché gli agenti di ricerca autonomi allucinano — e come un ciclo di critica risolve il problema](https://gianlucamazza.it/it/blog/autonomous-research-agents.md): Gli agenti planner-executor falliscono sulla verificabilità: un critic con accesso diretto alle fonti è la correzione che regge alle query avversarie. - [Full article corpus, single file](https://gianlucamazza.it/llms-full.txt) - [RSS feed](https://gianlucamazza.it/rss.xml) - [Sitemap](https://gianlucamazza.it/sitemap.xml)