Full-stack engineer building AI systems you can measure.

I've shipped Node.js and NestJS backends in production since 2020. Now I build AI agents, RAG and evals in TypeScript and Python, and take each one through the whole workflow: tests, evals, CI, deploy, monitoring, logging and tracing.

  • Full-Stack & AI Engineer
  • Manta, Ecuador
  • UTC-5, US working hours
Portrait of Ariel Bailón
Ariel BailónOpen to remote roles

How I work

I build with AI coding agents every day, on top of AI Blueprint. The plan, specs and history live as files in the repo, and nothing ships without passing its spec.

  1. 1

    Spec

    /feature

    The agent drafts the spec. I set the scope, the rules and what "done" means, then approve it.

  2. 2

    Build

    /implement

    The agent implements the approved spec step by step. I review every diff.

  3. 3

    Prove

    /check

    Tests, type checks and lint run against the spec. Nothing moves on red.

  4. 4

    Land

    /complete

    The spec is archived next to the code. Every bug gets a fix record with its cause.

31 feature specs and 15 fix records archived across three public repos.

Look for blueprint/history/ in any of them.

Selected work

AI systems I designed and built end to end, and the production backends that came before them.

Live on AWSTypeScript, Oct 2026

OrderOps Agent

A store support agent that answers policy questions, looks up orders and proposes refunds an operator approves.

  • An agent graph with 4 routes (policies, orders, refunds, out of scope). Refund rules live in code, not the prompt, and an operator approves each refund.
  • Live on AWS with GitHub Actions CI/CD: every merge deploys automatically, with a smoke test and automatic rollback.
  • Every request is traced to a live dashboard and Langfuse: about $0.012 per conversation, with p50/p95 latency and failover rate.
  • 41/41 eval cases passing, 13 of them adversarial, as a regression gate on every pull request. 457 automated tests.
  • NestJS
  • LangGraph.js
  • LangChain.js
  • PostgreSQL + pgvector
  • Prisma
  • Zod
  • GitHub Actions
  • AWS
  • Langfuse
  • Next.js
How it's built

Why rules live in code

The model turns the message into a structured request; 4 plain functions decide if it's allowed. A prompt can be talked out of a rule. A function can't.

Why the agent only sees your orders

The customer's login token travels with every tool call, so authorization stays where it already lived.

Models and memory

Anthropic, OpenAI and AWS Bedrock behind one interface, with automatic failover and prompt caching. The agent remembers each conversation and useful facts about each customer, in PostgreSQL.

Deploy

One AWS EC2 instance behind Caddy with automatic TLS and an IAM instance role, with no access keys on the server. Pull requests run lint, typecheck, unit and e2e tests, a migration check and keyless evals. Each merge deploys through OIDC, ECR images tagged by commit, SSM, a smoke test and automatic rollback.

Why one EC2 instance

It's a demo. ECS Fargate with RDS and a load balancer costs several times more; it's the documented next step to scale.

Observability

Every request stores its route, tools, provider, failover, tokens, cost and latency in PostgreSQL, plus Langfuse spans per graph node. The demo shows each decision with its cost and latency, and a dashboard with p50/p95 latency, cost per conversation and failover rate. The $0.012 figure comes from a demo-sized load of 40 requests.

Evals

41 cases: 20 normal, 8 out of scope and 13 adversarial, all passing on the latest run. Every pull request runs the keyless checks and fails if the pass rate drops more than 10%.

Guards on the public demo

Per-IP and per-customer rate limits (30 chat messages a minute per customer), a $1/day model-spend cap with a fixed reply past it, and a nightly data reset.

Personal projectPython, Sep 2026

EDGAR Analyst

