<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://blog.rashik.dev</loc>
    <lastmod>2026-10-31T16:54:41.042Z</lastmod>
    <changefreq>always</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-17-wrap-up-the-checklist-what-we-skipped-and-where-to-go-next</loc>
    <lastmod>2026-10-25T07:43:56.067Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-16-openapi-a-contract-that-can-t-drift-and-a-docs-page-you-can-trust</loc>
    <lastmod>2026-10-25T07:39:41.370Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-15-idempotency-keys-making-retries-safe</loc>
    <lastmod>2026-10-25T07:38:41.559Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-14-tls-encrypting-the-wire-hot-reloading-certificates-and-verifying-the-database</loc>
    <lastmod>2026-10-25T07:34:30.296Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-13-protecting-the-login-endpoint-layered-rate-limiting</loc>
    <lastmod>2026-10-25T07:32:06.522Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-12-authorization-roles-ownership-and-the-bug-class-behind-most-api-breaches</loc>
    <lastmod>2026-10-25T07:28:44.283Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-11-authentication-passwords-jwts-and-refresh-tokens-that-can-t-be-replayed</loc>
    <lastmod>2026-10-25T07:27:49.831Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-10-rate-limiting-and-the-spoofing-trap-that-breaks-most-implementations</loc>
    <lastmod>2026-10-25T07:25:32.294Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-9-pagination-and-api-performance</loc>
    <lastmod>2026-10-25T07:23:21.134Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-8-docker-and-docker-compose-ship-the-app-run-the-whole-stack</loc>
    <lastmod>2026-10-25T07:15:24.195Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-7-observability-logs-metrics-traces-and-health-checks</loc>
    <lastmod>2026-10-25T07:13:43.436Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-6-moving-to-postgresql</loc>
    <lastmod>2026-10-24T18:43:12.493Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-5-a-second-resource-structure-relations-and-cascades</loc>
    <lastmod>2026-10-24T09:55:27.400Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-4-configuration-that-fails-fast</loc>
    <lastmod>2026-10-24T06:05:35.166Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-3-production-basics-validation-errors-context-middleware-graceful-shutdown</loc>
    <lastmod>2026-10-24T05:24:07.741Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-2-persistence-with-sqlite-and-database-sql</loc>
    <lastmod>2026-10-24T05:21:45.604Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/part-1-crud-in-memory-with-nothing-but-net-http</loc>
    <lastmod>2026-10-23T22:37:17.563Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/build-a-production-grade-rest-api-in-go-step-by-step</loc>
    <lastmod>2026-10-23T22:35:38.034Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/series/go-rest-api</loc>
    <lastmod>2026-10-31T16:54:41.042Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.rashik.dev/archive</loc>
    <lastmod>2026-10-31T16:54:41.042Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
</urlset>