<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://yohangel.com/blog/lambda-postgres-conexiones-rds-proxy/</loc>
    <lastmod>2026-08-18</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/lambda-postgres-conexiones-rds-proxy/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/lambda-postgres-conexiones-rds-proxy/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/lambda-postgres-conexiones-rds-proxy/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/estados-de-carga-skeletons-streaming/</loc>
    <lastmod>2026-08-10</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/estados-de-carga-skeletons-streaming/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/estados-de-carga-skeletons-streaming/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/estados-de-carga-skeletons-streaming/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/cloudfront-cache-key-invalidaciones/</loc>
    <lastmod>2026-08-03</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/cloudfront-cache-key-invalidaciones/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/cloudfront-cache-key-invalidaciones/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/cloudfront-cache-key-invalidaciones/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/inp-responsividad-interacciones/</loc>
    <lastmod>2026-07-21</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/inp-responsividad-interacciones/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/inp-responsividad-interacciones/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/inp-responsividad-interacciones/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/embeddings-cuantizacion-dimensiones/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/embeddings-cuantizacion-dimensiones/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/embeddings-cuantizacion-dimensiones/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/embeddings-cuantizacion-dimensiones/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/formularios-progressive-enhancement/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/formularios-progressive-enhancement/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/formularios-progressive-enhancement/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/formularios-progressive-enhancement/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/futuro-desarrollo-predicciones-2026/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/futuro-desarrollo-predicciones-2026/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/futuro-desarrollo-predicciones-2026/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/futuro-desarrollo-predicciones-2026/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/nat-gateway-vpc-endpoints-costes/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/nat-gateway-vpc-endpoints-costes/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/nat-gateway-vpc-endpoints-costes/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/nat-gateway-vpc-endpoints-costes/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/sobrevivir-programador-era-ia/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/sobrevivir-programador-era-ia/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/sobrevivir-programador-era-ia/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/sobrevivir-programador-era-ia/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/stack-startups-julio-2026/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/stack-startups-julio-2026/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/stack-startups-julio-2026/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/stack-startups-julio-2026/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/startups-ia-casos-exito-2026/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/startups-ia-casos-exito-2026/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/startups-ia-casos-exito-2026/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/startups-ia-casos-exito-2026/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/fine-tuning-vs-rag-decision/</loc>
    <lastmod>2026-07-08</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/fine-tuning-vs-rag-decision/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/fine-tuning-vs-rag-decision/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/fine-tuning-vs-rag-decision/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/step-functions-orquestacion/</loc>
    <lastmod>2026-07-08</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/step-functions-orquestacion/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/step-functions-orquestacion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/step-functions-orquestacion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/web-workers-hilo-principal/</loc>
    <lastmod>2026-07-08</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/web-workers-hilo-principal/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/web-workers-hilo-principal/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/web-workers-hilo-principal/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/cache-semantico-llm/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/cache-semantico-llm/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/cache-semantico-llm/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/cache-semantico-llm/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/container-queries-componentes/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/container-queries-componentes/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/container-queries-componentes/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/container-queries-componentes/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/eventbridge-desacoplar-servicios/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/eventbridge-desacoplar-servicios/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/eventbridge-desacoplar-servicios/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/eventbridge-desacoplar-servicios/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/nextjs-server-actions-limites/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/nextjs-server-actions-limites/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/nextjs-server-actions-limites/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/nextjs-server-actions-limites/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/observabilidad-serverless-logs/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/observabilidad-serverless-logs/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/observabilidad-serverless-logs/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/observabilidad-serverless-logs/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/rerankers-busqueda-semantica/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/rerankers-busqueda-semantica/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/rerankers-busqueda-semantica/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/rerankers-busqueda-semantica/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/s3-presigned-urls-subidas/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/s3-presigned-urls-subidas/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/s3-presigned-urls-subidas/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/s3-presigned-urls-subidas/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/tool-calling-agentes-produccion/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/tool-calling-agentes-produccion/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/tool-calling-agentes-produccion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/tool-calling-agentes-produccion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/zod-validacion-compartida/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/zod-validacion-compartida/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/zod-validacion-compartida/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/zod-validacion-compartida/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/astro-islands-hidratacion/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/astro-islands-hidratacion/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/astro-islands-hidratacion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/astro-islands-hidratacion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/astro-view-transitions/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/astro-view-transitions/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/astro-view-transitions/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/astro-view-transitions/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/colas-sqs-idempotencia/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/colas-sqs-idempotencia/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/colas-sqs-idempotencia/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/colas-sqs-idempotencia/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/dynamodb-single-table/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/dynamodb-single-table/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/dynamodb-single-table/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/dynamodb-single-table/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/lambda-vs-fargate/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/lambda-vs-fargate/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/lambda-vs-fargate/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/lambda-vs-fargate/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/llm-evals-produccion/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/llm-evals-produccion/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/llm-evals-produccion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/llm-evals-produccion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/llm-structured-outputs/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/llm-structured-outputs/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/llm-structured-outputs/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/llm-structured-outputs/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/opentofu-modulos-iac/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/opentofu-modulos-iac/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/opentofu-modulos-iac/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/opentofu-modulos-iac/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/rag-chunking-produccion/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/rag-chunking-produccion/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/rag-chunking-produccion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/rag-chunking-produccion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/typescript-tipos-dominio/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/typescript-tipos-dominio/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/typescript-tipos-dominio/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/typescript-tipos-dominio/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/cursor-claude-equipo-real/</loc>
    <lastmod>2026-06-12</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/cursor-claude-equipo-real/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/cursor-claude-equipo-real/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/cursor-claude-equipo-real/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/serverless-sin-dolor/</loc>
    <lastmod>2026-05-28</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/serverless-sin-dolor/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/serverless-sin-dolor/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/serverless-sin-dolor/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/pwas-offline-first/</loc>
    <lastmod>2026-05-15</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/pwas-offline-first/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/pwas-offline-first/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/pwas-offline-first/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/embeddings-pgvector/</loc>
    <lastmod>2026-04-30</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/embeddings-pgvector/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/embeddings-pgvector/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/embeddings-pgvector/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/monolito-a-backends/</loc>
    <lastmod>2026-04-18</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/monolito-a-backends/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/monolito-a-backends/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/monolito-a-backends/"/>
  </url>
  <url>
    <loc>https://yohangel.com/blog/design-system-producto/</loc>
    <lastmod>2026-04-02</lastmod>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/design-system-producto/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/design-system-producto/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/design-system-producto/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/lambda-postgres-conexiones-rds-proxy/</loc>
    <lastmod>2026-08-18</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/lambda-postgres-conexiones-rds-proxy/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/lambda-postgres-conexiones-rds-proxy/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/lambda-postgres-conexiones-rds-proxy/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/estados-de-carga-skeletons-streaming/</loc>
    <lastmod>2026-08-10</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/estados-de-carga-skeletons-streaming/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/estados-de-carga-skeletons-streaming/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/estados-de-carga-skeletons-streaming/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/cloudfront-cache-key-invalidaciones/</loc>
    <lastmod>2026-08-03</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/cloudfront-cache-key-invalidaciones/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/cloudfront-cache-key-invalidaciones/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/cloudfront-cache-key-invalidaciones/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/inp-responsividad-interacciones/</loc>
    <lastmod>2026-07-21</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/inp-responsividad-interacciones/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/inp-responsividad-interacciones/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/inp-responsividad-interacciones/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/embeddings-cuantizacion-dimensiones/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/embeddings-cuantizacion-dimensiones/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/embeddings-cuantizacion-dimensiones/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/embeddings-cuantizacion-dimensiones/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/formularios-progressive-enhancement/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/formularios-progressive-enhancement/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/formularios-progressive-enhancement/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/formularios-progressive-enhancement/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/futuro-desarrollo-predicciones-2026/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/futuro-desarrollo-predicciones-2026/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/futuro-desarrollo-predicciones-2026/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/futuro-desarrollo-predicciones-2026/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/nat-gateway-vpc-endpoints-costes/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/nat-gateway-vpc-endpoints-costes/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/nat-gateway-vpc-endpoints-costes/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/nat-gateway-vpc-endpoints-costes/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/sobrevivir-programador-era-ia/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/sobrevivir-programador-era-ia/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/sobrevivir-programador-era-ia/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/sobrevivir-programador-era-ia/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/stack-startups-julio-2026/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/stack-startups-julio-2026/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/stack-startups-julio-2026/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/stack-startups-julio-2026/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/startups-ia-casos-exito-2026/</loc>
    <lastmod>2026-07-09</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/startups-ia-casos-exito-2026/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/startups-ia-casos-exito-2026/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/startups-ia-casos-exito-2026/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/fine-tuning-vs-rag-decision/</loc>
    <lastmod>2026-07-08</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/fine-tuning-vs-rag-decision/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/fine-tuning-vs-rag-decision/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/fine-tuning-vs-rag-decision/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/step-functions-orquestacion/</loc>
    <lastmod>2026-07-08</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/step-functions-orquestacion/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/step-functions-orquestacion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/step-functions-orquestacion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/web-workers-hilo-principal/</loc>
    <lastmod>2026-07-08</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/web-workers-hilo-principal/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/web-workers-hilo-principal/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/web-workers-hilo-principal/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/cache-semantico-llm/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/cache-semantico-llm/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/cache-semantico-llm/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/cache-semantico-llm/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/container-queries-componentes/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/container-queries-componentes/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/container-queries-componentes/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/container-queries-componentes/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/eventbridge-desacoplar-servicios/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/eventbridge-desacoplar-servicios/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/eventbridge-desacoplar-servicios/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/eventbridge-desacoplar-servicios/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/nextjs-server-actions-limites/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/nextjs-server-actions-limites/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/nextjs-server-actions-limites/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/nextjs-server-actions-limites/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/observabilidad-serverless-logs/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/observabilidad-serverless-logs/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/observabilidad-serverless-logs/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/observabilidad-serverless-logs/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/rerankers-busqueda-semantica/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/rerankers-busqueda-semantica/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/rerankers-busqueda-semantica/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/rerankers-busqueda-semantica/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/s3-presigned-urls-subidas/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/s3-presigned-urls-subidas/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/s3-presigned-urls-subidas/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/s3-presigned-urls-subidas/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/tool-calling-agentes-produccion/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/tool-calling-agentes-produccion/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/tool-calling-agentes-produccion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/tool-calling-agentes-produccion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/zod-validacion-compartida/</loc>
    <lastmod>2026-07-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/zod-validacion-compartida/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/zod-validacion-compartida/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/zod-validacion-compartida/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/astro-islands-hidratacion/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/astro-islands-hidratacion/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/astro-islands-hidratacion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/astro-islands-hidratacion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/astro-view-transitions/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/astro-view-transitions/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/astro-view-transitions/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/astro-view-transitions/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/colas-sqs-idempotencia/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/colas-sqs-idempotencia/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/colas-sqs-idempotencia/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/colas-sqs-idempotencia/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/dynamodb-single-table/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/dynamodb-single-table/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/dynamodb-single-table/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/dynamodb-single-table/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/lambda-vs-fargate/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/lambda-vs-fargate/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/lambda-vs-fargate/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/lambda-vs-fargate/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/llm-evals-produccion/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/llm-evals-produccion/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/llm-evals-produccion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/llm-evals-produccion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/llm-structured-outputs/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/llm-structured-outputs/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/llm-structured-outputs/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/llm-structured-outputs/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/opentofu-modulos-iac/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/opentofu-modulos-iac/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/opentofu-modulos-iac/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/opentofu-modulos-iac/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/rag-chunking-produccion/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/rag-chunking-produccion/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/rag-chunking-produccion/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/rag-chunking-produccion/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/typescript-tipos-dominio/</loc>
    <lastmod>2026-07-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/typescript-tipos-dominio/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/typescript-tipos-dominio/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/typescript-tipos-dominio/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/cursor-claude-equipo-real/</loc>
    <lastmod>2026-06-12</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/cursor-claude-equipo-real/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/cursor-claude-equipo-real/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/cursor-claude-equipo-real/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/serverless-sin-dolor/</loc>
    <lastmod>2026-05-28</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/serverless-sin-dolor/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/serverless-sin-dolor/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/serverless-sin-dolor/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/pwas-offline-first/</loc>
    <lastmod>2026-05-15</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/pwas-offline-first/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/pwas-offline-first/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/pwas-offline-first/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/embeddings-pgvector/</loc>
    <lastmod>2026-04-30</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/embeddings-pgvector/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/embeddings-pgvector/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/embeddings-pgvector/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/monolito-a-backends/</loc>
    <lastmod>2026-04-18</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/monolito-a-backends/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/monolito-a-backends/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/monolito-a-backends/"/>
  </url>
  <url>
    <loc>https://yohangel.com/en/blog/design-system-producto/</loc>
    <lastmod>2026-04-02</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://yohangel.com/en/blog/design-system-producto/"/>
    <xhtml:link rel="alternate" hreflang="es" href="https://yohangel.com/blog/design-system-producto/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://yohangel.com/blog/design-system-producto/"/>
  </url>
</urlset>
