Co-founder & Lead AI Engineer at BlueOption · leading a 10+ person team across three countries
The system decides — and the rules never live in the prompt.
That sentence is the thread running through everything below. A guardrail written into an instruction is a request; a guardrail written into the architecture is a guarantee. I build the second kind.
🤖 Agentic systems — single and multi-agent architectures, tool use, orchestration, function-calling pipelines against databases, webhooks and ticketing. I design and operate MCP servers daily, exposing product capabilities to third-party AI platforms with auditing and access control.
📞 Voice AI — real-time phone agents (ASR/TTS) that act during the call: extracting unstructured data mid-conversation and reporting into backend systems. Deployed for collaborators of major carriers (Orange Spain).
📚 RAG over enterprise knowledge — embeddings, vector search, knowledge graphs, grounding and structured outputs. Retrieval is the easy half; proving the answer came from the source is the work.
📏 Evaluation as a discipline — offline datasets, LLM-as-judge, regression suites, A/B testing. Token, latency and cost budgets are design constraints, not afterthoughts.
⚙️ MLOps & cloud — AWS, GCP, Kubernetes, CI/CD, observability. Sovereign deployments: serving large models on private GPU infrastructure when data cannot leave the building.
⚖️ Responsible AI — GDPR and EU AI Act by design, PII anonymisation, guardrails against hallucination and prompt injection.
A handful of side projects, built in my own time. They are execution tests more than products — an excuse to take one idea far enough to find out whether it survives contact with real data.
What they tend to have in common:
- the model's output is treated as a proposal, never as an authority
- the rules live in the architecture, not in the prompt
- every published number ships with the command that reproduces it, the red ones included
- documentation in Spanish; code, identifiers and error messages in English
| citebound | A tutor over Spanish traffic law where the model never writes the legal reference. Code resolves it against what retrieval actually returned, and the quoted fragment is checked character by character against the source. |
| data-warden | NL→SQL over a lakehouse. Queries are parsed to an AST and must clear an allowlist guard; cost is estimated from Iceberg manifests without reading a row. Work in progress. |
The model is the CPU. Everything around it is the harness — the tools it can reach, the instructions for each task, the layers that re-examine a request before it answers.
Since GPT-3.5 the engine has barely changed: predict the next token, again and again. The leap of the last few years didn't come from the brain. It came from the harness.
Agent = Model + Harness. Most of the engineering worth doing lives on the right-hand side.
Telecommunications. I validated mobile devices inside O2 / Telefónica's environment in Munich, optimised live 5G networks during Spain's nationwide rollout in Málaga, and designed embedded systems in Prague.
That background is why I treat AI systems like production infrastructure — measured, monitored and accountable. A model that works in a notebook and a model that works at 3 a.m. on someone else's traffic are not the same model.
Languages
AI & data
Platform