~/henry-cabello
CVEnglish

Construí la app, operé el servidor, pagué la pauta.

Luxura pasó de un repositorio vacío a Google Play en once semanas, 5.000+ descargas entre Bogotá y Medellín, y sigue corriendo en una máquina que yo opero. Abajo hay tres productos más, cada uno con su desglose completo, más cinco años ininterrumpidos dentro de entornos corporativos de Microsoft.

Bogotá, Colombia · Remoto · clientes en EE. UU. · UTC−5

$ ls -la ./work

Cinco tienen desglose completo. Si lees uno, lee Luxura. Si lees dos, suma monia.

Luxura: Ver el desglose

drwxr-xr-xEn producciónProducción en Google Play, tras pruebas cerradas

Luxura

App de citas por invitación, Bogotá y Medellín

Evidencia de Enviar, operar, y economía por usuario

Once semanas de un repo vacío a Google Play, y 5.000+ descargas entre Bogotá y Medellín. Apagué la pauta un día para saber qué mitad del embudo era real, y reconstruí el onboarding alrededor de la respuesta.

  • Next.js
  • TypeScript
  • Capacitor
  • PostgreSQL
  • Prisma
  • Hetzner
  • Coolify
  • Docker
  • Socket.IO
  • RevenueCat
  • AppsFlyer
  • Twilio
  • Infobip
  • Firebase FCM
  • AWS Rekognition
  • Azure Content Safety
  • Cloudflare R2

Ver el desglose →Desglose completo: cómo se construyó, qué costó, en qué me equivoqué

Verla en Google Play ↗

monia: Ver el desglose

drwxr-xr-xEn producciónEn vivo, con cuenta demo pública

monia

Libro contable personal armado desde el correo del banco

Evidencia de Disciplina de correctitud en un flujo agéntico

Ningún agregador llega a mis cinco cuentas, así que este lee su correo: alertas de transacción y PDF de extractos convertidos en filas del libro, en cinco instituciones y cinco monedas. En vivo, con una cuenta de demo pública que cualquiera puede abrir.

  • Next.js
  • TypeScript
  • React
  • PostgreSQL
  • Drizzle
  • Neon
  • Gmail API
  • pdfjs-dist
  • Binance API
  • Better Auth
  • Tailwind
  • Vitest
  • Playwright
  • Vercel

Ver el desglose →Desglose completo: cómo se construyó, qué costó, en qué me equivoqué

Abrir el demo ↗

Storía: Ver el desglose

drwxr-xr-xEn desarrollo

Storía

Atención al cliente con IA para pymes de LATAM

Evidencia de Arquitectura de agentes, construida rápido

Un agente de ventas con IA que lee un catálogo real, manda las fotos y agenda la visita, en WhatsApp, Messenger, Instagram y la línea telefónica. Multi-tenant desde el esquema, en español primero.

  • Next.js
  • TypeScript
  • React
  • Prisma
  • PostgreSQL
  • pgvector
  • Redis
  • BullMQ
  • WhatsApp Cloud API
  • Meta Graph API
  • Voice agents
  • Capacitor
  • Tailwind

Ver el desglose →Desglose completo: cómo se construyó, qué costó, en qué me equivoqué

Mate: Ver el desglose

drwxr-xr-xEn desarrolloConstruido y corriendo, sin lanzar

Mate

Matchmaker con IA, sin swipe

Evidencia de Honestidad en investigación, incluso contra mí

Un matchmaker con IA y sin swipe: un job programado puntúa candidatos en las dimensiones que la investigación dice que predicen compatibilidad, y te escribe la razón. Siete meses, un incidente en producción que resultó ser 75% datos de prueba, y una validación que mató el encuadre que le daba nombre al producto.

  • Next.js
  • TypeScript
  • LangGraph
  • PostgreSQL
  • Prisma
  • Vector DB
  • Redis
  • Tailwind
  • shadcn/ui

Ver el desglose →Desglose completo: cómo se construyó, qué costó, en qué me equivoqué

Femi: Ver el desglose

drwxr-xr-xEn desarrolloEn gran parte construida, sin lanzar

Femi

Plataforma de seguridad para mujeres

Evidencia de Reducir el código a un noveno, y luego auditar mi propio terminado

Un toque levanta una alerta, los vecinos que aceptaron reciben aviso, y los contactos de emergencia reciben un SMS. Una reescritura lo bajó de 77.044 líneas a 9.030. Después una auditoría encontró cuatro de sus componentes centrales construidos, probados y montados en ninguna parte.

  • Next.js 16
  • React 19
  • TypeScript
  • Capacitor 8
  • PostgreSQL
  • pg
  • Better Auth
  • Leaflet
  • Firebase FCM
  • Tailwind 4
  • Vitest

Ver el desglose →Desglose completo: cómo se construyó, qué costó, en qué me equivoqué

-rw-r--r--Level60 ConsultingEn cursoIntegración empresarial con Microsoft

Entornos corporativos de Microsoft donde identidad, Teams y reportería tienen que sostenerse entre tenants, y seguir sosteniéndose el día que Microsoft retira un endpoint debajo tuyo.

