# Héctor Moyano Vélez — AI Engineer

> This file is written for AI agents and recruiters’ assistants. It holds the same facts as hectormoyanovelez.com in plain Markdown, plus a career timeline and a glossary. Figures marked “estimate” are estimates; the rest are measured or come from the project.

## Summary

I build products with AI agents, from idea to production, and the system that makes what those agents write trustworthy. Data and BI roles from January 2019 to February 2026; independent since then.

I come from data and BI (2019–2026). Today I run several AI engines that write and cross-review code on my own products, and I used them on a freelance client project.

- **Looking for:** an AI Engineer role in Madrid
- **Current situation:** Since leaving StrateBI in February 2026 I have worked independently: I build two products of my own (Respondo and Gaela), and from April to September 2026 I did one freelance project for a firm of procuradores (Spanish court representatives). I am looking for an AI Engineer role in Madrid.
- **Based in:** Madrid, Spain
- **Languages:** Spanish (native) · English (B2)
- **Education:** Double degree in Financial and Actuarial Economics + Economics · Universidad Rey Juan Carlos, 2014–2022; 42 Urduliz · programming school
- **Email:** hector@hectormoyanovelez.com
- **Website:** https://hectormoyanovelez.com
- **X:** https://x.com/hector14mv
- **GitHub:** https://github.com/hector14mv
- **LinkedIn:** https://linkedin.com/in/hector14mv
- **Other language:** https://hectormoyanovelez.com/perfil.md

## Career timeline (newest first)

- **Apr 2026 – Sept 2026 · Freelance software engineer · Self-employed** — work for a firm of procuradores. Designed and built, alone, a bot that files court documents on four regional e-justice portals. 10,175 filings in production.
- **Feb 2026 – present · Founder and sole developer · Respondo**. SaaS that turns service businesses’ missed calls into WhatsApp conversations, appointments and invoices.
- **Dec 2025 – present · Founder and sole developer · Gaela**. AI study platform for Spanish civil-service exams, anchored to the literal text of the law.
- **May 2024 – Feb 2026 · Senior Data Analyst · StrateBI (data consultancy; my employer)** — work for a major automotive finance company, a StrateBI client. Designed and led an 11-agent AI system that migrates Pentaho to dbt and Snowflake. ETL with AWS Glue, Snowflake, dbt and Power BI. Ran an internal workshop on AI-assisted development.
- **Jun 2023 – May 2024 · BI Consultant · Minsait**. Power BI/DAX models and dashboards and SQL for a corporate client.
- **Nov 2022 – Jun 2023 · Analytics Manager · JogoTech**. ETL with Pentaho, data models and dashboards.
- **Apr 2022 – Nov 2022 · Power BI Consultant · Sopra Steria**. Data modelling, dashboards and Power Automate automation.
- **Jan 2019 – Apr 2022 · Data Analyst · PFS Group**. Financial modelling, forecasting and KPIs for management.

## Selected work

### 1. Respondo

When a service business can’t pick up the phone, Respondo messages the customer on WhatsApp, books the appointment and sends the invoice.

- **My role:** Founder and sole developer
- **Terms:** My own product, since February 2026
- **Status:** In production, pre-launch: onboarding the first businesses
- **Link:** https://respondo.es
- **Page:** https://hectormoyanovelez.com/proyectos/respondo

**What it is.** A platform for service businesses that turns every missed call into a WhatsApp conversation that ends in an appointment and an invoice. The AI converses; appointments are confirmed by the system, never by the model.

**Problem.** Small businesses lose customers on every call they miss. Replying by hand, booking and invoicing eat hours they don’t have. And from 2027 invoices must comply with VERI*FACTU.

**Solution.** The missed call becomes a WhatsApp conversation from the business’s own number, on the official WhatsApp API, approved by Meta. A multi-tenant platform with each business isolated in the database, and its own VERI*FACTU invoicing engine, in validation with the tax agency.

**How it’s built:**
- LLM conversation engine: one call per turn with structured output. The model never confirms an appointment: confirmations are deterministic templates tied to a real booking.
- Multi-tenant with 102 row-level security policies in PostgreSQL, 92 cross-tenant tests and a build gate that fails if a server action trusts a tenant sent by the browser.
- Fault-tolerant messaging: an outbox with at-least-once delivery, deduplication, retries for up to 12 h, a dead-letter queue and WhatsApp-to-SMS fallback. 6 webhooks with signature verification.
- Invoicing designed for VERI*FACTU (Spain’s tax-agency invoicing rules): append-only records with a hash chain per business. GDPR built in: export, deletion and consent records.
- Over 6,700 unit test cases, 47 Playwright end-to-end tests and suites against a throwaway PostgreSQL in CI.

**Results:**
- Meta: WhatsApp API approved
- 657: merged PRs
- 525 of 825: commits co-authored with AI

**Stack:** Next.js, TypeScript, Supabase, PostgreSQL, WhatsApp Cloud API, Twilio, Stripe, Claude API

