$ whoami
Samuel Ponce Luna
Full-Stack & AI Engineer en WorkFactory · Las Palmas de Gran Canaria
Full stack con foco en agentes IA en producción. En WorkFactory diseñé y construí el agente IA de un SaaS hotelero, desde el runtime y sus tools hasta la bandeja donde el equipo revisa lo que propone. Antes hice prácticas Erasmus en C-Link (Londres), con pipelines LLM para el sector de la construcción.
// experiencia
WorkFactory · SaaS de gestión hotelera y alquiler vacacional · jun. 2026 – actualidad
Diseñé y construí desde cero el agente IA que atiende a huéspedes y equipo en la plataforma. También trabajé en todo lo que lo rodea: backend en Node/TypeScript, frontend en Angular y canales de mensajería y voz.
- ›Agente en Python con pydantic-ai y FastAPI, trazado con Langfuse y activado organización a organización con kill switch
- ›Modo revisión de punta a punta: la IA propone la respuesta o la acción y una persona la aprueba, la corrige o la descarta
- ›Consultas SQL del agente en solo lectura: un parser que solo deja pasar un SELECT y vistas filtradas por organización
- ›Bandeja de conversaciones en Angular que junta WhatsApp, email y voz por reserva, con resincronización en tiempo real tras cada reconexión
- ›Modo voz del panel en Go, con WebRTC del navegador a un modelo de voz en tiempo real
- ›Corrección de vulnerabilidades detectadas en auditorías de seguridad
ver case studyocultar case study· Asistente IA
problema
El asistente habla con huéspedes reales sobre reservas, cobros y estancias. Si se inventa una hora de entrada o da por hecha una acción que no ha hecho, el problema es del hotel.
arquitectura
Los mensajes llegan por un gateway de canales a un servicio en FastAPI con el agente y estado persistente en Postgres. El agente llama a tools según el rol del usuario. Cuando la organización trabaja en modo revisión, la respuesta o la acción se queda aparcada como propuesta hasta que alguien del equipo la aprueba desde el panel.
decisiones
- ›El agente solo puede afirmar datos que haya devuelto una tool. Si la respuesta no cuadra con lo verificado, falla cerrado y no la envía.
- ›El modelo no ve todas las tools: primero se filtran por rol y después se eligen por similitud semántica, con un script de evaluación para medir la selección.
- ›Cada acción lleva un identificador idempotente y pasa por una máquina de estados con registro, así que un reintento no la ejecuta dos veces.
- ›Lo activé organización a organización, con porcentaje por conversación y kill switch, para poder volver atrás sin desplegar.
C-Link · Londres, Reino Unido · ene. 2026 – may. 2026
Prácticas Erasmus en el departamento de IA de una startup de construcción con herramientas de análisis de licitaciones mediante LLMs.
- ›Sistema de contabilidad de coste y consumo de tokens LLM por tipo de análisis
- ›Instrumentación de New Relic APM en producción: trazas distribuidas, métricas de rendimiento y alertas, junto a Sentry para errores
- ›Refactor de la capa de ingesta: referencias externas a ficheros, procesamiento multi-documento y enriquecimiento de addendums
- ›Corrección de condición de carrera en workers Celery mediante late acknowledgement; unificación del manejo de errores en la capa de tareas
ver case studyocultar case study· Módulo BOQ
problema
Analizar Bills of Quantities en licitaciones de construcción para convertir documentación compleja en señales accionables dentro del flujo de C-Link.
arquitectura
Esquema de base de datos y migraciones → API REST privada para integración con Nexus → pipeline Celery con múltiples modos de ejecución → suite de tests de integración.
decisiones
- ›Múltiples modos de ejecución para adaptar el análisis al estado y volumen de cada tender.
- ›Contabilidad de tokens y coste LLM por tipo de análisis para medir consumo real.
- ›Late ACK en Celery para evitar race conditions y conservar consistencia ante fallos de workers.
Astican · Las Palmas de Gran Canaria · 2025
Prácticas laborales como desarrollador web en empresa del sector naval.
- ›Desarrollo y mantenimiento de aplicaciones internas para empresa del sector naval
- ›Nuevas funcionalidades sobre stack existente y resolución de deuda técnica en módulos legacy
// paquetes npm
Cola de trabajos en memoria para Node.js: cero dependencias en producción, TypeScript completo, concurrencia, prioridades, reintentos con backoff exponencial y cancelación por ID.
Scheduler cron/intervalo en memoria para Node.js: cero dependencias, TypeScript completo, persistencia pluggable, deteccion de jobs perdidos y cero drift gracias a recalculo monotono del proximo tick.
// proyectos
Herramienta web para distribuir variables de entorno entre equipos de forma segura: cifrado en tránsito, TTL por secreto y acceso de un solo uso.
Transferencia de archivos P2P en tiempo real entre dispositivos móvil y escritorio mediante WebSockets. Sin registro, sin instalación.
Plataforma fullstack para competición europea de robótica: autenticación JWT, API REST documentada con Swagger y panel de administración.
Gestor de inventario con autenticación y base de datos en tiempo real.
// stack
// formación
IES El Rincón · Las Palmas de Gran Canaria
Erasmus en C-Link, Londres
// idiomas
// contacto