Sistemas y desarrollo en turismo. Construyo y mantengo la tecnología que hay detrás de la venta de entradas y tours: integraciones con plataformas de reserva, automatización en Salesforce, OCR de documentos, extensiones para el equipo de operaciones e infraestructura.
Systems & software for a tour operator: booking-platform integrations, Salesforce automation, document OCR, internal tooling and infrastructure.
- Integraciones: Regiondo, FareHarbor, Turitop, Ventrata, HubSpot, Google Things To Do, Google Places, OCI Document Understanding.
- Salesforce: Apex (triggers, Queueable, Batch, REST, webhooks OCTO), Custom Metadata, Named Credentials y Visualforce, además de facturación REAV con Holded.
- Backend y herramientas: Node.js/Express, Python, extensiones de Chrome (MV3), PHP/WordPress y PowerShell.
- Infraestructura: Linux, nginx/Caddy, systemd, Docker, Oracle Cloud y AWS, además de backups, VPN y DNS.
Desde 2025 he cerrado más de 130 proyectos internos, de incidencias de un día a sistemas que usan a diario el equipo de operaciones y los clientes.
| Proyecto | Stack | En una línea | |
|---|---|---|---|
| 🎟️ | reserva-checker | Chrome MV3 · Apex REST | Antes de comprar entradas en la web oficial, comprueba contra el CRM que la fecha coincide con la reserva. Funciona en 10 webs con 3 estrategias de adaptador. |
| 📄 | ticket-date-ocr | Node · OCI OCR · Apex | Lee la fecha de visita de las entradas en PDF, en 4 idiomas, y la contrasta con la reserva. Incluye circuit breaker, cola, fallback a la capa de texto y extracción de fechas por etiquetas. |
| 📥 | ticket-delivery-addon | Node · Express · SQLite | Entrega de entradas sin exponer el origen, con tokens de un solo uso y caché. Clona el header y el footer de cualquier web anfitriona. |
| ☁️ | salesforce-booking-ops | Apex | Conciliación diaria entre la plataforma de venta y el CRM, enrutado de incidencias por producto y migración de ficheros. |
| 🗺️ | things-to-do-feed-builder | Node · JS | Editor de feeds para Google Things To Do con validación de la especificación. Arregla una condición de carrera que perdía 49 de cada 50 altas simultáneas. |
| 🛡️ | booking-captcha-gate | WordPress · PHP | Frena las reservas falsas hechas por bots: el widget de reservas solo se entrega tras verificar reCAPTCHA en el servidor. |
| 🧾 | salesforce-reav-invoicing | Apex · Holded API | Facturación en régimen especial de agencias de viajes (IVA solo sobre el margen), con rectificativas y varias empresas emisoras. Corrige bugs de la versión en producción: rectificativas con totales positivos y categorías sobrescritas. |
| 🐍 | booking-catalog-export | Python (stdlib) | Catálogo y tarifas de Regiondo (HMAC) y TuriTop (OAuth) exportados a JSON, CSV y Things To Do, con clasificación multilingüe de tipos de cliente. |
| 🏗️ | systems-case-studies | Infra · Node | 11 casos reales: contingencia en OCI, auditoría de rendimiento, migración SEO, QA de integraciones, red, sala de servidores, Google Tag Gateway y archivado. Incluye 2 herramientas testeadas. |
| ⚙️ | tourism-automation-scripts | PowerShell · Pester | Datos de Google Places para Things To Do, locuciones de audioguías con TTS y reinicio ordenado de servicios. |
| 🎟️ | musement-wordpress-integration | WordPress · PHP · Stripe | Integración de Musement en WordPress: tours, disponibilidad, checkout con Stripe y sincronización con Musement y Salesforce. 28 versiones con sus fechas reales. |
| 🗂️ | obras-sistemas | Salesforce · Node | Código original (sin retocar) de 10 desarrollos internos 2025–2026: lectores de PDF, comparativa de reservas entre plataformas, gestión de colas, DispoWeb… |
| 🏭 | technexuslabs | Next.js · React · SQLite | Web corporativa de Tech Nex (IoT industrial, trazabilidad, i18n es/en/fr) y su backoffice: proyectos e hitos, pagos, finanzas con IVA/IRPF, compras, CRM, credenciales por permisos y formación online integrada con el SEPE. |
Todos los proyectos tienen tests automatizados y CI, y su README explica el problema real, las decisiones de diseño y qué fallaba en la versión anterior y cómo se corrigió.
- Cada proyecto es una "obra" documentada: requisitos, correos, versiones y releases, y documentación técnica. Así cualquiera puede retomar un sistema sin depender de mí.
- Primero que funcione, después que sea robusto: muchos de estos sistemas nacieron como una solución urgente y crecieron con los incidentes. Las versiones publicadas aquí son la consolidación de esas lecciones: tests, gestión de secretos y resiliencia.
- La seguridad, por defecto: nada de credenciales en el código, mínimos privilegios y verificación en el servidor.