Alex LargoFullstack & DevOps Engineer

Construyo la aplicación y el servidor donde corre: del frontend y la API a Docker, el proxy, el CI/CD y la automatización con agentes IA.

English version (PDF)

AL

Disponible para nuevos proyectos

Ahora
NTT DATA · Junior Engineer
En paralelo: freelance en Workana, desde ene 2026
Base
Cuenca, Ecuador · UTC−5
Idiomas
Español nativo · Inglés B1

Clientes

Proyectos reales para clientes que los usan todos los días.

3destinyra.comEn producción
Captura de 3Destiny

3Destiny

3destinyra.com

En producciónArgentina2026

Agencia de realidad aumentada, realidad virtual e IA para empresas. Tema de WordPress propio, sin page builder: casos de éxito con métricas, cuatro verticales con página propia, blog y formulario conectado al panel. Lo desplegué y lo opero en el servidor de AWS del cliente.

Publicado
17-sep-2026
Lighthouse
SEO 100 · Accesibilidad 100
Infra
AWS EC2 · acceso por SSM · Let's Encrypt con challenge DNS en Route53 · PHP 8.3 · migraciones con wp-cli

Ver sitio (se abre en otra pestaña)

orthodent.com.ec
Captura de Orthodent
Vista móvil de Orthodent

Orthodent

En producciónEcuador2026

Clínica odontológica. Sitio multi-idioma con formularios de contacto, tienda y reseñas de Google.

WordPress · Elementor · Contact Form 7 · WooCommerce · TranslatePress

argentinalocalexpert.com
Captura de Argentina Local Expert

Argentina Local Expert

En producciónArgentina2026

Landing y embudo de ventas en Systeme.io, con los leads entrando al CRM nativo de la plataforma.

Systeme.io · embudo · CRM de leads

«Mi experiencia con Alex ha sido muy positiva. Entregó el proyecto a tiempo y tal cual lo que le solicité. El trato es muy amable. Volvería a trabajar con él sin problema. Lo recomiendo.»

Elizabeth Mitchell · Argentina Local Expert · Workana 5.0Proyecto: «Desarrollador Web para Personalizar y Completar Diseño de Página en Systeme.io»

DevOps e infraestructura

Opero mi propio servidor en producción: 11 sitios, automatizaciones y agentes IA detrás de un solo proxy. En NTT DATA, Kubernetes sobre AWS.

Infraestructura del servidor propio y nubes que operoLas visitas y los webhooks de Telegram entran por DNS a Caddy, que reparte el tráfico dentro de una red Docker sin puertos públicos: WordPress bajo demanda con MariaDB compartida, el panel appsMonitor, n8n y el runner de agentes IA. Fuera del VPS: Vercel, AWS y Cloudflare.VPS · DigitalOceanUbuntu 24.04 · 1 vCPU · 2 GBRed interna de Docker · sin puertos públicosFuera del VPSsolo rangos de IP de TelegramVisitantesnavegador · HTTPSTelegramwebhooks de los botsDNSA wildcard*.taller.worksGitHub Actionsdeploy por SSHrsync + restartufw · fail2ban · SSH solo con llave · usuario no-root · unattended-upgrades · swap 2 GBCaddyTLS automático11 virtual hostsfiltro de IP deTelegramCron semanallunes 9:00chequeo de URLs→ 200appsMonitorFastify · socket de Docker≥400 MB libres · carga <2WordPress × perfilesperfiles de Compose384 MB c/u · máx. 2MariaDBcompartida por los WordPresswp-clicontenedorBackupsdb + uploadsRunner de agentes IAClaude Code headlessChromiumsin puertos públicosn8n · 6 flujoswebhooks · estado en PostgresVercel · 13 proyectosNeon · crons · env SensitiveAWSNTT DATA: EKS · RDS Oracle · Karpenter · KEDA · Istio · Terraform3Destiny: EC2 vía SSM · Route53Cloudflaretunnels para demos localesInfraestructura del servidor propio y nubes que operoLas visitas y los webhooks de Telegram entran por DNS a Caddy, que reparte el tráfico dentro de una red Docker sin puertos públicos: WordPress bajo demanda con MariaDB compartida, el panel appsMonitor, n8n y el runner de agentes IA. Fuera del VPS: Vercel, AWS y Cloudflare.VPS · DigitalOceanUbuntu 24.041 vCPU · 2 GBRed interna de Dockersin puertos públicosFuera del VPSsolo rangos de IPde TelegramVisitantesnavegadorHTTPSTelegramwebhooks de losbotsDNSA wildcard*.taller.worksGitHub Actionsdeploy por SSH · rsync + restartufw · fail2banSSH solo con llaveusuario no-rootunattended-upgrades · swap 2 GBCaddyTLS automático · 11 virtual hostsfiltro de IP de TelegramCron semanallunes 9:00chequeo de URLs → 200appsMonitorFastify · socket de Docker≥400 MB libres · carga <2WordPressperfiles de Compose384 MB c/u · máx. 2MariaDBcompartida por los WordPresswp-clicontenedorBackupsdb + uploadsRunner IAClaude Code headlessChromiumsin puertos públicosn8n · 6 flujoswebhooksestado en PostgresVercel · 13 proyectosNeon · crons · env SensitiveAWSNTT DATA: EKS · RDS OracleKarpenter · KEDA · Istio · Terraform3Destiny: EC2 vía SSM · Route53Cloudflaretunnels para demos locales

