El código puede estar bien y el sistema igual falla
Tardé en entender que escribir buen código y diseñar buenos sistemas son habilidades distintas. Esta es la diferencia y por qué importa.
Problema
Tenía un endpoint bien escrito. Validaciones, manejo de errores, tests pasando. Todo prolijo. En staging tardaba 15 segundos bajo carga concurrente. Nadie lo había pensando porque nadie preguntó '¿qué pasa con 1000 requests simultáneos?'. El código estaba bien. El sistema no.
Solución
Escribir código es resolver un problema puntual y hacer que funcione. Pensar en sistemas es entender cómo interactúan las partes, anticipar fallos, diseñar para escala. No son lo mismo, y por mucho tiempo asumí que si el primero estaba bien, el segundo seguía automáticamente.
Aprendizaje
Ahora antes de implementar me hago tres preguntas: ¿qué pasa si esto falla? ¿cómo escala? ¿qué impacto tiene sobre el resto del sistema? No siempre tengo las respuestas. Pero haberlas formulado ya cambia cómo escribo el código.
TL;DR
El código puede estar correcto y el sistema igual fallar. Escribir buen código y diseñar buenos sistemas son habilidades distintas. La diferencia está en si pensás solo en el problema puntual o en cómo ese código vive dentro de algo más grande.