> Traté la deprecación de la API de Teams como un problema de investigación antes que de código

Un endpoint retirado de Microsoft casi nunca mapea uno a uno con su reemplazo. Establecí exactamente qué podía y qué no podía hacer la nueva superficie antes de tocar la integración, y eso convirtió la migración en algo conocido en vez de un descubrimiento con clientes encima.

  • Microsoft Graph
  • Teams API
  • Azure Functions
  • Azure SQL
  • Entra ID
  • ADFS
  • TypeScript
-rw-r--r--Plataforma de matching de clínicasEntregadoIngeniería de crecimiento para un marketplace médico

Una plataforma que conecta pacientes con clínicas de restauración capilar, donde el costo de adquirir un paciente decide si el modelo funciona o no.

> Definí la medición antes de la inversión

Pauta sin atribución es una adivinanza con factura. Dejar el tracking correcto primero hizo que cada decisión de campaña posterior se apoyara en un número y no en una impresión.

  • Meta Ads
  • Google Ads
  • Attribution
  • Creative production
-rw-r--r--Infrastructure operationsEn cursoOperar lo que construyo

Auto-hospedar es una decisión con cola. Cuando dejas las plataformas administradas, el disco lleno, los contenedores acumulados y las fallas de caché pasan a ser tuyos a las dos de la mañana.

> Automaticé la limpieza en vez de acordarme de hacerla

Cada caída que he tenido en self-hosting se rastreó hasta algo que se acumuló en silencio. La limpieza programada convierte un juicio recurrente en una propiedad del sistema.

  • Hetzner
  • Docker
  • Coolify
  • Redis
  • Linux

$ git log

  1. jul 2021 a ActualidadIngeniero Full-Stack Level60 ConsultingIngeniero principal de una plataforma de salud de salas para clientes corporativos: monitorea salas de Microsoft Teams, hardware de Cisco y Zoom entre tenants, corre chequeos previos a la reunión, levanta alertas, y sincroniza con un ERP, ServiceNow y Power BI.
    • Ingeniero principal de la plataforma durante cinco años. Entré dos años después de que arrancara y me volví la constante del proyecto, a cargo de las capas de integración y alertas: sincronización multi-tenant de calendarios de Exchange, descubrimiento y seguimiento de paneles de Teams, detección de fallas en periféricos, y alertas globales con topes diarios y resúmenes.
    • Reemplacé un pipeline de Logic Apps con ingesta de incidentes de ServiceNow por Microsoft Graph app-only, y saqué del medio un salto que había que mantener aparte de la aplicación.
    • A cargo de un servicio aparte en Python sobre Azure que integra la plataforma con el ERP del cliente, 58 endpoints, como su autor principal.
    • Manejé la plataforma de Azure sobre la que corre el producto: registros de aplicación en Entra y consentimiento multi-tenant, Blob Storage y las credenciales SAS que lo alcanzan, Logic Apps, Azure SQL, Analysis Services, y reglas de recolección de Monitor con KQL para telemetría de salas.
    • Escribí la evaluación de impacto cuando Microsoft retiró la API TeamworkDevice. Era la única interfaz que el producto tenía para la salud de los dispositivos de Teams Rooms, Microsoft confirmó que no habría reemplazo, y la evaluación definió qué se le podía decir a cada tenant antes de tocar código.
    • Rastreé un pipeline de reportería que llevaba seis meses sin datos de incidentes hasta una credencial de almacenamiento vencida y un terminador de fila que no coincidía en una carga masiva, entre Logic Apps, Azure SQL, Blob Storage y Analysis Services.
    • Implementé inicio de sesión único con Entra ID y ADFS entre tenants de clientes.
    • Diagnostiqué y remedié agotamiento de cuota en Azure SQL sobre tablas de archivo grandes.
    • Definí y anuncié la política de protección de ramas del equipo: revisión obligatoria antes del merge, solo PR en main y develop.
  2. 2021 a ActualidadIngeniero independiente, productos propios Own products and direct contractsCuatro productos propios, llevados de punta a punta en paralelo al trabajo de Level60.
    • Publiqué Luxura en producción en Google Play como único ingeniero: build, infraestructura, pagos, moderación, release y campañas. Victor lo diseñó.
    • Salí de las plataformas administradas hacia un único VPS que opero yo, recuperando la base de datos, los workers y la factura del hosting.
    • Manejé la pauta personalmente en Meta, TikTok y Google: estructura de campañas, creativos, atribución y costo por usuario adquirido.
    • Entregué estrategia de crecimiento y medición como contrato para un marketplace médico.
  3. jul 2020 a feb 2021Desarrollador Full-Stack Gara Group Inc.Remoto desde Cúcuta para una firma de software en Florida.
    • Construí aplicaciones web para una firma especializada en plataformas de venta directa y mercadeo en red, back-office de distribuidores, sitios replicados de cara al cliente y operaciones corporativas.
    • Trabajé en Laravel con Vue en el front end.
  4. 2018 a 2020Desarrollador Full-Stack freelance PukaraConsultoría para Pukara, más trabajo directo para clientes en España y EE. UU.
    • Construí software de gestión hospitalaria para un cliente en España.
    • Hice consultoría para Pukara en muchos proyectos de clientes.
  5. 2016 a 2017Certificación Full Stack freeCodeCamp
  6. 2014 a 2016Ingeniería Informática, dos años, sin completar UNET, Universidad Nacional Experimental del Táchira

