$ git log --grep="craft"
El oficio
Cómo trabajamos, contratamos y discutimos sobre código.
16 posts
- 5 min de lectura
Cinco sitios en tres días
Cinco sitios pequeños en internet en tres días, y después uno de ellos ganó una base de datos y heredó todos los problemas sobre los que escribo. El trabajo de hobby no es rápido porque el código sea más simple.
- 3 min de lectura
No existe el estado de borrador
Un almacén de secretos que sincroniza en segundo plano convierte escribir un valor en desplegarlo, con un reloj que no controlas. Tu cambio no está vivo cuando lo revisas, y el que no querías activar se activa solo.
- 5 min de lectura
Un valor por defecto es una decisión que dejaste de tomar
El evento de un local no aparecía en el sitio público. Parecía facturación, y la facturación estaba bien. La causa era un booleano puesto un mes antes, por una razón que ya había caducado.
- 3 min de lectura
El primer usuario siempre paga
Un sistema que se usa dos veces por semana está frío las dos veces. Estar caliente es una propiedad del tráfico y no del código, y los caminos que menos usas son los que más necesitas que funcionen.
- 5 min de lectura
Tu presupuesto de reintentos dura más que la paciencia de tus usuarios
Un panel interno fallaba de forma intermitente. Cinco causas plausibles medidas y descartadas, una trampa de medición creada por mí mismo, y una base de datos ociosa 180 horas de 182.
- 5 min de lectura
Salí a producción dos días antes y me salté el plan de pruebas
Una semana después de publicar un post sobre disciplina de releases, la corrección honesta: el release anterior salió antes de tiempo, sin el recorrido humano. Y los seis defectos de mi propio runbook que solo ejecutarlo pudo encontrar.
- 3 min de lectura
Integrar no es desplegar
Integrado, desplegado y verificado son tres estados distintos, y una sola palabra los esconde a los tres. Las dos brechas entre ellos, con un caso real de este mismo blog.
- 5 min de lectura
Todos los lunes despliego para nadie
Un tren de releases semanal, un congelamiento, un sábado de pruebas y una lista de treinta y cinco casillas — para una plataforma que todavía no tiene clientes pagando en producción. Por qué la ceremonia llegó antes que el riesgo.
- 6 min de lectura
Tus pruebas corren en un mundo que no existe
Nueve días operando el control de acceso de un evento real produjeron cero builds fallidos y cinco sorpresas. Ninguna era un bug: eran categorías enteras de falla que una suite no puede ver por construcción.
- 6 min de lectura
Nada estaba roto. Costaba $900 al mes.
Ninguna alerta se disparó, ningún dashboard se puso rojo, ningún usuario se quejó. La infraestructura estaba sana, ociosa y era cara — y lo único que terminó avisándome fue una factura.
- 6 min de lectura
La IA no lo publicó. Tú sí.
Aprobé features escritas por IA que cruzaron en silencio mis propios límites de arquitectura, y pasé dos días deshaciéndolo. El agente no se equivocó — la regla que rompió nunca había salido de mi cabeza.
- 6 min de lectura
Le puse una terminal a mi blog. La migración no era el punto.
Hace siete días este blog era una pestaña de un website builder que evitaba abrir. Desde entonces le creció una terminal, un segundo idioma y un pipeline de publicación. La mudanza fue una tarde; lo que vino después es el argumento real.
- 6 min de lectura
Los roles no son permisos: por qué esconder una página no es un guard
El item del menú desapareció, así que la funcionalidad estaba segura. Después alguien escribió la URL. Lo que la autorización multi-tenant me enseñó sobre lo que un usuario ve, lo que es, y lo que realmente puede hacer.
- 5 min de lectura
Overengineering: ¿visión de futuro, ego, o solo una forma de aprender?
Construí 25 microservicios a sabiendas para un prototipo que pudo ser un monolito. Por qué lo volvería a hacer — y cuándo tú no deberías.
- 5 min de lectura
La relación amor-odio con las entrevistas de código: por qué la velocidad le está ganando a la calidad
Árboles binarios, colas de mensajes imaginarias y cero autocompletado: lo que miden las entrevistas de código versus lo que de verdad es el trabajo.
- 3 min de lectura
Velocidad vs. código limpio: lecciones de C# y JavaScript/TypeScript
¿Lo entregas hoy o lo haces mantenible para mañana? Cómo el lenguaje en el que trabajas te empuja en silencio hacia un lado del trade-off.