Feature Flag

Tu equipo pasó tres semanas construyendo un nuevo motor de búsqueda para el catálogo. El viernes está listo. ¿Lo despliegan y esperan que funcione perfecto para todos los usuarios al mismo tiempo, con el riesgo de que un bug afecte a toda la base de usuarios de un solo golpe? ¿O esperan al lunes con…

Estimaciones de Software

“¿Cuánto te toma esa tarea?” “Como tres días.” Terminó tomando dos semanas. Si esta escena te suena familiar, no estás solo — y probablemente no es porque seas mal estimando. Estimar software mal no es un defecto de carácter, es casi una constante universal de la profesión. ¿Por qué siempre nos equivocamos? El fenómeno tiene…

Idempotency Keys

Un cliente está en el checkout de tu tienda. Hace clic en “Pagar”. La conexión tarda un poco, no ve respuesta inmediata, y hace clic de nuevo. O peor: su app reintenta automáticamente tras un timeout, sin que el usuario haga nada. Resultado: dos cargos idénticos en su tarjeta por la misma orden. Ya mencionamos…

Onboarding

Primer día. La persona nueva tiene sus credenciales… a medias. Nadie le explicó bien qué hace el equipo más allá del título del puesto. Le asignan una tarea “fácil para empezar” que en realidad requiere entender seis servicios distintos. A la hora de almuerzo, come sola porque nadie pensó en organizar algo. Para el viernes,…

Patrón Builder

¿Alguna vez llamaste a un constructor con ocho o diez parámetros y tuviste que contar con el dedo cuál posición correspondía a cuál campo? new HttpRequest(“GET”, url, null, null, true, 30, null, false, 3) — ¿cuál de esos booleanos era followRedirects y cuál era verifySSL? Sin abrir la definición de la clase, es imposible saberlo…

Registro de decisiones de Arquitectura (ADRs)

“¿Por qué usamos MongoDB acá si el resto del sistema es PostgreSQL?” Nadie en el equipo sabe la respuesta. La persona que tomó la decisión se fue de la empresa hace un año. Lo único que queda es el código, que no explica el porqué — solo el qué. Esta escena se repite en casi…

Patrón Caché Distribuido

En el post del Patrón Singleton vimos cómo cachear una lista de empleados dentro de una sola instancia de aplicación. Funciona perfecto — hasta que tu aplicación crece y ya no corre en una sola instancia, sino en diez, detrás de un balanceador de carga. Ahora cada instancia tiene su propio caché en memoria, desincronizado…

Burnout

Hace un tiempo hablamos del síndrome del impostor: esa voz que dice “no sé lo suficiente”. El burnout (agotamiento) es distinto y, en cierto modo, más peligroso: no es una voz que duda de tu capacidad, es el cuerpo y la mente diciendo “ya no puedo más” — a veces mucho antes de que la…

Patrón Rate Limit

Publicaste tu API pública. A la semana, un solo cliente — sin mala intención, probablemente un script mal configurado en un loop infinito — te está mandando 500 requests por segundo. Tu base de datos, diseñada para un tráfico mucho más razonable, empieza a responder lento. Y ese cliente sobrecargado está afectando a todos los…

Reuniones 1:1

En el post sobre la transición de código a liderazgo mencioné las reuniones 1:1 (uno a uno) como uno de los hábitos clave de las primeras semanas. Prometí desarrollarlo aparte, y acá está: porque de todas las herramientas de un líder técnico, el 1:1 es probablemente la más subestimada — y la más fácil de…