Leyenda

  • Tráfico HTTP(S)
  • Control o ejecución interna
  • Programado (cron, backup)
  • En producción
  • Bajo demanda
Ver la infraestructura como lista
  1. Visitantes

    Cualquier visita a un sitio o a una demo. Entra por HTTPS y resuelve por DNS hacia el único proxy del servidor.

    HTTPS · 11 sitios detrás de un proxy

  2. DNS

    Un registro A wildcard apunta todo *.taller.works al VPS. Agregar un sitio no requiere tocar el DNS.

    A wildcard · *.taller.works

  3. Caddy

    Reverse proxy único del servidor. Emite y renueva los certificados solo, reparte cada subdominio a su contenedor y es la única puerta hacia la red interna.

    TLS automático · wildcard *.taller.works · 11 virtual hosts · n8n detrás del proxy

  4. Telegram

    Los bots de Telegram avisan por webhook. El proxy solo acepta esas peticiones si vienen de los rangos de IP de Telegram.

    3 bots · filtro por rango de IP

  5. WordPress × perfiles

    Cada sitio es un servicio de Compose activado por profile: se enciende cuando alguien lo pide. Caben dos a la vez.

    profiles de Compose · 384 MB por sitio · máx. 2 encendidos

  6. MariaDB

    Una sola base de datos compartida por todos los WordPress: menos memoria que una por sitio.

    una instancia · backups con wp db export

  7. wp-cli

    Contenedor de herramientas para migraciones, exportes y search-replace sin instalar nada en el host.

    migraciones · search-replace

  8. Backups

    Exporte de la base y tar de uploads por sitio; el restore reescribe las URLs con search-replace.

    wp db export · tar de uploads · workflows de n8n

  9. appsMonitor

    Mi panel de control: enciende y apaga demos leyendo las labels de Compose. Antes de encender exige memoria y carga, regla que salió de una caída de 12 min.

    MAX_RUNNING=2 · ≥ 400 MB libres · carga < 2

  10. n8n · 6 flujos

    Seis flujos en producción: inscripciones, reservas, bots, recordatorios y el estado semanal. Aprobación humana con Wait + webhook y rate limiting.

    6 flujos · Wait + webhook · rate limiting

  11. Runner de agentes IA

    Servicio Express que corre Claude Code headless dentro de Docker. Solo lo llama n8n desde la red interna, con auth por header.

    watchdog de inactividad · Chromium para capturas · fallback de modelo por OOM

  12. Cron semanal

    Cada lunes a las 9:00 se verifica que las URLs en vivo respondan 200 y el estado llega a Telegram vía n8n.

    lunes 9:00 · URLs → 200 · aviso por Telegram

  13. Hardening del host

    Lo que deja el script de aprovisionamiento en el host antes de que corra un solo contenedor.

    ufw · fail2ban · SSH solo con llave · usuario no-root · unattended-upgrades · swap 2 GB

  14. GitHub Actions

    El panel appsMonitor se despliega desde GitHub Actions: SSH, rsync y restart del servicio.

    SSH + rsync · restart del servicio

  15. Vercel · 13 proyectos

    Los productos en Next.js viven en Vercel, con Neon desde el Marketplace, crons y variables marcadas como Sensitive.

    13 proyectos · Neon · crons

  16. AWS

    En NTT DATA opero sobre Kubernetes en AWS; para 3Destiny, el EC2 del cliente con acceso por SSM y DNS en Route53.

    EKS · RDS Oracle · EC2 vía SSM · Route53

  17. Cloudflare

    Tunnels de Cloudflare para mostrar una demo que corre en mi máquina sin abrir puertos.

    cloudflared

Respuesta a incidente · septiembre 2026

