<?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://hoangtuan.me</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://hoangtuan.me/certifications</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/certifications" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/certifications" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/certifications</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/certifications" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/certifications" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hoangtuan.me/cv</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/cv" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/cv" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/cv</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/cv" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/cv" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/migrate-google-maps-api-to-vietnam-map-api-gogoduk</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/migrate-google-maps-api-to-vietnam-map-api-gogoduk" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/migrate-google-maps-api-to-vietnam-map-api-gogoduk" />
<lastmod>2026-06-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/redis-8-8-array-native-rate-limiter</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/redis-8-8-array-native-rate-limiter" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/redis-8-8-array-native-rate-limiter" />
<lastmod>2026-06-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/postgis-performance-tuning-vietnam-map-gogoduk</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/postgis-performance-tuning-vietnam-map-gogoduk" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/postgis-performance-tuning-vietnam-map-gogoduk" />
<lastmod>2026-06-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/redis-lua-script-setnx-rate-limiting-gogoduk</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/redis-lua-script-setnx-rate-limiting-gogoduk" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/redis-lua-script-setnx-rate-limiting-gogoduk" />
<lastmod>2026-06-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/postgresql-fts-vietnamese-address-autocomplete</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/postgresql-fts-vietnamese-address-autocomplete" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/postgresql-fts-vietnamese-address-autocomplete" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/redis-bitmaps-millions-users-online-offline</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/redis-bitmaps-millions-users-online-offline" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/redis-bitmaps-millions-users-online-offline" />
<lastmod>2026-06-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/vietnam-address-autocomplete-checkout-ux</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/vietnam-address-autocomplete-checkout-ux" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/vietnam-address-autocomplete-checkout-ux" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/vietnam-administrative-boundaries-logistics</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/vietnam-administrative-boundaries-logistics" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/vietnam-administrative-boundaries-logistics" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/gogoduk-vietnam-map-api-for-developers</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/gogoduk-vietnam-map-api-for-developers" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/gogoduk-vietnam-map-api-for-developers" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/nestjs-modular-architecture-production-apis</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/nestjs-modular-architecture-production-apis" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/nestjs-modular-architecture-production-apis" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/nextjs-seo-checklist-app-router</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/nextjs-seo-checklist-app-router" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/nextjs-seo-checklist-app-router" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/blog/dockerizing-nestjs-production</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/dockerizing-nestjs-production" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/dockerizing-nestjs-production" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/migrate-google-maps-api-to-vietnam-map-api-gogoduk</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/migrate-google-maps-api-to-vietnam-map-api-gogoduk" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/migrate-google-maps-api-to-vietnam-map-api-gogoduk" />
<lastmod>2026-06-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/redis-8-8-array-native-rate-limiter</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/redis-8-8-array-native-rate-limiter" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/redis-8-8-array-native-rate-limiter" />
<lastmod>2026-06-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/postgis-performance-tuning-vietnam-map-gogoduk</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/postgis-performance-tuning-vietnam-map-gogoduk" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/postgis-performance-tuning-vietnam-map-gogoduk" />
<lastmod>2026-06-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/redis-lua-script-setnx-rate-limiting-gogoduk</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/redis-lua-script-setnx-rate-limiting-gogoduk" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/redis-lua-script-setnx-rate-limiting-gogoduk" />
<lastmod>2026-06-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/postgresql-fts-vietnamese-address-autocomplete</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/postgresql-fts-vietnamese-address-autocomplete" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/postgresql-fts-vietnamese-address-autocomplete" />
<lastmod>2026-06-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/redis-bitmaps-millions-users-online-offline</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/redis-bitmaps-millions-users-online-offline" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/redis-bitmaps-millions-users-online-offline" />
<lastmod>2026-06-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/vietnam-address-autocomplete-checkout-ux</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/vietnam-address-autocomplete-checkout-ux" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/vietnam-address-autocomplete-checkout-ux" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/vietnam-administrative-boundaries-logistics</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/vietnam-administrative-boundaries-logistics" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/vietnam-administrative-boundaries-logistics" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/gogoduk-vietnam-map-api-for-developers</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/gogoduk-vietnam-map-api-for-developers" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/gogoduk-vietnam-map-api-for-developers" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/nestjs-modular-architecture-production-apis</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/nestjs-modular-architecture-production-apis" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/nestjs-modular-architecture-production-apis" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/nextjs-seo-checklist-app-router</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/nextjs-seo-checklist-app-router" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/nextjs-seo-checklist-app-router" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hoangtuan.me/vi/blog/dockerizing-nestjs-production</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://hoangtuan.me/blog/dockerizing-nestjs-production" />
<xhtml:link rel="alternate" hreflang="vi" href="https://hoangtuan.me/vi/blog/dockerizing-nestjs-production" />
<lastmod>2026-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
