Mike (@mikerb95)CodeByMike
Volver
/notesNotas de ingeniería

Decisiones, no tutoriales.

El criterio detrás de las herramientas que construyo: qué problema había, qué decidí y por qué. Escrito desde código en producción, no desde la teoría.

notas
23
min de lectura
111
desde
julio de 2026
Ficha 01 / 23Arquitectura
Problema
Cada cotización salía de cero, con un precio que era una corazonada.
Descartado
Una plantilla con precio fijo por paquete
Decidido
Un rango que se cierra con preguntas, con el mismo motor del sitio
Cotizar con un rango que se cierra6 minLeer la nota
23Bitácora

Todo lo escrito, en orden.

  1. Cotizar con un rango que se cierraConstruí Plano, el cotizador con el que armo cada propuesta. El precio arranca como un rango y se cierra con cada respuesta, el cliente recibe su proyecto dibujado como un plano, y la IA lee la conversación sin poder escribir una sola cifra.6 de octubre de 2026 · 6 minarquitecturaiapagosproducto
  2. El precio pactado no se tocaConstruí Cotiza, la herramienta con la que llevo mis encargos de consultoría en logística. El precio se fija al inicio y nunca se reabre; lo que llega después entra como adicional, con su precio y con la aprobación del cliente antes de hacerlo. La IA ayuda a contar, pero no a cobrar.6 de octubre de 2026 · 7 minproductoiaseguridadarquitectura
  3. Un asistente que escribe con permisoLe di al asistente de mi panel permiso para cambiar proyectos, hitos, seguimiento y mensajes, y para dejar cotizaciones listas. Ninguna escritura sale sin una tarjeta con el antes y el después, y la prueba con el modelo real encontró tres errores que ningún test había visto.6 de octubre de 2026 · 7 miniaarquitecturaseguridadproducto
  1. Un analista que propone pero no decideLe puse un agente de IA a leer el registro de ataques de este sitio. Lo difícil no fue que razonara bien, sino que pudiera esperar horas a que yo aprobara un bloqueo, que nunca viera una IP y que no obedeciera las órdenes que los atacantes escriben en sus propias peticiones.29 de septiembre de 2026 · 7 minseguridadiaagentesllmopsec
  2. Una vitrina de seguridad no puede mentir, ni por accidenteRediseñé la página de seguridad de este sitio para que mostrara la defensa en vez de describirla. Lo más útil no fue la animación, sino las cinco cosas que la página decía sin que fueran ciertas.26 de septiembre de 2026 · 6 minseguridadopsectursomotion
  3. El bloqueo que no era una credencialDos meses con la última fase del laboratorio esperando un secreto de Vercel que, al ponerlo, no abría ninguna puerta. La prueba de carga no necesitaba un permiso, necesitaba que alguien releyera su propio guardarraíl.18 de septiembre de 2026 · 6 mink6load-testingci-cdlabpostmortem
  4. Traducir un sitio sin abrirle una puerta traseraPoner el sitio en inglés parecía trabajo de redacción. Lo que descubrí al planearlo es que un prefijo de idioma le da un segundo nombre a cada ruta, y que todos mis guardas de seguridad autorizan comparando nombres.16 de septiembre de 2026 · 6 minseguridadi18narquitecturaastro
  5. Unos proveedores te cobran, otros te cortanAl pasarse de una cuota solo pueden pasar dos cosas, y cuestan cosas distintas: dinero o el sitio caído. Por qué mi simulador de costos de infraestructura las pinta de colores distintos.15 de septiembre de 2026 · 4 mincostosinfraestructuratursovercel
  1. Medir el aprendizaje en vez de declararloUn checkbox marcado en enero no distingue entre practicar cuarenta minutos diarios y haber abierto el tema una tarde. Construí un tracker que mide el hábito, y las tres decisiones que lo hacen correcto son de fechas, no de UI.9 de agosto de 2026 · 8 minaprendizajearquitecturatesting
  1. Dos logins en el mismo sitio, y ninguno conoce al otroMi panel de admin ya tenía autenticación resuelta con OAuth y JWT. Cuando construí el portal de clientes, la decisión difícil no fue cómo autenticarlos: fue no reutilizar nada de lo que ya funcionaba.24 de julio de 2026 · 6 minseguridadautharquitecturaastro
  2. El clientId nunca viene de la URLConstruí un portal donde cada cliente ve sus proyectos, sus facturas y sus documentos. El riesgo número uno no era que alguien entrara sin permiso: era que alguien entrara con el suyo y viera lo de otro.24 de julio de 2026 · 4 minseguridadmulti-tenantarquitecturaastro
  3. Bloqueo escalado de IPs sin desconectarme a mí mismoDetectar amenazas ya no bastaba. El micro-SIEM del portfolio gana enforcement de verdad - TTL que escala con la reincidencia y honeypots que se bloquean en el propio request, no en el próximo cron.19 de julio de 2026 · 5 minseguridadobservabilidadsre
  4. Analizar cualquier dominio sin poner en riesgo el propioConvertir un endpoint de diagnóstico que solo yo podía usar en una herramienta pública para mis compañeros - y por qué eso obliga a resolver primero el abuso y el SSRF, no el análisis en sí.17 de julio de 2026 · 3 minseguridadssrfrate-limitingaccesibilidadlab
  5. Mutar mi código para saber si mis tests sirven de verdadCobertura dice qué líneas se ejecutaron. Mutation testing pregunta algo más incómodo - si rompo esta línea a propósito, ¿algún test se entera? Y contratos con Zod, para que un endpoint no cambie de forma sin que nadie se dé cuenta.17 de julio de 2026 · 5 mintestingcalidadci-cd
  6. No solo un scan verdeConectar npm audit, CodeQL y axe-core a un panel propio con historial y dedup - para que un análisis de seguridad y accesibilidad cuente una historia, no solo un checkmark que nadie mira dos veces.17 de julio de 2026 · 3 minseguridadaccesibilidadsasttestingci-cd
  7. Cobrar un trabajo de campo sin API de WhatsAppNo todo mi trabajo es código. Necesitaba cobrar soporte técnico desde el celular, en la calle, sin pagar una API de WhatsApp Business ni exponer el monto en un link que cualquiera pudiera tocar.16 de julio de 2026 · 4 minpagosseguridadproducto
  8. Tests e2e que prueban lo que de verdad importaCerrar la pirámide de testing con Playwright sin volverla frágil - bases de datos desechables, un centinela que demuestra el aislamiento de la demo, y por qué cada test necesita su propia IP.16 de julio de 2026 · 4 mintestingplaywrighte2ecalidad
  9. Construyendo un micro-SIEM para mi portfolioLos scanners atacan cualquier sitio con IP pública, incluido este. En vez de ignorar el ruido, construí un motor propio que lo detecta, lo clasifica, lo bloquea y lo muestra en público.10 de julio de 2026 · 5 minseguridadobservabilidadsre
  10. RAG - cuándo conviene y cómo no arruinarloRetrieval-Augmented Generation no es magia ni un reemplazo del fine-tuning. Es una decisión de arquitectura con trade-offs claros - y la mayoría de los fracasos ocurren en la recuperación, no en el modelo.9 de julio de 2026 · 3 minragllmarquitecturaia
  11. Sesiones revocables sobre un JWT statelessMi panel de admin usaba JWT puro; una cookie robada era imparable hasta expirar. Así le añadí lista de dispositivos, revocación remota y alertas sin abandonar el JWT.9 de julio de 2026 · 3 minseguridadauthastro
  12. Chaos engineering que no puede hacerte dañoInyectar fallos en producción para probar que las alertas funcionan - con fail-open, TTL obligatorio y un botón de pánico, para que el caos jamás se convierta en un incidente real.5 de julio de 2026 · 3 minchaos-engineeringresilienciasre
  13. Por qué construí mi propio monitor de uptimeUptimeRobot me decía que todo estaba bien mientras producción servía la página equivocada. Así que escribí el motor de checks que necesitaba.5 de julio de 2026 · 3 minobservabilidadastrosre
  14. SLOs y error budgets para proyectos pequeñosEl uptime en porcentaje engaña. Adaptar la disciplina SRE de Google - SLI, SLO, presupuesto de error y burn rate - a un portfolio de proyectos chicos.5 de julio de 2026 · 3 minsresloobservabilidad