Cómo respondí, en orden.

  1. Detección y contención

    Una intrusión por fuerza bruta entró por un sitio de staging.

  2. Rescate de datos

    Los datos se rescataron antes de reconstruir.

  3. Reconstrucción desde cero

    El servidor se volvió a levantar con el script de aprovisionamiento.

  4. Hardening y rotación de credenciales

    Se endureció el host y se rotaron las credenciales.

Qué opero

Aprovisionamiento y hardening

  • VPS en DigitalOceanUbuntu 24.04 · 1 vCPU · 2 GB
  • Script de aprovisionamiento: Docker del repo oficial, ufw, fail2ban, swap de 2 GB y unattended-upgrades
  • Usuario no-root y SSH solo con llave

Proxy y TLS (Caddy)

  • Reverse proxy con TLS automático y wildcard*.taller.works · 11 virtual hosts
  • DNS con registro A wildcard
  • n8n detrás del proxy; el webhook de Telegram solo acepta los rangos de IP de Telegram

Contenedores en producción

  • Docker Compose con una MariaDB compartida y servicios WordPress activados por profiles
  • Límite de memoria por sitio384 MB
  • Contenedor de herramientaswp-cli
  • Stack de Caddy + n8n + runner de agentes IA sin puertos públicos, con auth por header

Panel de control propio (appsMonitor)

  • Fastify + TypeScript: enciende y apaga demos leyendo las labels de Compose, con RAM, disco, carga, uptime y modal de logs
  • Tope de demos encendidas a la vezMAX_RUNNING=2
  • Antes de encender exige memoria libre y carga baja: regla sacada de una caída de 12 min≥ 400 MB libres · carga < 2
  • Antes era un servicio systemd de usuario; hoy es un contenedor con el socket de Docker montado
Tarjeta del droplet en appsMonitor: RAM libre 820 MB de 1,9 GB, disco al 37 % con 29,6 GB libres, carga de 0,09 en 1 minuto, 1 vCPU y 21 días de uptimeTarjeta del droplet en appsMonitor: RAM libre 820 MB de 1,9 GB, disco al 37 % con 29,6 GB libres, carga de 0,09 en 1 minuto, 1 vCPU y 21 días de uptime
Panel appsMonitor: lista de proyectos con su estado y controles para encender o apagar

Backups y restore

  • Base de datos y uploadswp db export + tar
  • Restore con search-replace de URL
  • Backup de los workflows de n8n

Monitoreo

  • Script que verifica que las URLs en vivo respondanHTTP 200
  • Cron semanal que manda el estado a Telegram vía n8nlunes 9:00

Automatización con n8n y agentes IA

  • Flujos de n8n en producción: inscripción, lista de espera, reserva pública, bot de turnos, recordatorios y estado semanal6 flujos
  • En el pipeline de agentes IA: aprobación humana con Wait + webhook, estado en Postgres y rate limiting
  • Servicio Express que corre Claude Code headless en Docker, con watchdog de inactividad y Chromium para capturas
  • Sincronización de contexto por script y fallback de modelo cuando se queda sin memoria (OOM)
Los seis flujos de n8n del portafolio agrupados en captación, operación y gestión, con dos bots de Telegram separados por canal
Los seis flujos del portafolio. Los dos bots de la imagen son los del portafolio (avisos y turnos); el tercero atiende el pipeline de agentes IA.

Nubes

  • Vercel: Neon desde el Marketplace, env vars marcadas como Sensitive y crons13 proyectos
  • AWS en NTT DATA: EKS, RDS Oracle, EC2 vía SSM, Transit Gateway, S3, CloudWatch, Helm, KEDA, Karpenter, Istio y Terraform
  • AWS en 3Destiny: EC2 con acceso por SSM y Route53
  • Cloudflare: tunnels para exponer demos localescloudflared

QA automatizado

  • Scripts de Playwright: barrido de páginas, 404 y estados
  • Detector de cortes de layout en todo el rango de anchos320 → 2560 px

CI/CD

  • appsMonitor

    Pasos
    • SSH
    • rsync
    • restart del servicio
    Destino
    VPS propio
  • finansfit-web

    Pasos
    • vitest
    • build
    Destino
    GitHub Actions · además corre en Docker en el VPS
  • medicalApp

    Pasos
    • typecheck
    • lint
    • migrate + seed
    • tests
    • Playwright E2E
    Destino
    GitHub Actions
  • Evaluar

    Pasos
    • build
    • push a Docker Hub
    • kubectl
    Destino
    AWS EKS · 8 entornos
  • Trompo

    Pasos
    • ssh-action
    • docker-compose
    • nginx
    Destino
    Servidor con nginx
