<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://mart.traagel.dev/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://mart.traagel.dev/cv/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://mart.traagel.dev/projects/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.85</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://mart.traagel.dev/hobbies/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/hobbies/fpv/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/server/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/uses/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/cidr/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/whats-my-ip/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/cron/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/jwt-decoder/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/json-yaml/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/base64/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/uuid/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/timestamp/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/dns-lookup/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/url-encode/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/http-headers/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/ssl-cert/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/aws-arn/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/regex-tester/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/sql-formatter/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/kubectl-secret/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/curl-converter/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/color-contrast/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/json-to-types/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/markdown-preview/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/salary-estonia/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/tools/contractor-rate-estonia/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/why-caddy-is-called-caddy/</loc>
<lastmod>2026-06-07T13:05:59.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/where-the-word-firewall-comes-from/</loc>
<lastmod>2026-06-07T13:05:59.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/where-the-word-port-comes-from/</loc>
<lastmod>2026-06-07T13:05:59.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/where-the-word-bug-comes-from/</loc>
<lastmod>2026-06-07T12:31:22.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/where-the-word-daemon-comes-from/</loc>
<lastmod>2026-06-07T12:40:16.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/why-git-is-called-git/</loc>
<lastmod>2026-06-07T13:05:59.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/why-apache-is-called-apache/</loc>
<lastmod>2026-06-07T13:05:59.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/why-a-docker-image-is-called-an-image/</loc>
<lastmod>2026-05-25T13:23:22.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/why-python-is-called-python/</loc>
<lastmod>2026-05-29T09:11:09.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/duckdb-the-single-node-engine-eating-the-warehouse/</loc>
<lastmod>2026-06-07T13:15:24.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/ducklake-metadata-belongs-in-a-database/</loc>
<lastmod>2026-06-07T13:15:24.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/how-iceberg-won-the-table-format-war/</loc>
<lastmod>2026-06-07T13:15:24.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/vibe-coding-and-the-tech-debt-bill/</loc>
<lastmod>2026-06-07T13:15:25.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/where-the-http-cookie-comes-from/</loc>
<lastmod>2026-06-07T13:15:25.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/where-the-word-spam-comes-from/</loc>
<lastmod>2026-06-07T13:15:26.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/why-bluetooth-is-called-bluetooth/</loc>
<lastmod>2026-06-07T13:15:26.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/why-java-is-called-java/</loc>
<lastmod>2026-06-07T13:15:26.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/why-javascript-is-called-javascript/</loc>
<lastmod>2026-06-07T13:15:26.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/zero-etl-querying-data-without-moving-it/</loc>
<lastmod>2026-06-07T13:15:26.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/context-engineering-the-job-prompt-engineering-became/</loc>
<lastmod>2026-06-07T13:16:24.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/evals-are-the-new-unit-tests/</loc>
<lastmod>2026-06-07T13:16:24.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/mcp-a2a-acp-the-agent-protocol-landscape/</loc>
<lastmod>2026-06-07T13:16:24.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/what-agentic-actually-means/</loc>
<lastmod>2026-06-07T13:16:24.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/what-mcp-actually-is/</loc>
<lastmod>2026-06-07T13:16:25.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/what-we-mean-when-we-say-the-cloud/</loc>
<lastmod>2026-05-21T10:40:15.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/the-hidden-cost-of-a-lakehouse-on-s3/</loc>
<lastmod>2026-05-21T15:13:01.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/what-does-grep-stand-for/</loc>
<lastmod>2026-05-23T18:23:39.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/yaml-vs-yml-and-what-markup-actually-means/</loc>
<lastmod>2026-05-24T13:15:11.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/ssh-the-protocol-nothing-displaced/</loc>
<lastmod>2026-05-24T13:20:55.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/the-editor-wars-modal-vs-modeless/</loc>
<lastmod>2026-05-24T13:25:20.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/posix-the-standard-nobody-reads/</loc>
<lastmod>2026-05-24T13:25:20.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/the-cold-start-tax/</loc>
<lastmod>2026-05-24T13:27:39.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/why-kubernetes-is-called-k8s/</loc>
<lastmod>2026-05-24T13:30:58.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/where-the-name-docker-comes-from/</loc>
<lastmod>2026-05-26T09:23:06.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/json-discovered-not-invented/</loc>
<lastmod>2026-05-26T09:56:46.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/sql-or-sequel-a-short-history/</loc>
<lastmod>2026-05-21T08:40:10.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/where-database-names-come-from/</loc>
<lastmod>2026-05-21T08:40:10.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/review-llm-diffs-as-a-team/</loc>
<lastmod>2026-05-21T08:40:09.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/twenty-llms-do-not-make-a-team/</loc>
<lastmod>2026-05-21T08:40:09.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/what-this-series-is/</loc>
<lastmod>2026-05-24T13:20:56.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/ai-cannot-guardrail-against-ai/</loc>
<lastmod>2026-05-21T08:40:08.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/ai-ides-are-skins-over-the-same-models/</loc>
<lastmod>2026-05-21T08:40:09.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/deploy-a-real-app-on-k3s/</loc>
<lastmod>2026-05-31T17:58:03.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/kubernetes-config-secrets-and-storage/</loc>
<lastmod>2026-05-31T17:58:03.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/kubernetes-ingress-with-traefik/</loc>
<lastmod>2026-05-31T17:58:03.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/kubernetes-services-and-networking/</loc>
<lastmod>2026-05-31T17:58:04.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/kubernetes-deployments-and-self-healing/</loc>
<lastmod>2026-05-31T17:58:04.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/kubernetes-pods-explained/</loc>
<lastmod>2026-05-31T17:58:03.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/set-up-a-k3s-cluster/</loc>
<lastmod>2026-05-31T17:58:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/kubernetes-clusters-control-plane-and-nodes/</loc>
<lastmod>2026-05-31T17:58:04.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-kubernetes-actually-is/</loc>
<lastmod>2026-05-31T17:58:04.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/kubernetes-with-k3s/</loc>
<lastmod>2026-05-31T17:58:04.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/from-docker-to-k3s/</loc>
<lastmod>2026-05-31T17:24:44.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/monitoring-your-homelab/</loc>
<lastmod>2026-05-31T17:58:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/homelab-storage-and-backups/</loc>
<lastmod>2026-05-31T17:58:06.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/reverse-proxy-and-your-first-self-hosted-service/</loc>
<lastmod>2026-05-31T17:58:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/docker-and-compose-on-debian/</loc>
<lastmod>2026-05-31T17:58:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/hardening-a-fresh-debian-server/</loc>
<lastmod>2026-05-31T17:58:06.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/installing-debian-server/</loc>
<lastmod>2026-05-31T18:10:49.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/why-debian-for-a-homelab/</loc>
<lastmod>2026-05-31T17:58:06.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/homelab-on-debian/</loc>
<lastmod>2026-05-31T17:58:07.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-initramfs-is/</loc>
<lastmod>2026-05-31T14:40:25.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-a-reverse-proxy-actually-does/</loc>
<lastmod>2026-05-31T21:19:28.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-nat/</loc>
<lastmod>2026-05-31T21:19:29.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-a-vpn/</loc>
<lastmod>2026-05-31T21:19:29.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-tls/</loc>
<lastmod>2026-05-31T21:19:29.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-systemd-is/</loc>
<lastmod>2026-05-31T14:40:25.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/linux-gpu-drivers-explained/</loc>
<lastmod>2026-05-31T14:40:24.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/linux-network-management-explained/</loc>
<lastmod>2026-05-31T14:40:24.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/disk-partitioning-gpt-and-the-efi-system-partition/</loc>
<lastmod>2026-05-31T22:02:44.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/bootloaders-systemd-boot-vs-grub/</loc>
<lastmod>2026-05-31T14:40:24.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/linux-swap-explained/</loc>
<lastmod>2026-05-31T14:40:23.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/linux-filesystems-explained/</loc>
<lastmod>2026-05-31T14:40:23.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/installing-arch-linux-part-3-desktop-and-drivers/</loc>
<lastmod>2026-05-31T18:06:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/installing-arch-linux-part-2-base-system-and-boot/</loc>
<lastmod>2026-05-31T18:06:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/installing-arch-linux-part-1-boot-and-disks/</loc>
<lastmod>2026-05-31T18:10:49.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/buy-a-domain-and-point-dns/</loc>
<lastmod>2026-05-31T20:58:09.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/provision-a-hetzner-vps/</loc>
<lastmod>2026-05-31T20:58:09.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/routing-into-k3s-from-the-edge/</loc>
<lastmod>2026-05-31T20:58:10.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/hardening-and-operating-a-public-edge/</loc>
<lastmod>2026-05-31T21:02:51.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/expose-your-homelab/</loc>
<lastmod>2026-05-31T21:19:30.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/why-self-host-behind-a-vps/</loc>
<lastmod>2026-05-31T21:19:30.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/caddy-reverse-proxy-and-automatic-https/</loc>
<lastmod>2026-05-31T21:19:30.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/wireguard-tunnel-vps-to-homelab/</loc>
<lastmod>2026-05-31T21:19:31.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/why-arch-linux/</loc>
<lastmod>2026-05-31T18:06:04.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/installing-arch-linux/</loc>
<lastmod>2026-05-31T18:06:04.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/migrating-from-macos-to-linux/</loc>
<lastmod>2026-05-31T20:18:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/migrating-from-windows-to-linux/</loc>
<lastmod>2026-05-31T14:40:22.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-a-desktop-environment-is/</loc>
<lastmod>2026-05-31T14:40:22.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/linux-distributions-explained/</loc>
<lastmod>2026-05-31T14:40:21.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-linux-actually-is/</loc>
<lastmod>2026-05-31T14:40:21.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/the-linux-series/</loc>
<lastmod>2026-05-31T20:18:04.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/why-switch-to-linux/</loc>
<lastmod>2026-05-31T20:18:04.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-a-regular-expression/</loc>
<lastmod>2026-05-23T18:23:38.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/understanding-cors/</loc>
<lastmod>2026-05-21T12:10:56.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/how-to-traceroute/</loc>
<lastmod>2026-05-21T12:10:56.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-dns/</loc>
<lastmod>2026-05-21T12:13:57.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-a-jupyter-notebook/</loc>
<lastmod>2026-05-21T12:18:36.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/dynamic-vs-static-ip/</loc>
<lastmod>2026-05-21T12:27:47.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/ipv4-vs-ipv6/</loc>
<lastmod>2026-05-21T12:27:48.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/unix-timestamps-explained/</loc>
<lastmod>2026-05-21T12:27:48.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-cidr/</loc>
<lastmod>2026-05-21T12:27:49.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-a-subnet/</loc>
<lastmod>2026-05-21T12:27:49.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-anycast/</loc>
<lastmod>2026-05-21T12:27:49.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-a-jwt/</loc>
<lastmod>2026-05-21T12:27:49.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/what-is-cron/</loc>
<lastmod>2026-05-21T12:27:50.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/networking/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/operating-systems/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/linux/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/kernel/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/homelab/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/kubernetes/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/programming/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/runtimes/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/environment/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/web/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/maker/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/hardware/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/3d-printing/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/learn/category/fpv-drones/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/agentic-ai/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ai/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ai-assisted/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ai-ides/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/anycast/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/apache/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/arch-linux/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/architecture/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/auth/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/backups/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/bgp/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/bluetooth/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/boot/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/bootloader/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/brooks/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/burnout/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/caddy/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/cdn/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/cgnat/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/cidr/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/clickhouse/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/cloud/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/code-review/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/cognitive-debt/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/containers/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/context-engineering/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/cors/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/cost/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/cron/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/data/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/data-science/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/databases/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/databricks/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/debian/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/debugging/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/deployments/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/desktop-environment/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/deterministic-tools/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/dhcp/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/distributions/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/dns/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/docker/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/domains/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/drivers/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/duckdb/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ducklake/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/emacs/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/epoch/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/evals/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/filesystems/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/firewall/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/gaming/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/git/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/gpu/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/guardrails/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/hallucination/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/hardening/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/helm/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/hetzner/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/history/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/homelab/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/http/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/https/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/iceberg/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/infrastructure/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ingress/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/init/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/initramfs/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/installation/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ip/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ipv4/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ipv6/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ipython/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/java/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/javascript/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/json/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/jupyter/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/jwt/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/k3s/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/k8s/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/kernel/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/kubernetes/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/lakehouse/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/linux/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/llm/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/macos/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/markup/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/mcp/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/memory/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/meta/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/migration/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/mob-programming/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/monitoring/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/mtr/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/naming/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/nano/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/nat/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/networking/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/observability/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/open-source/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/opinion/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/orchestration/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/partitioning/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/pattern-matching/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/pods/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/posix/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/privacy/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/productivity/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/programming/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/protocols/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/python/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/regex/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/regular-expression/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/reverse-proxy/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/s3/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/scheduling/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/security/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/self-hosting/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/series/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/sql/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/ssh/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/standards/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/storage/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/subnet/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/swap/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/systemd/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/tcp/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/team-practice/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/team-scaling/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/testing/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/time/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/tls/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/traceroute/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/traefik/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/tunnel/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/unix/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/unix-time/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/vibe-coding/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/vim/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/vpn/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/vps/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/warehouse/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/wayland/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/web/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/web-server/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/windows/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/wireguard/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/writing/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://mart.traagel.dev/blog/tag/yaml/</loc>
<lastmod>2026-06-09T09:58:35.070Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
