Image

Posts

  • Carrera en la era IA
    Un desarrollador junior termina en una hora una funcionalidad que hace cinco años habría tomado un día. El asistente de IA (inteligencia artificial) escribió el 80% del código. Funciona en su máquina, pasan las pruebas que también generó la IA, y lo envía a revisión. Dos semanas después, en producción, aparece un error de concurrencia…
  • Patrón Identificador de Correlación
    Un cliente escribe a soporte: “Intenté hacer un pedido a las 3:42pm y me apareció un error”. Vos abrís los logs. El API Gateway tiene miles de líneas a esa hora. El servicio de órdenes también. El de pagos también. El de inventario también. Cada servicio tiene su propio archivo de logs, y ninguna línea…
  • Entrevista Técnica
    Estás en una entrevista técnica. Te piden invertir un árbol binario en una llamada mientras tres personas te miran en silencio. Sabés cómo hacerlo, lo has hecho mil veces, pero con el pulso a 120 y sin tu editor se te traba la cabeza. Salís pensando “soy un mal programador”. Lo que en realidad pasó…
  • Arquitectura Hexagonal
    Abrís una clase de servicio de tu aplicación para entender cómo se cobra una factura. Encontrás anotaciones de JPA, llamadas directas al SDK (Software Development Kit — Kit de Desarrollo de Software) de la pasarela de pagos, objetos de HTTP del framework mezclados con reglas de negocio, y un test que necesita una base de…
  • Modo enfocado
    Son las 10:00am. Por fin entendiste cómo conectar el módulo de pagos con el de facturación, tenés todo el modelo mental armado en la cabeza. Entonces llega una notificación de Slack: “¿Tenés un segundo?”. Respondés. Vuelve el silencio. Mirás el código otra vez y… ya no recordás en qué parte estabas. Esos 90 segundos de…
  • Patrón Strangler Fig
    Tu empresa tiene un monolito de diez años. Funciona, factura, y nadie quiere tocarlo porque cada cambio es una apuesta. Alguien propone “reescribirlo todo desde cero con microservicios”. El plan: dos años de desarrollo en paralelo, y un día de lanzamiento donde se apaga lo viejo y se enciende lo nuevo. Esa estrategia, conocida como…
  • Deuda técnica
    Le decís a tu gerente de producto: “Necesitamos dos sprints para refactorizar el módulo de facturación, tiene mucha deuda técnica”. Y la respuesta es siempre la misma: “¿Y qué gana el negocio con eso? Tenemos cuatro funcionalidades comprometidas con clientes para este trimestre”. La conversación termina con la refactorización al fondo del backlog, otra vez.…
  • Dead Letter Queue
    Tu servicio de facturación consume eventos OrderCreated de una cola. Todo marcha bien hasta que llega un mensaje con un formato que nadie esperaba: un campo faltante, un JSON mal formado, un dato que rompe una validación. El consumidor lanza una excepción, el broker lo vuelve a entregar, falla de nuevo, y así indefinidamente. Ese…
  • Comunicación Asíncrona
    Recibís este mensaje en Slack un martes a las 9:03am: “Hola”. Nada más. Sabés que la persona quiere algo, pero no qué. Le respondés “Hola, ¿qué necesitás?” y esperás. Veinte minutos después llega: “¿Podés mirar el tema del servicio de pagos?”. Nueva pregunta tuya: “¿Qué tema?”. Pasa otra media hora. Cuando por fin entendés que…
  • Bloqueo optimista/pesimista
    Es Black Friday. Queda una sola unidad de un producto en promoción y dos clientes hacen clic en “Comprar” con una diferencia de milisegundos. Tu servicio de inventario hace lo que parece lo más lógico: lee el stock (1), verifica que sea mayor a cero, y escribe el stock nuevo (0). Los dos clientes leyeron…
  • Post-mortems sin culpa
    Son las 2:14am. Un despliegue rompió el proceso de cobros y durante 47 minutos ningún cliente pudo pagar. El incidente ya se resolvió, el servicio está de vuelta, y a la mañana siguiente el equipo se junta a “revisar qué pasó”. La primera pregunta que se escucha en la sala es: “¿Quién hizo el deploy?”…
  • Cadena de Responsabilidad
    Te piden agregar validaciones a la creación de pedidos de tu e-commerce: primero verificar que haya stock, después revisar que no sea un posible fraude, y finalmente confirmar que el cliente tiene crédito disponible. Empezás con tres if. Dos semanas después, producto pide una validación más para clientes corporativos. Un mes después, otra para pedidos…
  • Desacuerdos técnicos
    Dos ingenieros senior, mismo nivel, sin jerarquía entre ellos. Uno quiere resolver el problema con un microservicio nuevo. El otro insiste en que un módulo dentro del monolito actual es suficiente y más simple. Ninguno está técnicamente “equivocado” — son dos trade-offs (intercambios) válidos con distintas prioridades. La conversación lleva cuarenta minutos, el tono empezó…
  • Patrón CQRS
    En el post de Event Sourcing vs CRUD mencionamos a CQRS como el complemento natural, sin desarrollarlo. Le toca su propio espacio, porque resuelve un problema muy común incluso en sistemas que no usan Event Sourcing en absoluto. Tenés un catálogo de productos. Las escrituras son poco frecuentes: un producto se actualiza una vez al…
  • Mentoría Técnica
    Un desarrollador junior de tu equipo está trabado con un bug hace dos horas. Se acerca a preguntarte. Tenés dos caminos: abrir su editor, arreglarlo vos en cinco minutos, y seguir con lo tuyo. O sentarte a su lado, hacer preguntas, y dejar que sea él quien llegue a la solución en veinte minutos. El…
  • 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…