Pipelines que escribí y mantengo
ProyectoPasosDestino
appsMonitor
  • SSH
  • rsync
  • restart del servicio
VPS propio
finansfit-web
  • vitest
  • build
GitHub Actions · además corre en Docker en el VPS
medicalApp
  • typecheck
  • lint
  • migrate + seed
  • tests
  • Playwright E2E
GitHub Actions
Evaluar
  • build
  • push a Docker Hub
  • kubectl
AWS EKS · 8 entornos
Trompo
  • ssh-action
  • docker-compose
  • nginx
Servidor con nginx

Productos y demos

Productos propios y demos que construí para mostrar cómo trabajo. Las marcas de los demos son ficticias; el código y el despliegue son reales.

Los sitios marcados bajo pedido se encienden en mi servidor cuando alguien los pide: caben dos a la vez. Si quieres verlos en vivo, escríbeme.

capturasSolo capturas
Captura de Vera · Barbería

Vera

Proyecto demon8n2026

Recepcionista de WhatsApp con IA: maqueta del chat + flujos de n8n, en cuatro rubros.

  • Mockup del chat y del panel
  • Flujos de n8n con IA
  • Barbería, cantina, odontología y taller
n8n · IA · WhatsApp · HTML/CSS/JS
capturasUso interno
Captura de Pipeline de automatización con agentes IA

Pipeline de automatización con agentes IA

Herramienta propian8n2026

n8n orquesta un agente IA que corre en Docker; nada sale sin aprobación humana por chat.

  • 6 flujos de n8n en producción
  • Aprobación humana con Wait + webhook
  • 3 bots de Telegram, Gmail y estado en Postgres
n8n · Docker · Claude Code · Postgres · Telegram
capturasBajo pedido
Captura de Lume Estética & Spa

Lume Estética & Spa

Proyecto demoWordPress2026

Centro de estética con motor de reservas propio en WordPress.

  • REST API propia
  • Wizard de 4 pasos
  • Bloqueo de doble reserva
WordPress · PHP · REST API · JS
Demo en vivo bajo pedidoPedirla
capturasBajo pedido
Captura de Recreo

Recreo

Proyecto demoWooCommerce2026

Tienda WooCommerce de mochilas y cartucheras escolares.

  • Carrito lateral y filtros combinados (AND)
  • Cupones y envío por zona
  • Wizard buscador que guarda el lead
WooCommerce · PHP · JS
Demo en vivo bajo pedidoPedirla
capturasBajo pedido
Captura de SolNova Energía

SolNova Energía

Proyecto demoWordPress2026

Empresa de energía solar con cotizador y CRM en WordPress.

  • Cotizador de 4 pasos
  • Ahorro y retorno de la inversión
  • CRM de solicitudes en el panel
WordPress · PHP · JS
Demo en vivo bajo pedidoPedirla
capturasBajo pedido
Captura de Meridiano Studio

Meridiano Studio

Proyecto demoWordPress2026

Estudio B2B de diseño y desarrollo web con casos de estudio.

  • Casos de estudio con filtro por rubro
  • CRM de consultas por pipeline
WordPress · PHP · JS
Demo en vivo bajo pedidoPedirla
bitacora.taller.worksEn vivo
Captura de Bitácora

Bitácora

Proyecto demoHTML2026

Landing de un evento en HTML, CSS y JS puro, con la inscripción automatizada.

  • 330 KB en total
  • Lighthouse 100
  • La inscripción dispara n8n: Gmail + Telegram
HTML · CSS · JS · n8n

Otros proyectos

Tiendas WooCommerce

  • IRONPULSEProyecto demo

    Tienda de equipos de fitness inteligentes.

    WooCommerce · PHP
    Bajo pedidoPedirla
  • Reverso StudioProyecto demo

    Galería de arte con tienda de obra única y mosaico infinito arrastrable.

    WooCommerce · PHP · JS
    Bajo pedidoPedirla
  • Aromas del SurProyecto demo

    Tienda de café de especialidad con variaciones por molienda y mini-cart AJAX.

    WooCommerce · PHP
    Bajo pedidoPedirla

Sitios WordPress

  • Instituto del SurProyecto demo

    Educación a distancia: catálogo de carreras y cursos con CRM de solicitudes.

    WordPress · PHP
    Bajo pedidoPedirla
  • Vértice StudioProyecto demo

    Agencia web B2B con CRM de leads por pipeline de estados.

    WordPress · PHP
    Bajo pedidoPedirla
  • Ahumados PavónProyecto demo

    Tienda de carnes ahumadas artesanales.

    WordPress · PHP
    Bajo pedidoPedirla
  • REBORNProyecto demo

    Gimnasio boutique con reservas por créditos y mapa de cupos.

    WordPress · PHP · JS
    Bajo pedidoPedirla

