Adrián VázquezReliable AI systems,from architectureto production.

> AI Engineer_

Sole AI engineer at CSR Online, owning three systems in production end to end.

I build RAG systems, agents and MCP servers that answer from company data and hold up in production: validated outputs, evals and tracing. Runs on cloud models, or fully self-hosted when the data can't leave the company.

  • Barcelona, Spain
  • Spanish · Catalan · English
VAZQUEZDEV.PRO
ONLINE
Adrián Vázquez - AI Engineer.

//CAREER PATH_

From full-stack engineering foundations to production AI systems.

Full Stack Eng.2023
Backend & Data2024
AI EngineerNOW
Mar 2026↓PRESENT
CURRENT FOCUS

AI Engineer

CSR Online·Mar 2026 - Present
  • Sole engineer in the AI department: end-to-end ownership of the 3 AI systems already in production, reporting directly to the co-founder and CTO.
  • Design and implementation of multi-agent systems and self-hosted enterprise RAG architectures.
  • Full lifecycle ownership: infrastructure, vector database, backend, and production deployment.
Oct 2025↓PRESENT
ACTIVE

Independent AI Engineer

VazquezDev·Oct 2025 - Present

VazquezDev isn't a job, it's my personal brand and AI lab. The place where I build and ship real systems.

After laying the full-stack foundation, I made the leap into AI engineering. I design and deploy RAG systems, multi-agent workflows and MCP servers with end-to-end ownership, from architecture to production deployment. ReportAI and Qdrant-MCP come from here.

The bridge between the full-stack engineer I was and the AI engineer I am. Ongoing, in parallel to my full-time role at CSR Online.

Sep 2023↓Sep 2025
COMPLETED

Independent Full Stack Product Engineer

VazquezDev·Sep 2023 - Sep 2025

The stage where I went from writing code to engineering complete digital products.

End-to-end design and delivery of 6 business-management SaaS products for family, friends and acquaintances running their own businesses: from architecture and database to frontend, deployment, and production.

The foundation that now lets me build AI systems from end to end.

Sep 2024↓Jul 2025
COMPLETED

Backend & Data Infrastructure Engineer (Internship)

Senyum SL·Sep 2024 - Jul 2025
  • Databases (SQL Server): administration; advanced T-SQL (queries, views, indexes, stored procedures); performance tuning.
  • C#/.NET (a3ERP): data automations and integrations.
  • Power BI: data modeling and dashboard reporting.
  • Distributed Systems: Backend infrastructure maintenance for high availability.

//SELECTED PROJECTS_

Two systems I built and shipped, each with a live demo or open code. Expand a step to see the problem, the decisions and the results.

[AGT-01]
Live · Deployed
Personal project·LangGraph Agent · Voice-to-Text · Multi-Tenant
01

ReportAI

An agent that turns a voice note into the finished corporate report already filled into each client's own Word template — meeting minutes, a visit report — and delivers it on the chat channel they already use, no new app to install.

01SITUATIONThe Problem

The Problem:

Most AI meeting-note agents assume the meeting is a scheduled video call with a bot sitting inside it. That structurally misses the most common case: an in-person visit or a phone call, recapped afterwards from a phone, with no laptop and no meeting link. And almost none of them let a company upload its own Word template — they return their own generic summary instead of the actual document the company already uses.

  • Existing meeting-note agents require a bot inside the video call — useless for in-person visits or phone calls
  • No tool fills a company's own Word template; they all return a generic summary format instead
  • Documenting a visit still meant transcribing by hand and formatting the report afterwards
02OBJECTIVEThe Objective

Objective:

Build an agent that runs on the chat platform each team already has open, with no new app or integration, and that's faithful to each client's real document — not a generic summary:

  • Each client defines their own template and document types from an admin panel — no code change to onboard
  • Structured extraction with schema validation, not just generated text: a wrong date or a dropped agreement in a formal report is a real failure
  • Mandatory human review before sending, approved or corrected by replying to the message itself
03SOLUTIONThe Tech

Stack & highlights:

  • Backend: FastAPI (Python)
  • Agent orchestration: LangGraph
  • Extraction: Claude — structured output / tool-calling with schema validation
  • Speech: Groq Whisper
  • Database: Self-hosted PostgreSQL
  • Documents: docxtpl + self-hosted Gotenberg — Word template → final document
  • Admin panel: Vue/Nuxt · Vuetify · Tailwind
  • Infra: Docker Compose · Traefik
  • Full chain: transcribe → extract with schema validation → fill the client's own template → deliver on the same channel
04RESULTSThe Impact

Outcome:

A field rep finishes a visit and records a 90-second voice note from the car. Minutes later, the report lands in the right inbox — filled into the company's exact template, not a generic AI summary:

  • Time saved on every report: voice note in, finished report out in minutes, with no manual transcribing or formatting — live in production, processing 10 to 15 reports a month
  • Faithful to the real document: extraction is validated against each template's schema before generating it — a wrong date or a dropped agreement doesn't slip through
  • Genuinely multi-tenant architecture: onboarding a new client means configuring a template, document types, and a channel from the admin panel — no code touched
  • Own eval suite guarding extraction quality on every change
  • Live public demo at reportai.vazquezlabs.com
[MCP-01]
Published · PyPI & Docker
Open source·MCP Server · Vector Search · Qdrant
02

Qdrant-MCP

A Model Context Protocol server that exposes the full Qdrant vector database API as tools, letting any MCP-compatible LLM client manage collections, run every search mode, and operate production Qdrant deployments — not just store and find.

01SITUATIONThe Problem

The Problem:

Existing MCP servers for Qdrant only expose narrow store/find tools. An LLM client that actually needs to operate a production vector database — creating collections, running hybrid search, taking snapshots, watching telemetry — has no standardized way to do it.

  • Narrow store/find tools can't manage collection lifecycle, payloads, or snapshots
  • No standard MCP interface covered Qdrant's full API surface
  • Teams end up scripting one-off admin tasks instead of letting the LLM operate the database
02OBJECTIVEThe Objective

Objective:

Build an MCP server that gives LLM clients complete, safe access to Qdrant's API — without baking in embedding generation, so it stays composable with any embedding pipeline:

  • Full collection and point lifecycle: create, update, delete, snapshot
  • Every search mode: hybrid (RRF/DBSF fusion), grouped, recommend, discover
  • Safe by default for production use — no accidental data loss
03SOLUTIONThe Tech

Stack & highlights:

  • Core: Python 3.12+ · qdrant-client SDK · Pydantic · tenacity
  • Transport: stdio (local) or streamable-http (network)
  • Distribution: PyPI package · Docker image · Claude Desktop bundle · official MCP Registry
  • Quality: 554 tests (pytest, incl. integration against a real Qdrant) · ruff · mypy · pre-commit hooks
  • 56 tools in 6 opt-in toolsets: collections, search, payload, admin (aliases, server-side copy), snapshots, and observability
  • Read-only guard mode that removes every writing tool from the registry, and refusal of empty filters that would wipe a collection
  • Compact tool schemas (~44 KB instead of ~150 KB) and a per-call result cap, so it stays light on the model's context
04RESULTSThe Impact

Outcome:

Published on PyPI and Docker, with a bilingual technical site where every number comes from the repo: an explorer of all 56 tools and reproducible scenarios recorded against a real Qdrant — install and start managing Qdrant from any MCP client in minutes:

  • Interactive docs at mcp-qdrant.vazquezlabs.com, with a .mcp.json generator to install it
  • Ships via PyPI, Docker, or a Claude Desktop bundle
  • MIT-licensed and open source on GitHub
STACK INITIALIZED

//TECHNOLOGY STACK_

The stack I use to ship production AI systems. No hype, no filler.

LAY-0108 TOOLS
The Engine

Infrastructure & Backend

Where business logic, data persistence and deployment live.

FastAPIHigh-speed Python APIs for AI systems and internal tools
Node.jsJavaScript runtime for APIs and backend services
DockerContainerized deployment for stability and reproducibility
PostgreSQLRelational databases for production workloads
RedisSemantic caching and queue management
TraefikEdge router and reverse proxy for microservices
PrometheusMetrics and observability for production deployments
VPS (Servers)Linux server operations, networking, SSL, deployments and monitoring
LAY-0207 TOOLS
The Brain

AI & Orchestration

The reasoning and workflow layer behind RAG systems, agents, and automations.

PythonThe native language of AI infrastructure
LangGraph / LangChainGraph architecture for agents with memory and conditional logic
ChromaDB / Qdrant / pgvectorSelf-hosted vector memory for RAG and semantic retrieval
MCP ProtocolThe open standard for exposing tools to any compatible LLM client
LLMs — Claude · OpenAI · GeminiStrategic selection based on latency, cost, and required privacy level
PydanticSchema validation for structured LLM outputs and tool-calling
LangfuseTracing and evaluation for LLM agents
How I build: Retrieval → LLM reasoning → Validation & evals → Human approval
LAY-0304 TOOLS
The Interface

Human-Agent Interface

Modern interfaces for humans to supervise and control AI.

JavaScript / TypeScriptType-safe frontend development
Vue 3 / VuetifyEnterprise UI with SSR optimization and SEO-ready architecture
NuxtSSR, routing, and production-ready Vue apps
Tailwind CSSClean and responsive interface design
> DATA_FLOW:[ INFRASTRUCTURE ]→[ AI CORE ]←[ INTERFACE ]_
PROFILE

//About Me_

VazquezDev OS v2.4.0-pro
Online
BOOT_LOG
[ OK ]Initializing VazquezDev OS v2.4.0-pro...
[ OK ]Loading AI_Engineer_Kernel...
[ OK ]Establishing secure bridge to Barcelona-HQ...
[ OK ]Mounting /mnt/knowledge/private_rag...
[ OK ]System status: OPTIMAL
01020304050607080910111213141516171819202122232425262728293031323334
adri@vazquezdev:~$whoami
Adrián Vázquez//AI Engineer//EU Citizen — no visa sponsorship required
adri@vazquezdev:~$cat mission.md
I'm Adrián Vázquez, an AI Engineer based in Barcelona, Spain. I build RAG pipelines, autonomous agents and MCP servers and take them all the way to production. Right now I'm the sole AI engineer at CSR Online, and I'm looking for an engineering team where I can keep shipping that kind of work alongside strong peers.
adri@vazquezdev:~$./how-i-work.sh
EVALS[OK] Reliable by design — schema-validated LLM outputs and an eval suite guarding quality on every change
TRACE[OK] Observable — LLM tracing with Langfuse, Prometheus metrics on deployed services
SAFE[OK] Safe by default — human approval before anything irreversible, read-only guard modes, strict input validation
E2E[OK] End-to-end — vector database, backend, orchestration and UI, delivered with agile practices and CI/CD
adri@vazquezdev:~$cat looking-for.md
AI Engineer roles (applied AI / LLM engineering): building RAG, agents and MCP integrations that reach production. Full-time, based in Barcelona and open to remote work or relocation, on a team that cares about evals and reliability.
#For an interactive deep dive into my project history and stack, ask Cortex AI. brain.vazquezdev.pro
adri@vazquezdev:~$█