### 2. Court e-filing bot

A robot that files legal documents on four regions’ e-justice portals for a firm of procuradores, the professionals who file court papers in Spain.

- **My role:** Sole engineer: design, build, deployment and support
- **Terms:** Freelance project for a firm of procuradores, April–September 2026
- **Status:** In production since April 2026
- **Page:** https://hectormoyanovelez.com/proyectos/bot-procuradores

**What it is.** In Spain, a procurador is the legal professional who represents a client before the court and files their documents. This firm did it by hand on the e-justice portals of the Basque Country, Aragon, Cantabria and Navarre. The bot takes each case from the firm’s queue, fills in the portal, signs the documents with the firm’s certificate, submits them and stores the portal’s official receipt in the firm’s ERP. The procurador keeps control and responsibility.

**Problem.** The firm filed thousands of documents by hand on several regions’ e-justice portals: find the case, fill in the forms, sign, submit, keep the receipt. 15–20 minutes each, repetitive and error-prone.

**Solution.** The bot automates the whole portal flow, electronic signature included. Key decision: it only counts a filing as done once it holds the portal’s own receipt.

**How it’s built:**
- Browser automation (Playwright over the Chrome DevTools Protocol) on a legacy ASP.NET portal: certificate login, expired-session recovery and 6 procedure types.
- PAdES electronic signature with a non-exportable certificate from the Windows certificate store.
- Fault-tolerant engine: a job queue with atomic claims, 9 terminal states, an error classifier, a per-case circuit breaker, per-portal health checks and a kill switch.
- Integration with the firm’s ERP: 9,158 receipts uploaded and linked automatically. An operator dashboard for 20 users, with a human in the loop because the law requires it.
- About 77,000 lines of Python and 1,431 tests. 99.6 % of queued cases end up filed: most unattended, the rest with an operator’s help.

**Results:**
- 10,175: filings since April 2026
- 9,159: fully unattended, with the portal’s receipt
- 2,300–3,000 h: saved (estimate)

**Stack:** Python, Playwright, FastAPI, SQLite, PAdES signing

### 3. Gaela

AI-assisted study for Spain’s prison-service civil-service exams (oposiciones), anchored to the literal text of the law in the official state gazette (BOE).

- **My role:** Founder and sole developer
- **Terms:** My own product, since December 2025 (a side project until I left StrateBI in February 2026)
- **Status:** Private web beta in production since June 2026
- **Link:** https://app.gaela.app
- **Page:** https://hectormoyanovelez.com/proyectos/gaela

**What it is.** An AI study tool for exam candidates. Every question and explanation rests on the current BOE article, with its source.

**Problem.** In a public exam, a question with the wrong legal answer is worse than no question. AI generators invent with confidence, and the candidate can’t tell.

**Solution.** Every question is anchored to the current BOE article. An AI chain generates, reviews, explains, audits and adjudicates it. Key decision: model confidence never counts as proof that a question is correct.

**How it’s built:**
- An agent chain (generator → reviewer → explainer) over semantic RAG on its own legal database synced from the BOE, with mandatory grounding in the article and prompt caching.
- An LLM-as-judge auditor for legal completeness, with quarantine and human adjudication: 95 % precision, validated against a gold set from an expert candidate.
- Ingestion of 16 official exams (2008–2025) with a PDF parser and OCR with Claude Vision.
- React Native/Expo app (iOS, Android and web) with an async FastAPI backend. Security: row-level security, verified JWTs, rate limiting and fail-closed prompt-injection gates. About 2,100 tests.

**Results:**
- 22: BOE laws
- 5,386: articles
- 1,300+: official exam questions

**Stack:** React Native, Expo, FastAPI, Supabase, Claude API, RAG

### 4. Pentaho to dbt

An 11-agent AI system that migrates Pentaho transformations into dbt models on Snowflake.

- **My role:** Designed and led the system
- **Terms:** As an employee of StrateBI (a data consultancy), on a project for its client, a major automotive finance company. May 2024 – February 2026. I never worked for the client directly
- **Status:** Delivered
- **Page:** https://hectormoyanovelez.com/proyectos/migracion-pentaho-dbt

**What it is.** At StrateBI I designed and led a system of specialised agents, chained with Claude Code, that migrates a client’s legacy Pentaho data warehouse to dbt and Snowflake.

**Problem.** Migrating a Pentaho data warehouse to dbt is manual, one transformation at a time: translate the SQL, resolve dependencies, validate. Weeks per batch.

**Solution.** Agents for analysis, dependencies, SQL translation, generation, validation and docs. Key decision: the system stops and asks at critical points (unknown variables, custom database functions, missing tables) and learns from every migration through a lessons log.

**How it’s built:**
- 11 specialised agents on Claude Code: analysis, dependencies, SQL translation, generation, validation and documentation.
- 85+ dbt models generated and over 10,000 lines of Oracle SQL translated.