Demos Next.js

Proyectos personales

Trabajos anteriores

  • Trompo Mobiliario Infantil

    Trompo Mobiliario Infantil

    Catálogo web, API y app móvil para una marca de muebles infantiles.

    Next.js · NestJS · PostgreSQL
    2021
  • Evaluar

    Plataforma en producción: frontend y APIs sobre AWS.

    Vue · React · AWS EKS
    2022–24
  • GAD San Fernando

    GAD San Fernando

    Sitio del cantón San Fernando con React y NestJS.

    React · NestJS · MySQL
    2021

Experiencia

  1. ene 2026 – actualidaden paralelo

    Freelance Fullstack & DevOpsWorkana

    Clientes reales (3Destiny, Orthodent, Argentina Local Expert y Diamante, en curso) y operación de mi VPS: Docker, Caddy, TLS, hardening, backups y respuesta a incidente. CI/CD, n8n en producción, pipeline de agentes IA, WordPress y WooCommerce a medida y SaaS en Next.js + Neon.

    WordPress · Next.js · Docker · Caddy · n8n · Neon

  2. mar 2025 – actualidad

    Junior EngineerNTT DATA

    Clientes del sector bancario sobre la plataforma Temenos: corrección de errores en Java, incidentes y nuevas funcionalidades. Opero en Linux sobre AWS (EKS, RDS Oracle, EC2 vía SSM, CloudWatch) con Kubernetes, Helm, KEDA, Karpenter, Istio y Terraform.

    Java · AWS · EKS · Helm · Terraform · Oracle

  3. mar 2024 – may 2024

    Fullstack DeveloperEvaluar

    Vue, React, Nuxt, Next, NestJS y Java. APIs entre proyectos, caché en consultas y endpoints sobre S3 y DynamoDB; despliegue al cierre de cada sprint.

    Vue · React · NestJS · Java · DynamoDB

  4. mar 2022 – abr 2023

    Frontend DeveloperEvaluar

    Interfaces con Vue, React y Angular, responsive, componentes en Storybook y tests unitarios con Jest y Testing Library.

    Vue · React · Angular · Storybook · Jest

  5. jun 2021 – ene 2022

    Fullstack DeveloperTrompo · GAD San Fernando

    Next.js + NestJS + PostgreSQL y MySQL, app móvil en React Native y despliegue con Docker en Vercel, Render y CentOS.

    Next.js · NestJS · PostgreSQL · React Native · Docker

  6. jun 2024

    EducaciónIngeniería de Software

    Universidad Católica de Cuenca

Stack y herramientas

Infra y DevOps

  • Docker
  • Docker Compose
  • Caddy
  • Nginx
  • Linux
  • Ubuntu
  • Bash
  • systemd
  • cron
  • ufw
  • fail2ban
  • GitHub Actions
  • DigitalOcean
  • Cloudflare
  • Vercel

AWS y Kubernetes

  • AWS
  • EKS
  • EC2
  • SSM
  • RDS
  • S3
  • Route53
  • CloudWatch
  • Transit Gateway
  • Kubernetes
  • Helm
  • KEDA
  • Karpenter
  • Istio
  • Terraform

Automatización e IA

  • n8n
  • Claude Code
  • Anthropic SDK
  • Telegram Bot API
  • Gmail API
  • Python

Backend

  • Node.js
  • NestJS
  • Express
  • Fastify
  • Better Auth
  • Java
  • Spring Boot
  • PHP
  • REST API
  • GraphQL

Frontend

  • React
  • Next.js
  • TypeScript
  • JavaScript
  • Vue
  • Nuxt
  • Angular
  • Tailwind
  • HTML
  • CSS
  • Redux
  • Storybook

Datos

  • PostgreSQL
  • Neon
  • MariaDB
  • MySQL
  • Oracle
  • MongoDB
  • DynamoDB
  • SQLite
  • Drizzle
  • TypeORM
  • Dexie
  • Redis

Móvil

  • React Native
  • Expo
  • Flutter
  • NativeWind

CMS y plataformas

  • WordPress
  • WooCommerce
  • Elementor
  • TranslatePress
  • Systeme.io
  • Temenos

Testing y QA

  • Playwright
  • Vitest
  • Jest
  • Testing Library
  • Lighthouse

Resaltadas: las que aparecen en proyectos de esta página.

Currículum

Dos páginas, actualizado en septiembre 2026.

Hablemos

Escríbeme y te respondo en menos de 24 h.

Canales directos