Answers questions about public companies from their SEC filings and earnings calls, citing the exact filing and section. Built in one week.

  • Section-aware chunking over 10-K and 10-Q filings and earnings-call transcripts, about 2,400 cited chunks.
  • Refuses before calling the model when the evidence is weak, so off-topic questions cost nothing.
  • 22 hand-labeled eval pairs scored for citation accuracy and answer relevance.
  • About 2 seconds and $0.002 per answer, logged per query. 122 automated tests.
  • Python
  • Anthropic API
  • ChromaDB
  • sentence-transformers
  • Pydantic
  • pytest
What the eval showed

Citation accuracy is 27%. The model isn't inventing things: the passage the eval expects often isn't among the five retrieved, so it's a retrieval problem, not a generation one. Next I'll test a larger top-k, a stronger embedding model and section titles inside the embedded text.

In progressPython, 2026

CodeSage phase 2 of 4

Answers questions about a code repository, cited to the file and line.

  • A FastAPI service that streams structured code explanations over SSE.
  • Retries with backoff, cost tracked per request, and three versioned prompts with a changelog.
  • Code split by function and class using Python's syntax tree, docs split by section, stored in pgvector.
  • Next: hybrid search, re-ranking and file-and-line citations.
  • Python
  • FastAPI
  • Pydantic
  • PostgreSQL + pgvector
Production, at UltahostUnited States, 2025

Hosting platform APIs

Backend APIs for a web hosting company, built with NestJS and TypeScript.

  • Cut API response times by about 35% through query optimization and caching.
  • Built and maintained REST and GraphQL services integrated with internal and third-party systems.
  • Worked on a microservices architecture on MySQL for high-availability systems.
  • NestJS
  • TypeScript
  • GraphQL
  • MySQL
Production, at Mushroomsoft-ITQuito, 2023 to 2024

Micro-frontend platform backend

Backend services for a micro-frontend platform built with NestJS and Angular.

  • Cut load times by about 25% with PostgreSQL indexing and query optimization.
  • Designed data models in PostgreSQL and MongoDB for a system with 50,000+ active records.
  • Containerized the apps with Docker, ending configuration incidents across the team.
  • Led weekly code reviews and set quality standards for a team of five.
  • NestJS
  • Angular
  • PostgreSQL
  • MongoDB
  • Docker

Experience

  • Full-Stack & AI Engineer IndependentJul 2026 – present

    Building AI systems end to end: OrderOps Agent, EDGAR Analyst and CodeSage.

  • Backend Developer Ultahost, United StatesAug 2025 – Oct 2025

    NestJS and GraphQL APIs; response times down about 35%.

  • Full Stack Developer Mushroomsoft-IT, QuitoJun 2023 – Jan 2024

    Micro-frontend backend; load times down about 25%; led code reviews.

  • Full Stack Developer Zgameslatam, MantaJun 2022 – Jun 2023

    REST APIs for an internal ERP handling about 200 transactions a day; average latency down about 20% through NGINX tuning; deployments on AWS and DigitalOcean.

  • Junior Full Stack Developer Consulti, GuayaquilSep 2020 – Jun 2022

    APIs in Node.js and Spring Boot for an e-commerce platform with 5,000+ products; deploy time down about 40% with Docker and NGINX.

Stack

AI and LLMsClaude, OpenAI, AWS Bedrock, structured outputs, prompt caching
Agents and RAGLangGraph, LangChain, pgvector, ChromaDB, sentence-transformers
QualityEvals, LLM-as-judge, pytest, Vitest, Langfuse, GitHub Actions CI/CD
BackendPython, FastAPI, Node.js, NestJS, TypeScript, REST, GraphQL
DataPostgreSQL, Prisma, MongoDB, MySQL, Redis
FrontendReact, Next.js, Angular
InfraDocker, AWS (EC2, ECR, SSM, IAM, CloudWatch, S3), Caddy, DigitalOcean, NGINX
LanguagesSpanish (native), English (C1)

Open to remote full-stack and AI engineering roles

Need an engineer who can take AI from prototype to production?

I build the agent, the retrieval, the API around it and the evals that prove it works. Tell me what you're shipping and I'll reply with how I'd approach it.

Write to me