**Results:**
- 11: specialised agents
- 85+: dbt models (per the project)
- Weeks → hours: per migration (estimate)

**Stack:** Claude Code, Pentaho, dbt, Snowflake, SQL, Multi-agent systems

### Also

- **Agents hackathon · Causa Prima × Nova** — The Bazaar (Madrid, October 2026): autonomous agents negotiating and trading against 17 other teams’ agents. With Thiago Amaro: 4th of 18 teams and 1st in agent negotiation. https://github.com/thiagoamaro91/negotiation-agent
- **Premios Goya 2026** — A site to follow the Goya season at Sala Berlanga: programme, films watched and predictions. https://premios-goya-2026.vercel.app

## How I work

I direct AI agents from two model families. None of them approves its own work, and review grows with the damage a change can do.

### The four steps

1. **Specify.** Every night the plan is written. In the morning tickets are grouped, each with its damage tier (T0, T1, T2) and its engine. I only answer the product questions.
2. **Implement.** An agent implements from a preflight sheet, with tests that are first seen failing. When it is done it freezes the commit and stops: it never reviews its own work.
3. **Review.** The other model family reviews the frozen commit. A T2 change gets three layers: a gate, a model that tries to break the conclusions, and a final reviewer.
4. **Merge.** Only the approver merges, and only the exact SHA it reviewed. No review, no merge: silence never approves.

### One real ticket (replay of 28 September 2026)

RESP-800 · PR #621 · T2 · SMS consent and opt-out in Respondo

- night · **Planner** (Plan): The day’s briefing with the open tickets.
- **Conductor** (Plan): Tier T2: it touches message sending and consent.
- **Astra** (Finding): Attacks the plan’s tiers, criteria and routing before work starts.
- **Héctor** (Decides): A 30-second plan, five questions at most. OK.
- **Implementer** (Build): Preflight: surface, gates, tests and Héctor’s two-minute check.
- **CI** (Build): Every test is seen red under a mutation before it goes in. CI green.
- **Implementer** (Build): Ready for review: the commit is frozen and the session stops.
- 11:36 · **Gate · Codex** (Gate): Round 1: clean.
- 11:42 · **Astra** (Finding): P1 with an executed repro: if a customer opted back in and texted STOP again, that opt-out was lost.
- 11:50 · **Conductor** (Build): A fresh fix session, with a closed list of file and line.
- 12:18 · **Héctor** (Decides): The migration grows, so it comes back to me. I decide at 12:24.
- 12:40 · **Gate · Codex** (Gate): Round 2 on the new frozen commit.
- 13:40 · **Héctor** (Decides): OK to the production migration.
- 13:41 · **Fable** (Approves): APPROVE and merge on the exact SHA. The opt-out is no longer lost.

### Measured (engine diary, 18–30 September 2026)

- **126** PRs with a damage tier and cross-family review, 18–30 September 2026
- **311** real findings caught before merge in those PRs
- **22** PRs merged on 28 September, with 37 findings

## Training I give

- **Development teams.** AI-assisted development with Claude Code and multi-agent systems. The AI implements and an independent session reviews before merging. (525 of 825 Respondo commits co-authored with AI)
- **Business teams.** AI adoption workshops to spot inefficiencies and build solutions that stick. (In-house AI-assisted development workshop for the technical team and management at StrateBI)

## Tools

Claude Code, Claude Agent SDK, RAG, Multi-agent systems, Next.js, React Native, TypeScript, FastAPI, Python, Playwright, PostgreSQL, Supabase, Stripe, dbt, Snowflake, AWS Glue, Power BI

## Glossary

- **Procurador:** In Spain, the legal professional who represents a party before the courts and files its documents. A “firm of procuradores” files court papers for lawyers and their clients.
- **Oposiciones:** Competitive exams for Spanish civil-service jobs. Gaela prepares candidates for the prison-service exams (Instituciones Penitenciarias).
- **BOE:** Boletín Oficial del Estado, Spain’s official state gazette, where laws are published.
- **VERI*FACTU / AEAT:** VERI*FACTU is the Spanish tax agency’s (AEAT) standard for tamper-evident invoicing software, mandatory for businesses from 2027.
- **StrateBI:** A Spanish data and BI consultancy. Héctor’s employer from May 2024 to February 2026.
- **Claude Opus, Sonnet, Fable:** AI models by Anthropic, used here as coding agents and reviewers.
- **Codex, Astra:** AI models by OpenAI (Astra is Codex’s top model), used here as an independent reviewer from a different model family.
- **T0 / T1 / T2:** Damage tiers Héctor gives every code change: T0 cosmetic, T1 product logic, T2 money, auth, data or messaging. Higher tiers get more review.
- **Gate:** An automatic review by a model from the other family on the exact frozen commit; nothing merges without it.

## Contact

Want to collaborate or have an idea? hector@hectormoyanovelez.com
