JM Sanchez
Jose Miguel (JM) Sanchez

JM Sanchez

Líder de Producto Técnico, Arquitecto de Soluciones y Head of Systems & Data Engineering

Quito el riesgo de plataforma del escritorio del CEO. Llevo más de veinte años trabajando con datos y sistemas, y los últimos doce dirigiendo equipos de inteligencia de negocios e ingeniería cuyo trabajo abarca cinco países. Construyo sistemas pensados para seguir funcionando, pasar una auditoría y costar una fracción de lo que cuesta la versión en la nube gestionada.

La versión corta

Qué hago
Soy responsable de toda la línea técnica (edge, cómputo, datos, aplicaciones cliente y cumplimiento) y lidero al equipo que la construye. Me mantengo lo bastante cerca del código para revisarlo bien, y eso es lo que me permite liderar especialistas en lugar de solo administrarlos.
Dónde
Doce años dirigiendo BI, analítica e ingeniería de sistemas para operaciones en Estados Unidos, Kenia, Sudáfrica, Filipinas y República Dominicana, reportando a VP y a nivel C. También he entregado trabajo de datos para proyectos del Programa de las Naciones Unidas para el Desarrollo.
Resultados
Un asistente de voz que empieza a hablar en menos de 500 ms. Infraestructura que funciona por unos $1,900 al mes donde el equivalente gestionado cuesta $38,000 según precios de lista. Ningún dato personal guardado en texto plano.
Cómo trabajo
Los errores nunca se ignoran, las pruebas corren contra una base de datos real, cada dependencia está fijada a una versión exacta y las herramientas asistidas por IA forman parte del flujo de todo el equipo.
Contratación
A través de una entidad B2B en Estados Unidos (Delaware), sin costos de employer of record de tu lado.

Dos resultados

Los dos vienen de sistemas que están en producción. Cada uno se abre para mostrar cómo se logró.

Tiempo hasta el primer byte audible

Pipeline secuencial3–6 s
Pipeline en streaming< 500 ms

Mismo modelo, mismo hardware, mismo centro de datos.

Costo mensual de la misma carga

Nube gestionada, precio de lista$38,000
Lo que corre en producción$1,900

Cuatro plataformas

Sistemas que diseñé, construí o lideré, y de los que sigo siendo responsable. Los nombres de clientes y productos se reservan por confidencialidad; puedo explicar cualquiera a fondo en una llamada.

Registro de decisiones

Estas son las decisiones que defendería en una revisión de arquitectura: qué elegí, qué descarté y qué costó. Guardo registros como estos en los propios repositorios, junto al código al que afectan.

  1. D-01Síntesis de voz oración por oración en lugar de esperar la respuesta completa del modelo
    Contexto
    Un pipeline de voz secuencial deja al usuario en silencio de tres a seis segundos.
    Decisión
    Hacer streaming sobre una sola conexión HTTP/2 multiplexada y empezar la síntesis con la primera oración completa.
    Consecuencias
    Menos de 500 ms hasta el primer byte audible. La cancelación tiene que llegar a cada etapa, así que todas corren bajo un contexto compartido.
  2. D-02Tokens opacos guardados en Valkey en lugar de sesiones JWT
    Contexto
    Un JWT no se puede revocar sin una lista de revocación, y una lista de revocación es un almacén de sesiones con otro nombre.
    Decisión
    Usar un almacén de sesiones de verdad y mantener los tokens opacos.
    Consecuencias
    Revocación inmediata, solicitudes más pequeñas y conteo de cuotas en tiempo constante. Un servicio con estado más que operar.
  3. D-03Cifrado por campo en la aplicación en lugar de una capa de datos separada y segregada
    Contexto
    El presupuesto no alcanzaba para una capa de datos segregada.
    Decisión
    Cifrar cada campo de datos personales con AES-256-GCM usando una clave de datos emitida por KMS antes de que llegue al disco, y borrar la clave de la memoria después de usarla.
    Consecuencias
    La base de datos nunca contiene datos personales legibles, aunque alguien la copie. KMS solo se llama cuando un lote contiene datos personales, así que su latencia no frena el tráfico normal.
  4. D-04Un clúster HA propio, con staging igual a producción en lugar de una nube gestionada de varias capas
    Contexto
    La versión gestionada de la carga cuesta $38,000 al mes según precios de lista.
    Decisión
    Nodos de cómputo sin estado, volúmenes persistentes separados, archivado continuo con WAL-G y un CDN empresarial, con staging idéntico a producción.
    Consecuencias
    Unos $1,900 al mes, ninguna diferencia de configuración y escalado horizontal agregando nodos. El equipo opera la infraestructura, así que los simulacros de restauración están automatizados en lugar de solo documentados.
  5. D-05Una IPv4 temporal durante la descarga de imágenes en lugar de una IPv4 pública permanente
    Contexto
    Un host solo IPv6 necesitaba imágenes de un registro sin registros IPv6. Una dirección permanente sería escaneada de forma permanente.
    Decisión
    Asignar una dirección solo para la descarga y liberarla desde un hook de éxito basado en eventos.
    Consecuencias
    Ninguna exposición IPv4 permanente. La complejidad de tiempos que esto añadió se eliminó después al pasar el desmontaje de un temporizador al hook.
  6. D-06Protobuf sobre HTTP/2 en todas las APIs en lugar de JSON sobre REST
    Contexto
    Servidor y cliente se desalinean cuando cada lado escribe sus propios tipos de solicitud y respuesta.
    Decisión
    Generar ambos lados desde el mismo archivo de contrato y no permitir JSON en el cable.
    Consecuencias
    Desaparece toda una clase de errores de integración, las versiones cambian de forma segura mediante la numeración de campos y los mensajes pesan menos en conexiones móviles lentas. Depurar requiere herramientas que lean el formato binario.
  7. D-07SQL escrito a mano a través de un pool de conexiones en lugar de un ORM
    Contexto
    Los reportes sobre series de tiempo particionadas tienen que seguir siendo predecibles bajo carga.
    Decisión
    Escribir el SQL, generar código tipado a partir de él con sqlc y ejecutarlo con pgx.
    Consecuencias
    Planes de consulta que cualquiera puede leer e índices sobre los que cualquiera puede razonar. Más SQL que escribir y revisar.
  8. D-08Pruebas contra una base de datos real en lugar de repositorios simulados con mocks
    Contexto
    Un mock confirma que el código coincide con mis supuestos. Solo una base de datos real confirma que mis supuestos coinciden con la base de datos.
    Decisión
    Las pruebas de integración corren contra un PostgreSQL real, y la integración continua falla si se omite alguna prueba.
    Consecuencias
    Pruebas más lentas, y ningún pipeline en verde que no haya probado nada.
  9. D-09Cada dependencia fijada a una versión exacta en lugar de etiquetas flotantes como :latest y @main
    Contexto
    Cuando hay un incidente, el build que importa puede tener seis meses.
    Decisión
    Versiones semánticas o digests SHA-256 para contenedores, GitHub Actions, módulos de Go y proveedores de infraestructura.
    Consecuencias
    Cualquier build pasado se reproduce byte por byte. Las actualizaciones se hacen a propósito, mediante un cambio revisado.

