<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://mehdidiouri.dev</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/about</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/lab</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/contact</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/uses</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/cv</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/privacy-policy</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/cookie-policy</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/terms-of-service</loc>
<lastmod>2026-03-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/automating-short-form-video-pipeline-python</loc>
<lastmod>2026-07-15T00:58:55.764Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/building-a-system-driven-portfolio</loc>
<lastmod>2026-07-15T00:58:55.776Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/building-privacy-first-self-hosted-finance-manager</loc>
<lastmod>2026-07-15T00:58:55.785Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/building-real-estate-platform-moroccan-market</loc>
<lastmod>2026-07-15T00:58:55.795Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/building-self-hosted-developer-portfolio-nextjs-prisma-docker</loc>
<lastmod>2026-07-15T00:58:55.806Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/building-tastify-real-time-restaurant-erp-sentiment-analysis</loc>
<lastmod>2026-07-15T00:58:55.816Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/deploy-private-ghcr-docker-image-ubuntu-vps</loc>
<lastmod>2026-07-15T00:58:55.825Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/designing-idempotent-prisma-seed-production</loc>
<lastmod>2026-07-15T00:58:55.834Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/designing-industrial-barcode-traceability-aspnet-core</loc>
<lastmod>2026-07-15T00:58:55.843Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/fix-ssh-private-key-permissions-windows</loc>
<lastmod>2026-07-15T00:58:55.852Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/nextjs-sqlite-docker-persistent-volume</loc>
<lastmod>2026-07-15T00:58:55.860Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/production-readiness-checklist-student-full-stack-projects</loc>
<lastmod>2026-07-15T00:58:55.869Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/using-ai-coding-agents-without-breaking-codebase</loc>
<lastmod>2026-07-15T00:58:55.878Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/monorepos-vs-polyrepos-choosing-the-right-structure-for-your-project</loc>
<lastmod>2026-07-15T03:06:44.719Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-every-developer-should-understand-database-indexing</loc>
<lastmod>2026-07-24T02:02:57.151Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/typescript-generics-a-practical-guide-without-the-theory-overload</loc>
<lastmod>2026-07-24T11:04:14.096Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/authentication-vs-authorization-clearing-the-confusion</loc>
<lastmod>2026-07-24T11:53:58.490Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/http-status-codes-the-ones-you-actually-need-to-know</loc>
<lastmod>2026-07-24T12:20:50.498Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-sqlite-is-a-better-choice-than-you-think-for-web-apps</loc>
<lastmod>2026-07-24T12:45:41.833Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/typescript-generics-a-practical-guide-without-the-theory-overload-1</loc>
<lastmod>2026-07-24T13:25:28.703Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/container-orchestration-without-kubernetes-docker-compose-in-production</loc>
<lastmod>2026-07-24T13:36:13.909Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/websockets-vs-server-sent-events-vs-polling-when-to-use-what</loc>
<lastmod>2026-07-24T13:43:08.100Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/typescript-generics-a-practical-guide-without-the-theory-overload-2</loc>
<lastmod>2026-07-26T22:33:15.691Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/the-hidden-cost-of-n-1-queries-in-web-applications</loc>
<lastmod>2026-07-26T22:33:03.753Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-your-ci-cd-pipeline-should-run-the-same-commands-as-your-laptop</loc>
<lastmod>2026-07-26T22:32:49.651Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-every-developer-should-understand-database-indexing-1</loc>
<lastmod>2026-07-26T22:33:09.737Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/linux-commands-every-developer-should-know-by-heart</loc>
<lastmod>2026-07-26T22:33:23.733Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/rest-api-design-principles-every-developer-should-know</loc>
<lastmod>2026-07-26T22:32:56.042Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/environment-variables-the-right-way-to-handle-configuration</loc>
<lastmod>2026-07-26T22:32:43.028Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/docker-volumes-explained-why-your-data-disappears</loc>
<lastmod>2026-07-28T00:04:02.683Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-your-ci-cd-pipeline-should-run-the-same-commands-as-your-laptop-1</loc>
<lastmod>2026-07-28T00:03:54.612Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-sqlite-is-a-better-choice-than-you-think-for-web-apps-1</loc>
<lastmod>2026-07-28T11:15:45.437Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/ssh-keys-explained-from-generation-to-deployment</loc>
<lastmod>2026-07-28T11:15:39.586Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/linux-commands-every-developer-should-know-by-heart-1</loc>
<lastmod>2026-07-28T13:17:04.346Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/monorepos-vs-polyrepos-choosing-the-right-structure-for-your-project-1</loc>
<lastmod>2026-07-29T00:17:24.898Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/http-status-codes-the-ones-you-actually-need-to-know-1</loc>
<lastmod>2026-07-29T00:17:46.279Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/docker-volumes-explained-why-your-data-disappears-1</loc>
<lastmod>2026-07-29T00:18:03.651Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/git-branching-strategies-that-actually-work-for-small-teams</loc>
<lastmod>2026-07-30T00:18:46.479Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/http-status-codes-the-ones-you-actually-need-to-know-2</loc>
<lastmod>2026-07-30T00:19:12.354Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-every-developer-should-understand-database-indexing-2</loc>
<lastmod>2026-07-30T00:19:14.291Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-your-ci-cd-pipeline-should-run-the-same-commands-as-your-laptop-2</loc>
<lastmod>2026-07-31T00:19:57.364Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-sqlite-is-a-better-choice-than-you-think-for-web-apps-2</loc>
<lastmod>2026-07-31T00:20:17.161Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/the-hidden-cost-of-n-1-queries-in-web-applications-1</loc>
<lastmod>2026-07-31T00:20:19.699Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-every-developer-should-understand-database-indexing-3</loc>
<lastmod>2026-08-01T00:22:19.117Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-sqlite-is-a-better-choice-than-you-think-for-web-apps-3</loc>
<lastmod>2026-08-01T00:22:49.226Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-sqlite-is-a-better-choice-than-you-think-for-web-apps-4</loc>
<lastmod>2026-08-01T00:23:06.482Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/code-review-checklist-for-the-rest-of-us</loc>
<lastmod>2026-08-02T00:23:47.915Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/linux-commands-every-developer-should-know-by-heart-2</loc>
<lastmod>2026-08-02T00:24:08.330Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/understanding-cors-why-your-api-requests-fail-in-the-browser</loc>
<lastmod>2026-08-02T00:24:24.016Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/typescript-generics-a-practical-guide-without-the-theory-overload-3</loc>
<lastmod>2026-08-03T00:25:05.467Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/linux-commands-every-developer-should-know-by-heart-3</loc>
<lastmod>2026-08-03T00:25:25.853Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/websockets-vs-server-sent-events-vs-polling-when-to-use-what-1</loc>
<lastmod>2026-08-03T00:25:41.925Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/git-branching-strategies-that-actually-work-for-small-teams-1</loc>
<lastmod>2026-08-04T00:20:32.473Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/the-art-of-writing-good-error-messages</loc>
<lastmod>2026-08-04T00:21:02.701Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/the-art-of-writing-good-error-messages-1</loc>
<lastmod>2026-08-04T00:21:05.376Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/rest-api-design-principles-every-developer-should-know-1</loc>
<lastmod>2026-08-05T00:21:46.322Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/authentication-vs-authorization-clearing-the-confusion-1</loc>
<lastmod>2026-08-05T00:22:06.554Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/ssh-keys-explained-from-generation-to-deployment-1</loc>
<lastmod>2026-08-05T00:22:21.302Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-sqlite-is-a-better-choice-than-you-think-for-web-apps-5</loc>
<lastmod>2026-08-06T00:23:03.561Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/environment-variables-the-right-way-to-handle-configuration-1</loc>
<lastmod>2026-08-06T00:23:33.005Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/docker-volumes-explained-why-your-data-disappears-2</loc>
<lastmod>2026-08-06T00:23:38.226Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/code-review-checklist-for-the-rest-of-us-1</loc>
<lastmod>2026-08-07T00:24:20.497Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/ssh-keys-explained-from-generation-to-deployment-2</loc>
<lastmod>2026-08-07T00:24:49.456Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/code-review-checklist-for-the-rest-of-us-2</loc>
<lastmod>2026-08-07T00:24:59.027Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/authentication-vs-authorization-clearing-the-confusion-2</loc>
<lastmod>2026-08-08T00:25:42.480Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/monorepos-vs-polyrepos-choosing-the-right-structure-for-your-project-2</loc>
<lastmod>2026-08-08T00:25:47.193Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/environment-variables-the-right-way-to-handle-configuration-2</loc>
<lastmod>2026-08-08T00:25:51.427Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/typescript-generics-a-practical-guide-without-the-theory-overload-4</loc>
<lastmod>2026-08-09T00:26:34.022Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-your-ci-cd-pipeline-should-run-the-same-commands-as-your-laptop-3</loc>
<lastmod>2026-08-09T00:26:39.146Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/monorepos-vs-polyrepos-choosing-the-right-structure-for-your-project-3</loc>
<lastmod>2026-08-09T00:26:44.160Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/the-art-of-writing-good-error-messages-2</loc>
<lastmod>2026-08-10T00:27:27.265Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/the-hidden-cost-of-n-1-queries-in-web-applications-2</loc>
<lastmod>2026-08-10T00:27:57.121Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/the-art-of-writing-good-error-messages-3</loc>
<lastmod>2026-08-10T00:28:29.988Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/websockets-vs-server-sent-events-vs-polling-when-to-use-what-2</loc>
<lastmod>2026-08-11T00:29:13.117Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/authentication-vs-authorization-clearing-the-confusion-3</loc>
<lastmod>2026-08-11T00:29:43.314Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/docker-volumes-explained-why-your-data-disappears-3</loc>
<lastmod>2026-08-11T00:30:15.707Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/rest-api-design-principles-every-developer-should-know-2</loc>
<lastmod>2026-08-12T00:30:57.149Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-every-developer-should-understand-database-indexing-4</loc>
<lastmod>2026-08-12T00:31:16.418Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/linux-commands-every-developer-should-know-by-heart-4</loc>
<lastmod>2026-08-12T00:31:33.759Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/http-status-codes-the-ones-you-actually-need-to-know-3</loc>
<lastmod>2026-08-13T00:32:16.758Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/rest-api-design-principles-every-developer-should-know-3</loc>
<lastmod>2026-08-13T00:32:36.270Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/rest-api-design-principles-every-developer-should-know-4</loc>
<lastmod>2026-08-13T00:32:55.033Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/understanding-cors-why-your-api-requests-fail-in-the-browser-1</loc>
<lastmod>2026-08-14T00:33:37.197Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/linux-commands-every-developer-should-know-by-heart-5</loc>
<lastmod>2026-08-14T00:34:07.161Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/git-branching-strategies-that-actually-work-for-small-teams-2</loc>
<lastmod>2026-08-14T00:34:16.356Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/ssh-keys-explained-from-generation-to-deployment-3</loc>
<lastmod>2026-08-15T00:34:58.472Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/why-sqlite-is-a-better-choice-than-you-think-for-web-apps-6</loc>
<lastmod>2026-08-15T00:35:18.771Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/websockets-vs-server-sent-events-vs-polling-when-to-use-what-3</loc>
<lastmod>2026-08-15T00:35:33.385Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/json-web-tokens-how-they-work-and-how-to-use-them-safely</loc>
<lastmod>2026-08-16T00:36:14.726Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/code-review-checklist-for-the-rest-of-us-3</loc>
<lastmod>2026-08-16T00:36:45.323Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/the-art-of-writing-good-error-messages-4</loc>
<lastmod>2026-08-16T01:37:06.259Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/blog/json-web-tokens-how-they-work-and-how-to-use-them-safely-1</loc>
<lastmod>2026-08-17T00:39:26.035Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects/tastify-restaurant-erp-sentiment-analysis</loc>
<lastmod>2026-07-24T09:45:57.013Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects/industrial-box-package-tracking-system</loc>
<lastmod>2026-07-24T09:46:40.757Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects/immobilier-diouri-real-estate-platform</loc>
<lastmod>2026-07-14T22:34:01.575Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects/jobtech-ai-assisted-recruitment-platform</loc>
<lastmod>2026-07-14T22:34:01.587Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects/depanceapp-self-hosted-personal-finance-manager</loc>
<lastmod>2026-07-24T09:47:50.815Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects/emsee-real-time-social-network</loc>
<lastmod>2026-07-14T22:34:01.607Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects/automated-short-form-video-generator</loc>
<lastmod>2026-07-24T09:56:06.831Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects/dentalhub-dental-clinic-domain-system</loc>
<lastmod>2026-07-14T22:34:01.626Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mehdidiouri.dev/projects/rock-paper-scissors-c-console-game</loc>
<lastmod>2026-07-14T22:34:01.634Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
