Disponible ahoraCiudad de México · remoto, desde cualquier país

Eduardo Aguilar Cortés

Ingeniero de Software. Más recientemente en Qualtrics. Antes, Globant — Arquitecto de Software desde 2022.

El buen código es una entrega. Escribo el mío para el siguiente ingeniero, y para el agente.

Ubicación
Ciudad de México · abierto a reubicarme
Modalidad
Remoto, desde cualquier país · horario compatible con EE. UU. · híbrido en Ciudad de México
Abierto a
Arquitectura de Software · Technical Lead · Senior Engineer
Idiomas
Inglés · Español
Programando
Desde 2017

Experiencia Profesional

01 · 2025 — 2026SaaS EnterpriseRemoto · Ciudad de MéxicoIngeniero de Software

Qualtrics

Un módulo enterprise nuevo, construido a partir de requisitos que nadie había terminado de definir, lanzado en Early Availability. La arquitectura frontend que se estableció ahí es sobre la que el equipo construyó.

  • Lanzamiento en Early Availability

    Trabajo desde cero contra seis sistemas: cinco sobre código tan antiguo como AngularJS y una API que se construía en paralelo, así que el objetivo se movía mientras nos integrábamos con él. Los patrones que se establecieron ahí son los que sigue el resto del módulo.

  • Referente de accesibilidad

    El referente designado del equipo. WCAG se revisa en la revisión de arquitectura, donde cuesta poco, y no en una auditoría, donde es una reescritura.

  • ERG Q&Able

    Copresidente · Ciudad de México

    Copreside el capítulo de Ciudad de México del grupo de recursos para empleados Q&Able.

02 · 2017 — 2024Arquitecto de Software desde 2022

Globant

Cuatro clientes, un solo empleador: al final, Arquitecto de Software, con tres reportes directos entre frontend e infraestructura.

  • Cerifi

    2022 — 2024

    Una base de datos multi-tenant con más de veinte variaciones de esquema: los despliegues eran impredecibles y la integridad de los datos estaba en riesgo. Se unificaron los patrones de migración y se pusieron verificaciones automáticas antes de ellos. La divergencia desapareció y no ha vuelto: las verificaciones son lo que la mantiene fuera.

  • Smile Direct Club

    2020 — 2022

    Las revisiones obligatorias de pacientes cada 90 días corrían en un proveedor externo que cobraba cada mes y no se podía modificar. La captura de datos pasó a ser interna, sobre PostgreSQL con el ORM de Django y cumpliendo con HIPAA de principio a fin. La factura del proveedor llegó a cero, y el equipo de producto pudo iterar sobre el flujo por primera vez.

  • Cars.com

    2018 — 2020

    Los embudos «Sell It Yourself» y «Quick Offer», los caminos que un vendedor realmente recorre en Cars.com, se migraron a un stack moderno sin pausar el tráfico.

  • Discoverflow

    2017 — 2018

    Diseño de integraciones desde cero, trabajado en persona con los gerentes de programa del cliente en Miami. Los equipos offshore y onshore entregaron con una sola definición de done.

Lo que aporto

Donde todo se junta.

Dónde lo aprendí, y lo que aportolleva aCorriendo en este sitio
Qualtrics · 2025 — 2026Una arquitectura sobre la que construyó el equipo, accesible por defectoLa arquitectura frontend que definí en un módulo nuevo es la que el equipo usó como base. Como referente de accesibilidad del equipo, WCAG se revisaba en la revisión de arquitectura, donde cuesta poco.Un documento por tema, cada uno respaldado por una verificación que corre la compilación, para que el siguiente ingeniero construya sobre reglas y no sobre suposiciones.
Cerifi · 2022 — 2024La divergencia la atrapan los sistemas automatizados, no las personasVerificaciones automatizadas frente a más de veinte variaciones de esquema mantuvieron fuera la divergencia de datos, en lugar de limpiarla después.La compilación verifica las reglas con las que se escribe el código. Si rompes una, el error nombra la regla que rompiste.
Smile Direct Club · 2020 — 2022Tomar ownership de lo que el negocio necesitaLos seguimientos de pacientes salieron de un proveedor que cobraba cada mes y no se podía cambiar, a un sistema propio que cumplió HIPAA en todo momento. La factura del proveedor llegó a cero.Cada proveedor externo entra por una sola puerta, así que reemplazar uno es un cambio en un solo lugar.
Cars.com · 2018 — 2020Cambiar sin detener el negocioLos canales de venta pasaron a un stack moderno sin una pausa en el tráfico.Hacer merge a master actualiza el esquema de la base de datos y luego el sitio en un solo paso, así que el sitio en vivo y el código nunca discrepan.
Discoverflow · 2017 — 2018Una sola definición de doneLos equipos offshore y onshore entregaron con una sola definición de done.Cada pull request a master corre las mismas reglas de nombres, todas las pruebas y una compilación de producción, para personas y para agentes por igual.

Evidencia · este sitio

Compruébalo tú mismo.

Este sitio es donde todo eso corre a la vez, construido como construiría el tuyo: límites claros, cada dependencia apuntando hacia abajo, y una compilación que falla cuando una no lo hace. Elige una porción e intenta romperlo.Elige un cambio y mira cómo la compilación lo rechaza.

Páginas — componen verticalesVerticales — aisladas entre síAdaptadores — una puerta por proveedor externoCompartido — no depende de nada de arribacada flecha apunta hacia abajo ↓PáginaPáginaPáginaVertical AVertical BVertical CInicio de SesiónBase de datosArchivosSDK del ProveedorKit de UIUtilidadesTraducciones
01 · La compilación falla

La vertical A se mete en la vertical B

Las verticales nunca se meten una en otra. Cualquiera de las dos se puede reescribir, o pasar a otro equipo, sin romper la otra.

FAIL  architecture/dependency-direction.test.ts  › keeps verticals unaware of each other
AssertionError: expected [ …(1) ] to deeply equal []
Anillo exterior · vigilado desde fuera
leído el 4 nov 2026
Páginas — componen verticales
  • Página
  • Página
  • Página
Verticales — aisladas entre sí
  • Vertical A
  • Vertical B
  • Vertical C
Adaptadores — una puerta por proveedor externo
  • Inicio de Sesión
  • Base de datos
  • Archivos
  • SDK del Proveedor
Compartido — no depende de nada de arriba
  • Kit de UI
  • Utilidades
  • Traducciones

Vertical AVertical B

01 · La compilación falla

La vertical A se mete en la vertical B

Las verticales nunca se meten una en otra. Cualquiera de las dos se puede reescribir, o pasar a otro equipo, sin romper la otra.

FAIL  architecture/dependency-direction.test.ts  › keeps verticals unaware of each other
AssertionError: expected [ …(1) ] to deeply equal []
Vigilado desde fuera · leído el 4 nov 2026

Stack Tecnológico

warnHablo JavaScript con fluidez; aunque a veces el navegador no entiende mi acento.

Mostrar lo que usé en

Frontend

en el navegador
  • React
  • Redux
  • Angular
  • AngularJs
  • Vue.js
  • D3
  • Sass
  • Less
  • CSS

Backend

en el servidor
  • Node.js
  • hapi
  • Django
  • Drupal

Datos

donde se guardan
  • PostgreSQL
  • MongoDB

Cloud y delivery

donde corre
  • AWS
  • Docker
  • Kubernetes
  • Next.js
navegador y servidor
  • TypeScript
  • JavaScript
lenguajes · ambos lados
  • Python
lenguaje
Pruebas y entrega · en cada capa
  • Jest
  • GitHub