Mike (@mikerb95)CodeByMike
Volver
/labIngeniería verificable

Laboratorio de ingeniería.

Este sitio es también mi banco de pruebas: pipeline con rollback automático, chaos engineering, ataques controlados contra mi propia pasarela de pagos. Lo que ves abajo son los resultados reales, leídos de la misma base de datos que usa el sistema.

Cada experimento define qué debería pasar (la defensa) y verifica qué pasó de verdad. «Superado» significa que el sistema se defendió solo: sin pagos duplicados, sin estados a medias, sin eventos huérfanos.

Banco de ensayoreproducciónDoble clic
Navegador2 checkouts, misma llave
Pasarelawebhook
Caoschaos
1Llave únicak-7f3a ya existe: devuelve PAY-0001
2Evento ya vistopayment_events
3Transición legalcanTransition()
4VersiónWHERE version = ?
5Transaccióndb.transaction()
Pago
creado
pendiente
aprobado
rechazado
Pagos en BD
1
Estado
creado
Versión
v0
Eventos aplicados
0 de 0
Esperado

Un solo pago en la base, y los dos clics reciben la misma referencia.

Superado2 corridas · última: 19 de jul
Reproducción en tu navegador con la máquina de estados real (payments-state.ts). El sello y las corridas salen de lab_experiments: si una corrida real falla, el sello lo dice.
Pipelines exitosos · 30d
100%
Cobertura de tests
56.6%
Experimentos superados
21/21
Ataques absorbidos (pagos)
6
Mutation score
53.8%
Pipeline CI/CD · con health check y rollback automático

Cada push corre los tests y reporta el resultado aquí. Si el deploy pasa pero el health check post-deploy falla, el pipeline revierte solo. El repositorio y sus Actions son públicos: cada fila enlaza a los logs reales.

  1. dab7259 ↗OK2975 tests · 56.6% cov5m 27s · 19 de oct, 08:40 p. m.
  2. c342dae ↗OK2975 tests · 56.6% cov3m 27s · 19 de oct, 08:36 p. m.
  3. 4e0e42e ↗OK2975 tests · 56.6% cov2m 45s · 19 de oct, 08:29 p. m.
  4. d9bd044 ↗OK2976 tests · 56.7% cov6m 11s · 19 de oct, 08:12 p. m.
  5. 80aab9f ↗OK2976 tests · 56.7% cov3m 43s · 19 de oct, 08:02 p. m.
  6. df39158 ↗OK2976 tests · 56.7% cov2m 57s · 19 de oct, 07:58 p. m.
  7. cc8fee4 ↗OK2963 tests · 56.5% cov2m 25s · 8 de oct, 03:53 p. m.
  8. 5978e8a ↗OK2959 tests · 56.5% cov1m 47s · 6 de oct, 08:48 p. m.
  9. 15cead3 ↗OK2943 tests · 56.3% cov14m 21s · 6 de oct, 08:40 p. m.
  10. eaf606b ↗OK2938 tests · 56.2% cov4m 14s · 6 de oct, 07:48 p. m.
  11. cab51bc ↗OK2923 tests · 56.3% cov2m 11s · 6 de oct, 07:37 p. m.
  12. 90c526a ↗OK2889 tests · 54.9% cov4m 1s · 6 de oct, 07:03 p. m.
  13. 9d80e2c ↗OK2887 tests · 54.9% cov2m 12s · 6 de oct, 06:59 p. m.
  14. e8c0dec ↗OK2885 tests · 55.7% cov2m 36s · 6 de oct, 06:44 p. m.
  15. 0408f69 ↗OK2885 tests · 55.7% cov2m 54s · 6 de oct, 06:41 p. m.
Seguridad & accesibilidad · análisis automático

Análisis estático de dependencias y código, más accesibilidad sobre las páginas públicas, en cada push. Lo que cuenta no es un scan verde sino el ciclo: cada hallazgo se sigue hasta que queda resuelto o aceptado a conciencia.

52Abiertos
todo hallazgo nace aquí
91Resueltos
0Aceptados

1 punto = 3 hallazgos

Pruebas de carga

Una escalera de carga creciente contra un entorno desechable hasta encontrar el punto donde el sistema se rompe y cuánto tarda en volver cuando la carga cesa. Medido en meseta, no en la rampa: promediar las dos mezcla un nivel sano con uno saturado.

ofrecidoservido sin errorp95
Sostenido sin error
50/s
Punto de quiebre
200/s
Recuperación
75s
p95 de la corrida
10.0s
Pasarela de pagos · sandbox

Pasarela propia con llaves de idempotencia, máquina de estados sin retrocesos y verificación de firma en webhooks. Los contadores de abajo son eventos hostiles que llegaron y fueron detectados y neutralizados, no aplicados.

Pagos sandbox
23
Webhooks duplicados ignorados
2
defensa 2 · Evento ya visto
Eventos fuera de orden contenidos
4
defensa 3 · Transición legal
Montos adulterados rechazados
0
defensa Verificación de monto
Analizador de sitios · abierto a cualquiera

Construido para mis compañeros de clase: pega cualquier dominio y obtén, en vivo, 12 pruebas - cabeceras de seguridad, certificado TLS, DNS, vencimiento del dominio, robots.txt, sitemap.xml, metadatos SEO, rendimiento básico, accesibilidad heurística y un reporte Lighthouse real vía la API de Google PageSpeed Insights. Todo se lee de respuestas HTTP públicas - nada intrusivo - con límite de 5 análisis por minuto por IP y protección anti-SSRF (rechaza IPs privadas o de red interna) para que no se pueda usar como proxy hacia infraestructura ajena.

Analizador de sitios

Pega un dominio y mira las 12 pruebas correr en vivo, con streaming de resultados.

Analizar un dominio →

Fingerprint de dispositivos

Demo interactiva: abre una sala desde dos dispositivos y mira cómo se identifican sin cookies ni login.

Probar en vivo →

Monitoreo y SLOs

Uptime, latencia p95 y presupuesto de error medidos por el motor de checks propio.

Ver /status →

Security Operations

Micro-SIEM propio: intentos de intrusión detectados y bloqueados, en agregado y en vivo.

Ver /security →
Cómo funciona esta página

Los datos no son capturas ni ejemplos: se leen en el servidor de la misma base (Turso/libSQL) donde el pipeline, los experimentos y la pasarela escriben sus resultados. Lo que falla también se muestra.

Los experimentos de chaos corren con cinturones de seguridad: TTL máximo de 15 minutos, rutas críticas excluidas por código y kill-switch. Todo el sistema es fail-open: un fallo del laboratorio nunca tumba el sitio.

El detalle crudo (parámetros, payloads, flags activos) vive en el panel privado. Aquí se publica el veredicto agregado - suficiente para verificar, sin regalar el mapa interno.