Dmitrii CreedLíder de DevOps, SRE y Seguridad · Tbilisi
Abierto a puestos de Head of DevOps, SRE & Security

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

Trayectoria

2013 a 2019Redes, flotas Linux, investigación en seguridad
2019 a 2025Soramitsu: Head of SRE & Security, luego Group CTO
Desde 2025Everworker: Head of DevOps, SRE & Security

Lo que he dirigido

Ocho áreas, un mismo estándar de evidencia

Liderazgo

145 personas · 6 países
Group CTO · Head of DevOps, SRE & Security
  • 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
  • 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% IaC
AWS · Azure · GCP · bare metal
  • 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
  • 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 seguimiento
ISO 27001 · SOC 2 Type II · NIST CSF
  • 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 personas
bajo mi responsabilidad de extremo a extremo
  • 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 pagos
Polkadot · Klaytn · SORA
  • 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.

Código abierto

Scorecard 10
Simple Container
  • Simple Container, herramienta de despliegue escrita en Go. GitHub
  • OpenSSF Best Practices Gold y un Scorecard verificado de 10, sin ninguna comprobación por debajo de 10. Scorecard

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.

Seguridad · Respuesta a incidentesCaso cerrado

Exfiltración de código fuente e intento de extorsión

87 000 eventos analizados
  1. Detección

    Actividad anómala en repositorios.

  2. 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.

  3. 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.

Disponibilidad · Plataforma de clienteCaso cerrado

Una rotación de credenciales que la monitorización no podía ver

0 datos perdidos · corregido el mismo día
  1. 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.

  2. 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.

  3. 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.

Disponibilidad · Plataforma de clienteCaso cerrado

Webhooks que fallaban en una de cada cuatro peticiones

corregido en upstream para todos los usuarios
  1. 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.

  2. 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.

  3. 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.

Disponibilidad · Plataforma de clienteCaso cerrado

Conexión rechazada, 14 segundos cada vez

0 de 7254 sondeos fallaron
  1. 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.

  2. 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.

  3. 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.

Disponibilidad · Plataforma de clienteCaso cerrado

Un proceso de release con un paso que se podía omitir

los despliegues ahora son todo o nada
  1. 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.

  2. 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.

  3. 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.

Detección · Entorno heredadoCaso cerrado

Alertas en las que nadie confiaba

89% falsos → 0
  1. Detección

    232 disparos de alarmas de CloudTrail en 14 días, cerca de 89% de falsos positivos.

  2. 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.

Detección · Plataforma de clienteCaso cerrado

El vigilante que dejó de vigilar

los runs atascados se liberan solos
  1. 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.

  2. 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.

  3. 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.

Costes · Plataforma de clienteCaso cerrado

Una factura un 52% más alta con un 4% de CPU

11 nodos fijos → 5-9 bajo demanda
  1. 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.

  2. 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.

  3. 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.

Gobernanza · Entorno heredadoCaso cerrado

Un ISMS que declaraba herramientas que la empresa no tenía

29 políticas verificadas
  1. Detección

    29 políticas heredadas, redactadas con IA, que citaban MDM, EDR y servicios de directorio que no existían.

  2. Corrección

    Verificación obligatoria de cada herramienta y rol citado antes de aprobar. La IA redacta, la evidencia decide.

Cómo llega un cambio a producción

19 actions compartidas, 8 workflows reutilizables, una sola puerta de control

  1. 01 planIaC

    Terraform, Pulumi, políticas como código con CrossGuard

  2. 02 lintSAST

    Semgrep, 107 reglas propias en 5 lenguajes

  3. 03 scanDependencias y secretos

    Trivy, Grype, TruffleHog, zizmor, poutine

  4. 04 signProcedencia

    Syft SBOM, Cosign sin claves, procedencia SLSA

  5. 05 gateDefectDojo

    cualquier hallazgo nuevo por encima de informativo bloquea el merge

  6. 06 deploySin claves

    GitOps, GitHub OIDC, sin claves estáticas de nube

  7. 07 verifyEjecución

    admisión con Kyverno, alertas de burn rate de SLO

$ deploy --env production
✓ firma verificada en tres puntos: tras firmar, antes del despliegue y en la admisión

Seguridad como plataforma

A qué se conecta cada repositorio

Plataforma interna de seguridad

19 actions · 8 workflows
  • Seguridad como servicio para los equipos de producto: un repositorio se conecta al análisis de secretos, dependencias, SAST, workflows y SBOM con un único workflow reutilizable.
  • Las reglas y los escáneres se publican desde un solo lugar, de modo que un cambio llega a todos los repositorios consumidores.
  • Cada resultado acaba en DefectDojo, enriquecido con 7 fuentes de threat intelligence, entre ellas CISA KEV, EPSS y ExploitDB, y se triaja en dos carriles.
  • El gate de merge compara cada pull request con la línea base y falla en cerrado cuando el tracker no responde.

SAST y Semgrep

107 reglas propias
  • Una biblioteca común de reglas para Go, Python, JavaScript y TypeScript, shell y workflows de GitHub Actions.
  • Cada regla incluye fixtures de lo que debe saltar y de lo que debe callar, y la CI las ejecuta, así que una regla ruidosa no puede mergearse.
  • Paquetes del registro por encima, activados por repositorio, con cada exclusión justificada en la configuración.
  • En el proyecto de código abierto en Go: Semgrep, CodeQL, govulncheck, fuzzing y OpenSSF Scorecard en la CI.

DAST y pruebas de seguridad

harness de 49 módulos
  • Escaneos ZAP base y autenticados, más 15 plantillas propias de Nuclei para SSRF, inyección NoSQL, CORS, redirecciones OAuth y prototype pollution.
  • Un harness propio de WebSocket con 49 módulos que descubre métodos y publicaciones a partir del código y prueba cada rol, y cubre 8 puntos del OWASP API Top 10.
  • DAST nocturno multirrol sobre una plataforma de pagos: Schemathesis, ZAP, Nuclei, un harness de IDOR entre tenants y un manifiesto de acceso por endpoint.

Pruebas de penetración

los hallazgos se convierten en checks de CI
  • Encargué y dirigí un pentest independiente: 12 hallazgos, y las clases clave se convirtieron en checks de regresión DAST y aserciones sobre las reglas de edge.
  • Auditoría externa black-box de una plataforma de pagos: 24 hallazgos, 14 demostrados con un exploit funcional. Publiqué las correcciones de edge como reglas WAF en código.
  • Ejecuté yo mismo pentesting y ejercicios de red team y blue team, no solo los encargué.

Hardening de CI/CD

pinned · signed · keyless
  • Actions de terceros fijadas a SHA de commit, verificado por zizmor; la lógica de los workflows la analiza poutine.
  • Imágenes firmadas sin claves con Cosign, SBOM y procedencia SLSA atestiguadas, y firmas comprobadas de nuevo antes del despliegue y en la admisión.
  • Despliegues mediante GitHub OIDC con confianza acotada a rama y entorno: sin claves de nube de larga duración en la CI.
  • El egress de red de la CI se registra por job, de modo que un incidente puede reproducirse a partir de evidencia.

Hablemos de un puesto

Puestos de Head of DevOps, SRE & Security. En remoto, o con reubicación cuando se patrocina la visa.

creed.click · Página estática, sin rastreadores. Cada cifra proviene de una fuente pública o del CV.