Refactor SOLID de un Módulo de Notificaciones en una EdTech de Lima
Visión general
De qué trata este proyecto.
Recibes el módulo en Python 3.12 con pruebas mínimas. Empieza por escribir tests de caracterización para los 3 canales existentes. Aplica Single Responsibility separando dispatch, formateo, transporte y registro. Aplica Dependency Inversion definiendo una interfaz Channel y haciendo que SMS, email y push la implementen. Aplica Open-Closed para que añadir WhatsApp no toque las clases existentes. Cierra con la implementación de WhatsApp como canal nuevo, hecha en menos de 4 horas y demostrada con tests. Entrega el PR, los tests y un memo de 2 páginas con antes/después medido en líneas, dependencias y tiempo estimado para añadir un canal.
El Briefing
Lo que harás y lo que demostrarás.
Refactorizar un módulo monolítico de notificaciones aplicando SOLID para que añadir un canal nuevo se haga en menos de medio día.
Earning criteria — what you'll demonstrate
- Aplicar SOLID en código real con métricas de impacto, no en pizarra
- Escribir tests de caracterización antes de refactorizar código sin red
- Diseñar abstracciones que reduzcan el coste del próximo cambio
- Documentar antes/después con métricas creíbles para defender la inversión
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 Software
Aplicar SOLID a código real con métricas defendibles es lo que separa al ingeniero senior del que cita SOLID en entrevistas pero no en su PR.
Este proyecto afina
- solid-principles
- refactoring
- python
Ingeniero de Backend
Diseñar interfaces extensibles para canales de notificación es trabajo recurrente del backend en producto orientado a engagement.
Este proyecto afina
- solid-principles
- design-patterns
- python