<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://blog.zakaria.lu/</loc></url>
  <url><loc>https://blog.zakaria.lu/shipping-my-own-site-at-the-speed-of-a-prompt</loc><lastmod>2026-07-08T02:40:49.545264Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/i-red-teamed-my-own-ai-concierge</loc><lastmod>2026-07-07T19:31:17.923154Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/cloning-my-own-voice-on-a-cpu-in-20-minutes-with-pocket-tts-2</loc><lastmod>2026-07-08T01:16:38.092114Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/aggregate-roots-in-spring-data-jdbc-the-delete-boundary-rule</loc><lastmod>2026-07-08T01:28:38.373627Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/ask-zakaria-i-bolted-a-grounded-ai-chat-onto-my-cv-site-2</loc><lastmod>2026-07-08T00:59:38.616010Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/loop-engineering-with-claude-code-four-rungs-and-three-bites</loc><lastmod>2026-07-08T01:03:59.125005Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/systemctl-isn-t-the-thing-that-runs-your-services</loc><lastmod>2026-07-08T01:29:33.965807Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/spring-batch-6-hands-on-a-new-engine-a-real-operator-and-stops-that-cross-jvms</loc><lastmod>2026-07-08T01:30:24.812125Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/building-an-mcp-tool-with-spring-boot-ai-2</loc><lastmod>2026-07-08T01:31:31.422623Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/flyway-on-spring-boot-4-and-java-25-a-silent-failure-and-what-it-taught-me-about-modular-auto-config</loc><lastmod>2026-07-08T01:32:24.495847Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/okf-open-knowledge-format-guide</loc><lastmod>2026-07-08T01:07:26.964710Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/field-notes-running-my-fastmail-inbox-over-mcp</loc><lastmod>2026-07-08T01:33:33.396723Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/an-intro-to-traceql-how-to-actually-query-traces-in-grafana-tempo</loc><lastmod>2026-07-08T01:10:18.956870Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/manual-tracing-in-spring-boot-with-opentelemetry-withspan-hand-built-spans-and-the-traps-in-between</loc><lastmod>2026-07-08T01:34:27.539807Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/docker-secrets-the-delivery-channel-is-the-whole-game</loc><lastmod>2026-07-08T01:35:49.779545Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/i-turned-my-website-into-a-design-system-for-claude</loc><lastmod>2026-07-08T01:13:27.265568Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/verifying-a-domain-in-google-search-console-the-dns-txt-gotcha</loc><lastmod>2026-07-08T01:40:18.940788Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/spring-mvc-won-t-throw-constraintviolationexception-here-s-what-it-throws-instead</loc><lastmod>2026-07-08T01:41:48.251364Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/llms-txt-robots-txt-for-the-age-of-ai-agents</loc><lastmod>2026-07-08T01:38:19.131543Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/one-spring-boot-jar-two-hosts-a-gated-spa-and-a-public-blog</loc><lastmod>2026-07-08T01:42:28.595384Z</lastmod></url>
  <url><loc>https://blog.zakaria.lu/tags/agents</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/ai</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/ai-agents</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/ai-tooling</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/architecture</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/automation</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/batch</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/bean-validation</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/cgroups</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/ci-cd</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/claude</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/claude-code</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/cli</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/ddd</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/deepseek</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/design-system</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/developer-tools</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/devex</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/devops</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/dns</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/docker</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/email</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/fastmail</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/flyway</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/frontend</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/grafana</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/hibernate-validator</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/java</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/kafka</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/knowledge-base</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/linux</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/llm</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/llms-txt</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/loops</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/mcp</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/observability</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/okf</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/opentelemetry</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/postgres</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/prompt-injection</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/python</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/react</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/search-console</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/secrets</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/security</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/seo</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/spring</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/spring-ai</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/spring-batch</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/spring-boot</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/spring-data-jdbc</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/sse</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/systemd</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/tempo</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/traceql</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/tracing</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/traefik</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/tts</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/uv</loc></url>
  <url><loc>https://blog.zakaria.lu/tags/workflow</loc></url>
</urlset>
