Depura una Condición de Carrera en el Servicio de Notificaciones de una HRTech
Visión general
De qué trata este proyecto.
Recibes el servicio en Node.js 20 (Express + amqplib + PostgreSQL), un dump de logs anonimizados con 4 ocurrencias del bug y acceso a un docker-compose local con RabbitMQ. Reproduce el bug con un script de carga (k6 o autocannon) que dispare el escenario. Diagnostica usando lectura de código, logs y, si hace falta, eventos del broker. Escribe un test de integración que reproduzca el bug 10 de cada 10 veces. Aplica el fix mínimo (idempotencia por ID de evento, no rediseño general). Entrega el PR + un postmortem de 2 páginas siguiendo plantilla blameless (sin culpas individuales).
El Briefing
Lo que harás y lo que demostrarás.
Reproducir, diagnosticar y corregir una condición de carrera en un consumidor de RabbitMQ que duplica notificaciones bajo carga.
Earning criteria — what you'll demonstrate
- Reproducir un bug intermitente convirtiéndolo en un test determinista
- Diagnosticar condiciones de carrera leyendo código asíncrono y logs
- Aplicar el fix mínimo defendible en vez de un rediseño tentador
- Escribir un postmortem blameless que sea útil sin culpar a personas
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosIngeniero de Backend
Reproducir, diagnosticar y corregir bugs intermitentes en sistemas asíncronos es la competencia más cotizada del backend mid en producto con tráfico real.
Este proyecto afina
- debugging
- concurrency
- node-js
Ingeniero de Software
Convertir un bug intermitente en un test determinista antes de tocar nada es la disciplina que distingue al ingeniero serio del que parchea por ensayo y error.
Este proyecto afina
- debugging
- automated-testing
- git