$ cat approach.md

El stack no es la habilidad.

El método siempre es el mismo. Encontrar el número que se está cayendo. Averiguar si es del código o del proveedor que lo sostiene. Cambiar la pieza que de verdad lo controla y quedarse operando ese cambio.

Así es como un dominio que nunca he tocado termina en producción. Sistemas empresariales de Microsoft, una plataforma de IA multiagente, una app de citas en Google Play, un producto de seguridad con alertas en tiempo real. Cuatro dominios sin nada en común, una sola forma de entrar.

También es la razón por la que me quedo con el trabajo que la mayoría evita: pagos, atribución, pipelines de release, las campañas y la infraestructura que sostiene todo. En un equipo, eso se vuelve dirección técnica: los controles de revisión y las especificaciones contra las que construyen los demás.

$ cat stack.ts

{

"Cómo construyo con IA": [

"Agentic coding loops", "Multi-model adversarial review", "Claude Code", "OpenAI Codex CLI", "Spec-driven development", "Context engineering", "Subagent orchestration"

],

// Trabajo en bucles agénticos, y nada se mergea hasta que dos modelos de vanguardia lo hayan revisado por separado. A ninguno se le dice qué dijo el otro, ni a qué conclusión llegué yo, porque un revisor al que le entregas tu razonamiento te devuelve acuerdo en vez de revisión. La especificación se mantiene alineada con lo que realmente salió, y una respuesta segura cuenta como afirmación por comprobar, no como resultado. Eso detectó un dato de plataforma equivocado, un error de mapeo escondido detrás de un cero, y un permiso que rompía la atribución en silencio.

"Núcleo": [

"TypeScript", "Next.js", "React", "React Native", "Capacitor", "Laravel", "PostgreSQL", "Prisma", "Docker"

],

"IA y agentes": [

"LangGraph", "Multi-agent orchestration", "Vector databases", "RAG", "Voice agents", "WhatsApp Cloud API", "MCP", "Claude Code", "OpenAI Codex CLI"

],

// Uso servidores MCP a diario con AppsFlyer, Meta Ads y TikTok Ads. Uno no encajaba con mi forma de trabajar, así que lo extendí.

"Microsoft y empresarial": [

"Microsoft Graph API", "Teams API", "Azure Functions", "Azure SQL", "Entra ID", "ADFS", "SSO", "Azure Content Safety"

],

"Nube e infraestructura": [

"AWS", "Azure", "Hetzner", "Coolify", "Vercel", "Supabase", "Redis", "Firebase", "Linux"

],

// Tuve producción en Vercel y en Supabase, y salí de los dos. La habilidad está en saber cuándo una plataforma administrada deja de ganarse su lugar.

"Móvil y monetización": [

"Expo", "Google Play release pipeline", "RevenueCat", "AppsFlyer", "Meta Pixel", "Conversions API", "AdMob", "Meta Audience Network", "Firebase Phone Auth", "FCM"

],

"Crecimiento y pauta": [

"Meta Ads", "Google Ads", "TikTok Ads", "Attribution modeling", "Geo-targeting", "Creative production"

],

// Yo pago la pauta de mis propios productos. Eso significa que descubro lo que cuesta por registro una decisión de arquitectura, en plata, la misma semana en que la tomo.

"También": [

"WebSockets", "Filament", "Face recognition", "Identity verification"

],

}

Lo que dicen

Contenido de ejemplo para revisar el diseño. No son citas reales y no se publican.

Henry definió las reglas de ramas con las que el equipo todavía trabaja. Antes mergeábamos directo a main y nos enterábamos después. No pidió permiso: lo escribió, explicó por qué, y lo hizo fácil de seguir.
DanielEngineering Manager
La mayoría de los ingenieros con los que he trabajado se hacen cargo de su parte. Henry se hace cargo del resultado. Cuando los números no cuadraban, fue a averiguar por qué en vez de esperar a que se lo dijeran. No hay que gestionarlo.
CamilaProduct Lead
Usa IA más que cualquiera con quien trabajo, y confía en ella menos que cualquiera con quien trabajo. Ha corregido respuestas seguras y equivocadas más de una vez, incluidas las que lo favorecían.
AndrésIngeniero Backend
Lo construyó, lo desplegó y lo mantuvo funcionando. Lo que no esperaba es que además manejara las campañas y pudiera decirme cuánto costaba cada decisión por usuario.
ValentinaFundadora

$ contact --open

Henry Cabello

Cuéntame qué estás construyendo.

Agenda un espacio.

Treinta minutos, directo a mi calendario.

Agendar 30 minutos →