Por qué Go

Go compila a un solo binario estático, maneja decenas de miles de conexiones concurrentes en un solo nodo y trata cada error como un valor que hay que atender. Los resultados de latencia y costo de arriba dependen de las tres cosas.

Seguridad y cumplimiento

He trabajado bajo HIPAA, HITECH, la Stark Law, PCI-DSS y GDPR, y construyo la criptografía además de los documentos de políticas. El diseño de cumplimiento está autoevaluado contra estándares publicados y no está certificado por un tercero. Cuando se requiere una certificación, preparo la evidencia que necesita el auditor y trabajo junto al evaluador.

Cómo se publican los cambios

Cada cambio va de una rama de funcionalidad, a través de controles automáticos, a un despliegue verificado. Si falla cualquier control, el despliegue se revierte solo y las sondas de diagnóstico se quedan en su sitio.

Cómo lidero

Desde Santo Domingo dirijo un equipo de inteligencia de negocios e ingeniería cuyo trabajo llega a operaciones en cinco países. Buena parte de mi semana transcurre entre operaciones, finanzas, la dirección ejecutiva e ingeniería, convirtiendo objetivos que cada grupo define de forma distinta en un plan que todos firman. También diseñé los marcos de KPI e incentivos ponderados que se usan desde agente hasta VP, para que el desempeño se mida igual que como la empresa lo paga.

Me importan las personas que entregan el trabajo tanto como la arquitectura. Un sistema que el equipo no puede hacer suyo no dura, por bien que se vea en papel.

Mis equipos trabajan con seis reglas, y el pipeline las hace cumplir:

“Un sistema que funciona en hardware modesto le gana a una arquitectura correcta que nadie puede pagar.”

De un registro de decisión de arquitectura que escribí y que luego mantuve en cuatro repositorios, un clúster HA y un despliegue nacional.

Herramientas

Experiencia

AñosRolOrganización
actualProduct Manager, líder de IA y desarrollador principal en un equipo de 3 ingenierosProducto confidencial (bajo NDA)
2022–hoyGerente de Inteligencia de Negocios, Estadística y ReportesERC Global CX, remoto y multinacional
2025–hoyEspecialista en contenido de cumplimiento en salud, a tiempo parcialEmpresa de cumplimiento en salud, Texas (remoto)
6 mesesGerente General, Product Manager y Scrum Master (contrato)Proyectos empresariales farmacéuticos, República Dominicana
2014–2022Gerente de Estadística y ReportesERC Global / Working Bees
2012–2014Analista Senior, luego Gerente del Equipo de ReportesLaurus International, Santo Domingo
2003–2010Analista Líder de Estadística y Jefe de DepartamentoAmov International Teleservices (Claro / América Móvil), Santo Domingo

Preguntas

Contacto

Cuéntame en qué estás trabajando: el objetivo de latencia, el requisito de cumplimiento, el sistema que nadie quiere tocar o la factura de infraestructura. Leo cada mensaje y respondo personalmente, normalmente en un día. También puedes escribirme por LinkedIn.

Este sitio no publica correo ni teléfono. El formulario me envía tu mensaje directamente por una conexión cifrada.