<?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://bach.software/</loc><lastmod>2025-11-02T17:00:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/"/></url><url><loc>https://bach.software/posts</loc><lastmod>2025-10-26T17:00:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/posts"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr/articles"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl/posts"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de/posts"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es/articulos"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/posts"/></url><url><loc>https://bach.software/content/20-portfolio</loc><lastmod>2025-10-26T17:00:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/content/20-portfolio"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr/content/20-portfolio"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl/content/20-portfolio"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de/content/20-portfolio"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es/content/20-portafolio"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/content/20-portfolio"/></url><url><loc>https://bach.software/content/30-about</loc><lastmod>2025-10-26T17:00:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/content/30-about"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr/content/30-a-propos"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl/content/30-over"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de/content/30-uber-mich"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es/content/30-acerca-de"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/content/30-about"/></url><url><loc>https://bach.software/content/404-page-not-found</loc><lastmod>2025-11-02T17:00:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/content/404-page-not-found"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr/content/404-page-non-trouvee"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl/content/404-pagina-niet-gevonden"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de/content/404-seite-nicht-gefunden"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es/content/404-pagina-no-encontrada"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/content/404-page-not-found"/></url><url><loc>https://bach.software/posts/1-mastering-conditional-property-types-with-vue-3_3-generics</loc><lastmod>2025-05-27T09:30:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/posts/1-mastering-conditional-property-types-with-vue-3_3-generics"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr/articles/1-maitriser-les-types-de-proprietes-conditionnelles-avec-les-generiques-de-vue-3_3"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl/posts/1-conditionele-property-types-beheersen-met-vue-3_3-generics"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de/posts/1-bedingte-property-typen-mit-vue-3_3-generics-meistern"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es/articulos/1-dominar-los-tipos-de-propiedades-condicionales-con-genericos-de-vue-3_3"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/posts/1-mastering-conditional-property-types-with-vue-3_3-generics"/></url><url><loc>https://bach.software/posts/2-ditching-the-cookie-banners:-run-plausible-analytics-on-azure-kubernetes</loc><lastmod>2025-10-04T11:00:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/posts/2-ditching-the-cookie-banners:-run-plausible-analytics-on-azure-kubernetes"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr/articles/2-eliminer-les-bannieres-de-cookies:-executez-plausible-analytics-sur-azure-kubernetes"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl/posts/2-afscheid-van-cookie-banners:-draai-plausible-analytics-op-azure-kubernetes"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de/posts/2-abschied-von-cookie-bannern:-plausible-analytics-auf-azure-kubernetes-betreiben"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es/articulos/2-eliminar-los-banners-de-cookies:-ejecuta-plausible-analytics-en-azure-kubernetes"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/posts/2-ditching-the-cookie-banners:-run-plausible-analytics-on-azure-kubernetes"/></url><url><loc>https://bach.software/posts/3-track-how-many-people-read-your-articles-using-plausible_io-vue_js-and-azure-functions</loc><lastmod>2025-08-03T13:45:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/posts/3-track-how-many-people-read-your-articles-using-plausible_io-vue_js-and-azure-functions"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr/articles/3-suivez-combien-de-personnes-lisent-vos-articles-en-utilisant-plausible_io-vue_js-et-azure-functions"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl/posts/3-volg-hoeveel-mensen-je-artikelen-lezen-met-plausible_io-vue_js-en-azure-functions"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de/posts/3-verfolgen-sie-wie-viele-menschen-ihre-artikel-lesen-mit-plausible_io-vue_js-und-azure-functions"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es/articulos/3-rastrea-cuantas-personas-leen-tus-articulos-usando-plausible_io-vue_js-y-funciones-de-azure"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/posts/3-track-how-many-people-read-your-articles-using-plausible_io-vue_js-and-azure-functions"/></url><url><loc>https://bach.software/posts/4-deploy-a-production-ready-kubernetes-cluster-on-azure-with-terraform</loc><lastmod>2025-12-06T20:00:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/posts/4-deploy-a-production-ready-kubernetes-cluster-on-azure-with-terraform"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr/articles/4-deployer-un-cluster-kubernetes-pret-pour-la-production-sur-azure-avec-terraform"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl/posts/4-implementeer-een-productie-klaar-kubernetes-cluster-op-azure-met-terraform"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de/posts/4-einen-produktionsreifen-kubernetes-cluster-auf-azure-mit-terraform-bereitstellen"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es/articulos/4-despliega-un-cluster-de-kubernetes-listo-para-produccion-en-azure-con-terraform"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/posts/4-deploy-a-production-ready-kubernetes-cluster-on-azure-with-terraform"/></url><url><loc>https://bach.software/posts/5-array-to-map-conversion-in-typescript-with-type-safety</loc><lastmod>2025-09-29T19:00:00.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="en" href="https://bach.software/posts/5-array-to-map-conversion-in-typescript-with-type-safety"/><xhtml:link rel="alternate" hreflang="fr" href="https://bach.software/fr/articles/5-conversion-de-tableau-en-map-en-typescript-avec-securite-des-types"/><xhtml:link rel="alternate" hreflang="nl" href="https://bach.software/nl/posts/5-array-naar-map-conversie-in-typescript-met-type-veiligheid"/><xhtml:link rel="alternate" hreflang="de" href="https://bach.software/de/posts/5-array-zu-map-konvertierung-in-typescript-mit-typsicherheit"/><xhtml:link rel="alternate" hreflang="es" href="https://bach.software/es/articulos/5-conversion-de-array-a-map-en-typescript-con-seguridad-de-tipos"/><xhtml:link rel="alternate" hreflang="x-default" href="https://bach.software/posts/5-array-to-map-conversion-in-typescript-with-type-safety"/></url></urlset>