Design tokens: construyendo un sistema de diseño multi-marca
Tres productos, tres marcas, un design system. Los tokens separan decisión de valor y hacen escalables los temas.
Artigos técnicos e reflexões sobre engenharia de software & IA
Tres productos, tres marcas, un design system. Los tokens separan decisión de valor y hacen escalables los temas.
Minificar JS da 3% de LCP. Servir la imagen correcta da 30%. Ranking de las optimizaciones por impacto medido en producción.
Redux se volvió legacy. Las librerías atómicas y los signals cambiaron el costo de re-render. Comparación con benchmarks de render.
Server Components cambian las reglas de cache, estado y rendering. Los errores que cuestan días de debug en proyectos reales.
Over-fetching resuelto, complejidad nueva creada. Cuándo GraphQL le gana a REST hoy y cuándo se volvió peso muerto.
Los logs dicen qué falló. Los traces muestran dónde y por qué. Instrumentación OTel paso a paso con propagación de contexto.
Breaking change sin versionamiento quema confianza. ¿URI, header o parámetro? Contratos, deprecaciones y comunicación.
ALTER TABLE bloquea producción. Expand-contract separa el cambio de esquema en fases compatibles con versiones convivendo.
Todo job corre dos veces tarde o temprano. Idempotencia, visibility timeout y patrones de retry que salvan el sistema.
Deploy y release son eventos separados. Las flags desacoplan ambos y convierten el rollback en un toggle de configuración.
¿Columna tenant_id, schema por tenant o base de datos por tenant? Costos, riesgos y cuándo migrar entre los tres patrones.
Los webhooks fallan en silencio: duplicados, fuera de orden, perdidos. Checklist completo para recibir eventos sin perder ninguno.
Elegir mensajería por el hype sale caro. Comparación honesta: throughput, ordering, costo operacional y casos de uso.
El parse de JSON de LLMs se rompe en producción. Constrained decoding, validación en capas y estrategias de fallback.
El usuario espera la respuesta en chunks. SSE cubre el 90% de los casos con menos complejidad que WebSockets.
Los agentes se rompen en producción por falta de guardrails. Patrones de tool use, loops de agente y límites de autonomía.
La cuenta de LLM crece 10x en tres meses si nadie gobierna. Tres palancas cortan 70% de la factura sin perder calidad.
Los tests unitarios no cubren salidas probabilísticas. Golden datasets, jueces automatizados y gates de regresión en el pipeline.
Mismo corpus de 1 millón de documentos, mismas consultas. Recall, latencia p95 y costo operacional lado a lado.
Empieza por prompting. RAG resuelve conocimiento. Fine-tuning resuelve comportamiento. Costos reales de cada camino.
El chunking ingenuo genera resultados irrelevantes. Pipeline completo: chunking semántico, embeddings, búsqueda híbrida y reranking.
Los generics, conditional types y mapped types no son misticismo de TypeScript. Son herramientas que resuelven problemas concretos de reutilización de código y type safety. Aprende los patrones que aparecen en cualquier codebase seria.
La mayoría de las APIs trata errores de forma inconsistente. Un patrón de error handling bien definido reduce bugs de integración, mejora la experiencia del consumidor y facilita el debug en producción.
El cache es una de las formas más eficaces de mejorar performance, pero la invalidación de cache es uno de los problemas más difíciles de la computación. Guía práctica de cuándo, dónde y cómo cachear.
Los tests unitarios testean pedazos aislados. E2E testea el sistema como lo usa el usuario. Playwright hace esto viable con setup mínimo y ejecución confiable. Guía con ejemplos reales.
Los micro-frontends resuelven problemas reales de equipos grandes y aplicaciones monolíticas, pero introducen complejidad de runtime y deploy. Cuándo vale la pena y cuándo es over-engineering.
El rate limiting protege tu API de abuso, DDoS y uso excesivo. Pero un rate limit mal configurado bloquea usuarios legítimos. Implementa de forma que proteja sin estorbar.
Rebase y merge resuelven el mismo problema de formas diferentes. Ninguno es mejor que el otro: cada uno tiene su contexto ideal. Entiende la diferencia para dejar de discutir y elegir con intención.
Los logs no estructurados son inútiles en producción: imposible filtrar, correlacionar o analizar. El logging estructurado transforma tus registros en datos accionables. Guía práctica de implementación.
JWT no es solo "generar un token y listo". Producción exige refresh tokens, invalidación, storage seguro y protección contra ataques. Implementa autenticación JWT de verdad.
SOLID no es teoría académica. Son cinco principios que se aplican diariamente en código de producción. Cada uno resuelve un problema concreto de mantenibilidad y extensibilidad.
El code review hecho por un Staff Engineer no debería ser sobre encontrar bugs: eso es lo mínimo. El valor real está en transferir conocimiento, reforzar patrones y desarrollar al equipo. Cómo hacerlo sin sonar arrogante.
Los patterns no son recetas para memorizar. Son vocabulario de diseño. Este artículo cubre los patterns que aparecen constantemente en código de producción y cómo implementarlos en TypeScript moderno.
El vibe coding (dejar que la IA escriba todo mientras apruebas) funciona para prototipos. Pero en producción, la responsabilidad técnica no desaparece. Entiende dónde está la línea.
GitHub Actions es potente y gratuito para repositorios públicos. Esta guía construye un pipeline de producción real (lint, tests, build y deploy), paso a paso, sin magia.
Strict mode no es solo hacer el TypeScript más molesto. Cada flag captura una categoría real de bug en runtime. Entiende qué se está protegiendo y deja de deshabilitar lo que no entiendes.
Los monorepos resuelven problemas reales de consistencia y compartición de código, pero introducen complejidad propia. Una guía honesta para tomar la decisión correcta en 2026.
La cobertura de código es una métrica fácil de aumentar y difícil de interpretar. Lo que importa es la confianza: tus tests te dejan dormir tranquilo antes de un deploy?
RSC cambiaron el modelo mental de React de forma fundamental. Esta guía explica qué cambió realmente, cuándo usar Server vs Client Components, y los errores que casi todo el mundo comete.
Un PR bien escrito acelera el ciclo de revisión, documenta decisiones y respeta el tiempo de los revisores. Aprende las prácticas que transforman PRs mediocres en contribuciones de alto impacto.
Con asistentes de IA generando código a alta velocidad, los quality gates se convierten en la línea de defensa esencial para mantener la salud del software.