[{"data":1,"prerenderedAt":165},["ShallowReactive",2],{"navigation":3,"sanity-blog":26},[4],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Blog","/blog","blog",[9,13,17,21],{"title":10,"path":11,"stem":12},"From Mockup to Market: My End-to-End Product Design Process","/blog/from-mockup-to-market","blog/from-mockup-to-market",{"title":14,"path":15,"stem":16},"How I Built My Design System from Scratch","/blog/how-i-built-my-own-design-system-from-scratch","blog/how-i-built-my-own-design-system-from-scratch",{"title":18,"path":19,"stem":20},"The Psychology of Color in UI Design","/blog/psychology-of-color-in-ui-design","blog/psychology-of-color-in-ui-design",{"title":22,"path":23,"stem":24},"The Case for Slow Design in a Fast-Paced Digital World","/blog/slow-design-in-fast-paced-digital-world","blog/slow-design-in-fast-paced-digital-world",false,{"posts":27,"categories":89},[28,36,44,52,60,68,75,82],{"_id":29,"author":30,"date":31,"excerpt":31,"image":33,"slug":34,"title":35},"14ca0879-31e6-46d8-8050-def84f33806c",{"avatar":31,"name":32},null,"David de los Santos Cuy Sanchez","https://cdn.sanity.io/images/my6ptkxm/production/9d13dc1efcb777fb49b96bee3037d01ad6284260-1376x768.png","cdn-lambda-edge-desbordamiento-cookies","Por qué pusimos un CDN frente a nuestro balanceador de carga (y por qué las cookies fueron el verdadero problema)",{"_id":37,"author":38,"date":39,"excerpt":40,"image":41,"slug":42,"title":43},"7781dd55-474a-4b7a-ae0c-fab2902b86e1",{"avatar":31,"name":32},"2026-04-02T08:00:00.000Z","Cómo rediseñar un sistema de facturación en un dominio que no era el mío: de 10+ escenarios caóticos a 4 eventos de negocio claros usando AWS EventBridge.","https://cdn.sanity.io/images/my6ptkxm/production/b01817d6ac627d59ab8b55a1a954628e66de348a-2752x1536.png","cuando-el-negocio-no-es-el-tuyo-facturacion-event-driven","Cuando el negocio no es el tuyo: cómo entender el dominio para rediseñar un sistema de facturación con event-driven",{"_id":45,"author":46,"date":47,"excerpt":48,"image":49,"slug":50,"title":51},"cb0ffb12-515e-4629-8cba-0a777b25bdec",{"avatar":31,"name":32},"2026-03-31T08:00:00.000Z","Cómo un generador de números telefónicos válidos para campañas en México pasó de horas de loops en Python a minutos usando tablas, JOINs y bulk inserts en la base de datos.","https://cdn.sanity.io/images/my6ptkxm/production/3a912206db8fcb7dccd6b3563e0a6cc199075e2c-1376x768.png","el-algoritmo-que-se-moria-en-cdmx","El algoritmo que se moría en CDMX: cómo pasé de O(n⁷) a una consulta en base de datos",{"_id":53,"author":54,"date":55,"excerpt":56,"image":57,"slug":58,"title":59},"87ad141c-6405-4eba-a79f-dcc07d4e69e1",{"avatar":31,"name":32},"2026-03-25T09:00:00.000Z","Tenía claro que quería publicar en mi blog con consistencia. Lo que no tenía claro era cómo hacerlo sin que el proceso me consumiera más tiempo del que tenía. Aquí te cuento cómo construí un pipeline de contenido completo usando Claude como el cerebro que conecta todo.","https://cdn.sanity.io/images/my6ptkxm/production/1434c48ee12bb5a8c7c7227d834200ecb77ea9de-1376x768.png","como-conecte-slack-notion-google-calendar-sanity-claude-orquestador","Cómo conecté Slack, Notion, Google Calendar y Sanity con Claude como orquestador para automatizar mi blog",{"_id":61,"author":62,"date":63,"excerpt":64,"image":65,"slug":66,"title":67},"5c260679-7084-4b66-a3cb-98894e783a88",{"avatar":31,"name":32},"2026-03-19T18:00:00.000Z","Un sistema en producción con DynamoDB usado como base relacional, una operación que no podía detenerse y un equipo dividido entre mantener lo que existía y construir lo que debía ser. Esta es la historia de cómo lo logramos.","https://cdn.sanity.io/images/my6ptkxm/production/ad77d144680a7e34b6364a6543c97ac8468f3737-1408x768.jpg","como-redisenamos-un-backend-completo-sin-detener-la-operacion","Cómo rediseñamos un backend completo sin detener la operación",{"_id":69,"author":70,"date":63,"excerpt":71,"image":72,"slug":73,"title":74},"cf62bed2-2a97-4d30-a935-1a18e51f1cec",{"avatar":31,"name":32},"Tengo un blog. Escribo en Sanity, pero también quiero publicar en Dev.to y Hashnode. En este post explico cómo automaticé eso con una Lambda, el patrón Strategy y algo de vibe coding — y por qué el criterio técnico sigue siendo insustituible.","https://cdn.sanity.io/images/my6ptkxm/production/eed22e854660252be0f908e13e79c11a2f2d81f1-1376x768.jpg","vibe-coding-strategy-pattern","Vibe coding funciona. Pero primero necesitas saber diseño de software",{"_id":76,"author":77,"date":78,"excerpt":31,"image":79,"slug":80,"title":81},"c2fa1e2c-b498-4432-becd-5622fa2ef3df",{"avatar":31,"name":32},"2026-03-18T23:57:00.000Z","https://cdn.sanity.io/images/my6ptkxm/production/323a6841b429e00f2057aed0c522c49610e30161-1408x768.jpg","agregar-un-cdn-parece-obvio-hasta-que-rompe-tus-deployments","Agregar un CDN parece obvio. Hasta que rompe tus deployments",{"_id":83,"author":84,"date":85,"excerpt":31,"image":86,"slug":87,"title":88},"5ef1a7a6-a517-4265-8f13-1654cb63d3e7",{"avatar":31,"name":32},"2026-03-17T17:35:00.000Z","https://cdn.sanity.io/images/my6ptkxm/production/4092c58e69b1a94672b99dd04ed3860e2f5d6155-1408x768.png","ia-me-ayudo-a-lanzar-mi-blog","Cómo la IA Finalmente Me Ayudó a Lanzar el Blog que Venía Postergando desde 2024",[90,93,96,99,102,105,108,111,114,117,120,123,126,129,132,135,138,141,144,147,150,153,156,159,162],{"_id":91,"title":92},"800dffab-2da1-4ac1-814d-50773bc12be6","Arquitectura Cloud",{"_id":94,"title":95},"779b175f-1cca-4f63-9341-940898196529","Build in Public",{"_id":97,"title":98},"2d17f0c2-97c1-4ea8-b461-a2983d87756a","Café y productividad",{"_id":100,"title":101},"71c8b872-4481-4f14-a521-4f6f183b5e17","Construyendo Sistemas Reales",{"_id":103,"title":104},"36a2a893-3096-43cf-8588-00e5a9167be3","Decisiones de Arquitectura",{"_id":106,"title":107},"b6f56afc-235f-4da5-84e2-9d65ab1ce779","Developer Productivity",{"_id":109,"title":110},"0772dc47-2252-4781-a05a-3baf84ac5dba","IA como herramienta",{"_id":112,"title":113},"de461da5-d794-4dfe-8afe-4df3742a4741","Integraciones y Sistemas Legacy",{"_id":115,"title":116},"0ac1b224-dd90-405a-9a77-dc760fe8140f","Liderazgo Técnico",{"_id":118,"title":119},"d9e4fb3c-1ede-4680-93b1-672c49c9e9cf","Observabilidad y Operación",{"_id":121,"title":122},"88c9c00f-18ea-4ad3-a54b-3e5e8d09fe28","api",{"_id":124,"title":125},"4f01c389-7d15-408d-8138-f56d4ef9d369","architecture",{"_id":127,"title":128},"769c874e-bbda-42f8-8f43-5bc6c7c70337","aws",{"_id":130,"title":131},"f4e5f66e-b5f7-4544-ac6f-f1e54a1ba4ec","backend",{"_id":133,"title":134},"3dbda335-4d79-461c-81d3-5bb66ae163de","career",{"_id":136,"title":137},"95c81b6b-bd9a-4c9b-bf42-0e476eb3e2e3","cloud",{"_id":139,"title":140},"464f42cc-533a-4622-b932-a8adac50701a","devops",{"_id":142,"title":143},"714e6051-25e2-434a-8142-0526cf175ccd","event-driven",{"_id":145,"title":146},"d3f09a94-18d4-4a59-bc73-3d0339fb4a9a","leadership",{"_id":148,"title":149},"daf8a569-7a1c-4ff4-897e-8e3a61c5a68a","microservices",{"_id":151,"title":152},"76ab166c-a322-429a-97eb-32e348983968","programming",{"_id":154,"title":155},"98ac4d66-c198-4a23-96e6-945caf2ebbc8","serverless",{"_id":157,"title":158},"50c5952c-04c4-40b0-b76a-51bb562b4733","systemdesign",{"_id":160,"title":161},"e2538685-eaea-4a56-88b1-d6967d47c06d","tutorial",{"_id":163,"title":164},"3c6db597-968c-4b36-9017-78b111017da7","webdev",1775193798606]