La simplicidad es una restricción, no un estilo
El sistema más simple que resuelve el problema es el que todavía se entiende a las 3am, y por alguien que no lo escribió. Cada abstracción es un préstamo contra la comprensión futura, y los intereses se pagan durante los incidentes.
La fiabilidad se diseña, nunca se añade
Los circuit breakers, los reintentos y los timeouts atornillados a un sistema terminado solo redistribuyen sus fallos. La resiliencia es una propiedad de cómo los servicios dependen entre sí, y eso se decide en el design review o no se decide.
Un sistema que no puedes observar es un sistema que no operas
El tracing y las métricas no son un añadido operativo: son lo que vuelve legible a un sistema distribuido. Si no puedes responder a dónde se fue la latencia sin añadir código, la arquitectura ya falló en algo.
La mantenibilidad sobrevive a la astucia
El código se lee mucho más de lo que se escribe, y se reescribe más que ambas cosas. La solución astuta gana el sprint; la obvia sigue ahí en cuatro años, cuando quienes entendían la astucia ya se fueron.
Migra por evidencia, no por moda
Un lenguaje, una base de datos o un framework merecen cambiarse cuando un profiling lo dice y la migración puede hacerse de forma incremental. Las reescrituras de golpe apuestan la fecha de entrega a una hipótesis.
Ingeniería por encima del hype
Las herramientas nuevas merecen curiosidad y escepticismo, en ese orden. Uso flujos asistidos por IA a diario y escribo primero las guías arquitectónicas, porque un equipo que adopta herramientas sin restricciones solo produce su deuda técnica más rápido.