Head of DevOps, SRE & Security (DevSecOps)
Group CTO de 145 personas en seis países, y todavía con las manos en lo técnico. Infraestructura de pagos para un banco central, una plataforma de agentes de IA en tres nubes, diez A100 en bare metal y dos certificaciones que superaron la auditoría.
- 99,999%en Bakong, el sistema de pagos del Banco Nacional de Camboya
- 0 hallazgosen la auditoría de seguimiento de ISO 27001; SOC 2 Type II aprobado dos veces
- 145 personasen seis países, con reporte al director ejecutivo
Trayectoria
Lo que he dirigido
Ocho áreas, un mismo estándar de evidencia
Liderazgo
145 personas · 6 paísesGroup CTO · Head of DevOps, SRE & Security
Liderazgo
145 personas · 6 países- Toda la organización dependía de mí, con oficinas en Japón, Rusia, Suiza, Montenegro, Tailandia y Dubái. Yo reportaba al director ejecutivo.
- Construí primero la organización técnica: 37 reportes directos en el punto máximo, 12 de DevOps, 6 de seguridad y 19 de QA.
- En Everworker: partí de cero, sin herramientas, procesos ni plantilla. Armé un equipo de seguridad de 4 personas.
Pagos y CBDC
99,999%Bakong · pilotos de CBDC
Pagos y CBDC
99,999%- Confiabilidad y seguridad de Bakong, el sistema de pagos del Banco Nacional de Camboya, desarrollado en Java sobre Hyperledger Iroha.
- Más de 150 mil millones de dólares liquidados en 2024, cerca del 330% del PIB de Camboya, y 1300 millones de pagos en 2025, según cifras publicadas por el NBC.
- Pilotos de CBDC en todo el grupo. Contribuí al premio «CBDC Partner of the Year» de Central Banking, 2020.
Plataforma e IA
300+ apps · 99% IaCAWS · Azure · GCP · bare metal
Plataforma e IA
300+ apps · 99% IaC- Una plataforma de agentes de IA en tres nubes, ofrecida como SaaS y autoalojada en las cuentas propias de los clientes.
- Publicación en AWS Marketplace con Helm charts para tres nubes, lanzada en solitario después de que me dijeran que hacían falta partners de pago. AWS Marketplace
- 10 × NVIDIA A100 en bare metal en Moro Hub, Dubái (Tier III), después de que una sola instancia de GPU olvidada quemara miles de dólares en dos días.
- Más de 300 aplicaciones, más de 700 repositorios, 6 organizaciones de GitHub. Tiempos de build reducidos un 40% y costos reducidos más de un 30%.
Confiabilidad
MTTR −60%Práctica de SRE creada desde cero
Confiabilidad
MTTR −60%- SRE integrado en más de 20 equipos stream-aligned de 4 regiones: SLI, SLO, presupuestos de error, comando de incidentes, revisiones sin culpables.
- El SLA pasó de 99% a 99,99%. Copias de seguridad y DR automatizados para 5 sistemas críticos, con las restauraciones ejecutadas de verdad.
- Una guardia con la que se puede vivir: rotación diaria, un respaldo en cada turno, un runbook y una métrica para cada alerta.
Seguridad y cumplimiento
0 hallazgos en auditoría de seguimientoISO 27001 · SOC 2 Type II · NIST CSF
Seguridad y cumplimiento
0 hallazgos en auditoría de seguimiento- ISO/IEC 27001:2022: cierre de las 5 no conformidades menores de la auditoría inicial y primer año de seguimiento superado sin hallazgos. Trust Center
- SOC 2 Type II aprobado dos años seguidos, con alcance ampliado a Privacidad y Disponibilidad. Llevé el programa NIST CSF a petición de los clientes.
- SDLC seguro para más de 100 desarrolladores: modelos de amenazas STRIDE y VAST, puntuación CVSS y EPSS, Security Champions. Ventanas de exposición reducidas un 70%.
- Pentest independiente: 12 hallazgos (1 alto, 6 medios, 5 bajos) clasificados; los principales se convirtieron en checks de regresión DAST, así que siguen bajo prueba.
Productos
2 productos · 2 × 12 personasbajo mi responsabilidad de extremo a extremo
Productos
2 productos · 2 × 12 personas- Un sistema de pagos para islas del Caribe, con un equipo propio de 12 personas.
- Un sistema de puntos de fidelidad para un gran ecosistema, con un equipo propio de 12 personas.
Web3
los mismos controles que pagosPolkadot · Klaytn · SORA
Web3
los mismos controles que pagos- Subvenciones de Web3 Foundation, desarrollo en el ecosistema Polkadot, Klaytn y el ecosistema SORA, sobre los mismos pipelines y controles de seguridad que los sistemas de pago.
- Ponente en Next-Generation Payments 2023 y en conferencias de fintech en Bangkok.
Revisiones de incidentes
Procedentes de respuesta a incidentes, auditorías y trabajo en plataformas de clientes. Cada una terminó en un control, no en un parche.
Exfiltración de código fuente e intento de extorsión
87 000 eventos analizados
- Detección
Actividad anómala en repositorios.
- Investigación
Análisis forense sobre una exportación de auditoría de 87 000 eventos. El alcance de la credencial se verificó de nuevo, no se dio por supuesto.
- Corrección
Contención y restablecimiento de la credencial, y después los accesos de toda la organización reconstruidos como Pulumi IaC para que los permisos manuales no puedan volver.
Una rotación de credenciales que la monitorización no podía ver
0 datos perdidos · corregido el mismo día
- Detección
En la plataforma de un cliente, la base de datos gestionada rotó su contraseña maestra según lo programado y la aplicación perdió la conexión con la base de datos durante la noche. No saltó ninguna alerta.
- Investigación
La aplicación leía la contraseña una sola vez, al desplegar. Una revisión de las alertas mostró que cada regla era ciega a su manera: el proceso seguía vivo, los umbrales de error estaban por encima de lo que este tráfico puede alcanzar incluso con un fallo total, y la alerta del pool culpaba a consultas lentas.
- Corrección
El mismo día: la aplicación pasó a un rol de mínimo privilegio con una contraseña que gestiona el equipo, y ahora el despliegue falla si esa credencial no puede iniciar sesión. Alertas nuevas para pool vacío, el endpoint de health, un mínimo de conexiones y un backup ausente. No se perdieron datos.
Webhooks que fallaban en una de cada cuatro peticiones
corregido en upstream para todos los usuarios
- Detección
En la plataforma de un cliente, errores 500 en webhooks, firmas que no coincidían y errores de CSRF afectaron a cerca de una cuarta parte de las peticiones POST después de que una imagen upstream cambiara por debajo de la versión fijada.
- Investigación
Los cuerpos chunked llegaban vacíos a la aplicación: lee el cuerpo por Content-Length, y una petición chunked no lo tiene. Los 500 no quedaban registrados en ningún sitio, porque el logging por defecto del framework los tragaba con debug desactivado.
- Corrección
El buffering de peticiones pasó a ser el comportamiento por defecto en la herramienta de despliegue de código abierto, la aplicación recompone los chunks en la capa WSGI, los webhooks nunca responden 5xx y los errores llegan a logs estructurados.
Conexión rechazada, 14 segundos cada vez
0 de 7254 sondeos fallaron
- Detección
Los usuarios finales de la plataforma de un cliente informaron de conexiones rechazadas en el puerto 443. El autoscaler de la nube había expulsado el proxy de borde 37 veces ese día, frente a entre 0 y 8 diarias antes.
- Investigación
El proxy drenaba durante 10 segundos; el balanceador necesitaba unos 24 para sacar el nodo. Lo reproduje con un sondeo cada medio segundo: una ventana de 14 segundos en la que fallaba aproximadamente la mitad de las conexiones nuevas.
- Corrección
Drenar más tiempo que el health check, proxies repartidos de forma estricta entre hosts, y ambos ajustes incorporados a la herramienta de código abierto. 0 fallos en 7254 sondeos a lo largo de varios despliegues.
Un proceso de release con un paso que se podía omitir
los despliegues ahora son todo o nada
- Detección
En la plataforma de un cliente, producción funcionó entre 20 y 30 minutos sin su procesador de tareas en segundo plano mientras el uptime seguía en verde: el worker no se había desplegado, así que no había nada sobre lo que alertar.
- Investigación
El release dependía de dos pasos manuales independientes, primero web y luego worker, y nada comprobaba que se hubieran ejecutado ambos. Se descartaron las comprobaciones previas al merge y el admission control: git era correcto y el worker nunca llegó a enviarse.
- Corrección
Los servicios divididos ahora se despliegan como un único workflow ordenado que se pone en rojo salvo que ambas mitades tengan éxito, y se eliminó el despliegue independiente del worker. Las alertas de paridad quedan como red de seguridad.
Alertas en las que nadie confiaba
89% falsos → 0
- Detección
232 disparos de alarmas de CloudTrail en 14 días, cerca de 89% de falsos positivos.
- Corrección
8 detectores más allá de la línea base CIS, con exclusiones por detector: disparos diarios de un solo dígito, cero falsos positivos en la primera ventana y un runbook para cada alerta.
El vigilante que dejó de vigilar
los runs atascados se liberan solos
- Detección
El dead-man's switch de un cliente se había parado en silencio: durante 4,5 días todas las ejecuciones programadas terminaron canceladas.
- Investigación
Una ejecución que la plataforma de CI dejó en cola retuvo su concurrency group para siempre. Los timeouts no se aplican antes de que empiece un job, así que cada ejecución posterior esperaba y luego se cancelaba. Se repitió en menos de un día.
- Corrección
Los workflows programados cortos ahora cancelan la ejecución en curso, de modo que una ejecución atascada la sustituye la siguiente en lugar de bloquearla.
Una factura un 52% más alta con un 4% de CPU
11 nodos fijos → 5-9 bajo demanda
- Detección
Revisión de costes en la plataforma de un cliente: la previsión subió un 52% en un mes, con 18 nodos funcionando a alrededor del 4% de CPU.
- Investigación
El disruption budget por defecto de la herramienta de despliegue dejaba a los servicios de una sola réplica con cero expulsiones permitidas, así que el autoscaler nunca podía drenar un nodo. Cada white-label nuevo fijaba otro más.
- Corrección
Un budget que permite una expulsión, aplicado en 13 repositorios. Producción pasó de 11 nodos fijos a 5-9 bajo demanda, y staging de 7 a 3. El cambio del valor por defecto en upstream se frenó: demasiado cambio acumulado para una producción de pagos.
Un ISMS que declaraba herramientas que la empresa no tenía
29 políticas verificadas
- Detección
29 políticas heredadas, redactadas con IA, que citaban MDM, EDR y servicios de directorio que no existían.
- Corrección
Verificación obligatoria de cada herramienta y rol citado antes de aprobar. La IA redacta, la evidencia decide.