<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://software-engineer-blog.com</loc>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/about-me</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/why-your-llm-keeps-returning-garbage-json-and-how-to-stop-it?id=60</loc>
<lastmod>2026-04-18T16:14:21.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/semantic-vs-keyword-vs-hybrid-search-what-every-rag-demo-skips?id=59</loc>
<lastmod>2026-04-16T12:46:26.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/when-llms-learn-to-remember-part-4-why-your-ais-memory-shouldnt-be-a-graph-database?id=58</loc>
<lastmod>2026-04-14T17:12:58.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/when-llms-learn-to-remember-part-3-how-openclaw-turns-llms-into-an-operating-system?id=57</loc>
<lastmod>2026-04-07T18:22:55.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/when-llms-learn-to-remember-part-2-building-a-memory-system-for-your-ai-assistant?id=56</loc>
<lastmod>2026-04-07T18:13:28.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/when-llms-learn-to-remember-part-1-llms-dont-remember-anything?id=55</loc>
<lastmod>2026-04-07T17:55:19.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/postgis-vs-duckdb-choosing-the-right-tool-for-spatial-data?id=54</loc>
<lastmod>2026-03-29T17:49:06.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/llm-model-types-reasoning-thinking-and-beyond?id=52</loc>
<lastmod>2026-03-26T14:47:54.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/running-llms-locally-small-models-quantization-and-your-4gb-gpu?id=53</loc>
<lastmod>2026-03-26T14:47:54.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/vision-language-models-when-ai-learns-to-see-and-talk-part-3-of-3?id=51</loc>
<lastmod>2026-03-22T12:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/vision-transformers-how-transformers-learned-to-see-part-2-of-3?id=50</loc>
<lastmod>2026-03-19T17:09:32.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/transformers-the-architecture-that-changed-ai-part-1-of-3?id=49</loc>
<lastmod>2026-03-17T12:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/ansible-automate-your-server-infrastructure-with-code?id=48</loc>
<lastmod>2026-03-13T12:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/rag-vs-knowledge-graphs-how-to-give-llms-the-right-context?id=47</loc>
<lastmod>2026-03-09T21:18:32.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-ai-agents-do-deep-search-building-a-research-agent-from-scratch?id=46</loc>
<lastmod>2026-03-06T12:03:51.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/build-your-own-local-text-to-speech-stack-with-python?id=45</loc>
<lastmod>2026-03-04T20:24:54.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/building-a-verifiable-ai-agent-with-the-react-framework?id=44</loc>
<lastmod>2026-03-01T20:32:32.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/building-ai-tool-calling-agents-from-scratch-with-python?id=43</loc>
<lastmod>2026-02-26T12:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-llm-function-calling-actually-works-from-tokens-to-tool-orchestration?id=42</loc>
<lastmod>2026-02-11T11:45:34.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/docker-secrets-vs-env-files-secure-configuration-management?id=41</loc>
<lastmod>2026-02-11T06:14:42.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/ai-agents-crash-course?id=40</loc>
<lastmod>2026-01-12T10:04:49.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/mlops-part-4-scaling-ml-systems?id=39</loc>
<lastmod>2025-10-20T18:09:50.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/mlops-part-3-cicd-for-machine-learning?id=38</loc>
<lastmod>2025-10-20T18:09:48.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/mlops-part-2-model-monitoring-and-observability?id=37</loc>
<lastmod>2025-10-20T18:09:47.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/mlops-part-1-model-deployment-and-serving?id=36</loc>
<lastmod>2025-10-20T15:22:59.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/understanding-acid-properties-in-databases?id=35</loc>
<lastmod>2025-10-10T14:26:45.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-run-n8n-on-your-vps-server-using-docker-and-nginx?id=34</loc>
<lastmod>2025-08-03T19:05:38.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-handle-stripe-webhooks-in-development-and-production?id=32</loc>
<lastmod>2025-06-12T07:12:48.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-add-a-deploy-key-to-github-on-windows-and-use-multiple-repositories?id=31</loc>
<lastmod>2025-06-08T14:07:24.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/monitor-cpu-ram-disk-usage-and-docker-health-with-prometheus-node-exporter-cadvisor?id=29</loc>
<lastmod>2025-04-29T14:10:53.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-deploy-a-grafana-server-in-your-vps-for-small-team-use?id=28</loc>
<lastmod>2025-04-28T09:49:14.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-add-a-deploy-key-to-github-step-by-step-guide?id=19</loc>
<lastmod>2025-03-18T15:48:20.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-run-docker-without-sudo-a-step-by-step-guide?id=18</loc>
<lastmod>2025-03-18T15:23:26.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-create-a-non-root-user-and-disable-root-ssh-access-in-ubuntu?id=15</loc>
<lastmod>2025-03-07T16:06:35.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-use-screen-for-long-file-transfers-with-rsync?id=14</loc>
<lastmod>2025-03-06T18:39:50.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/comprehensive-glusterfs-installation-and-configuration-guide?id=13</loc>
<lastmod>2025-03-06T18:24:28.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-configure-a-vlan-vswitch-on-hetzner-using-netplan?id=12</loc>
<lastmod>2025-03-05T14:54:27.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-change-a-users-password-on-ubuntu-a-step-by-step-guide?id=11</loc>
<lastmod>2025-03-05T14:02:48.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/ubuntu-server-setup-with-dual-raid-systems?id=10</loc>
<lastmod>2025-03-05T11:13:24.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/secure-loki-access-with-nginx-authentication?id=9</loc>
<lastmod>2025-03-04T16:24:22.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/logs-monitoring-with-loki-and-promtail?id=8</loc>
<lastmod>2025-03-03T16:23:55.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/scheduled-backup-and-restore-postgresql-database-using-docker?id=7</loc>
<lastmod>2025-03-03T13:40:53.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/understanding-settimeout-and-setinterval-in-javascript?id=6</loc>
<lastmod>2025-03-01T09:13:07.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/how-to-exclude-local-files-from-git-repositories-using-gitignore?id=5</loc>
<lastmod>2025-03-01T09:09:43.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/a-step-by-step-guide-to-setting-up-ssh-key-authentication?id=4</loc>
<lastmod>2025-02-28T18:26:09.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/geoserver-installation-a-step-by-step-guide?id=3</loc>
<lastmod>2025-02-27T16:07:06.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/crontab-with-logging-automating-tasks-on-your-server-a-step-by-step-guide-to-setting-up-crontab-with-python-and-shell-scripting?id=2</loc>
<lastmod>2025-02-27T06:41:59.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://software-engineer-blog.com/content/prometheus-for-monitoring-a-flask-app-redis-and-postgresql?id=1</loc>
<lastmod>2025-02-21T12:44:41.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
