<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://blog.leonpennings.com</loc>
    <lastmod>2026-08-13T20:20:59.989Z</lastmod>
    <changefreq>always</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/how-do-you-tell-your-software-application-is-of-high-quality-part-2</loc>
    <lastmod>2026-08-13T08:54:27.724Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/how-do-you-tell-your-software-application-is-of-high-quality</loc>
    <lastmod>2026-08-10T09:48:38.434Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/discovery-and-fit-testing-the-two-jobs-of-a-domain-model</loc>
    <lastmod>2026-07-21T07:49:41.145Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/why-expensive-software-development-never-looks-expensive</loc>
    <lastmod>2026-07-16T06:45:23.573Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/why-software-can-t-tell-you-it-s-wrong</loc>
    <lastmod>2026-07-08T07:00:38.469Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-software-bug-ai-can-t-find</loc>
    <lastmod>2026-06-26T20:39:47.526Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/solid-principles-forks-to-eat-soup</loc>
    <lastmod>2026-06-23T07:45:11.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/what-is-the-reason-for-using-a-rich-domain-model-in-the-age-of-ai</loc>
    <lastmod>2026-06-19T11:37:55.243Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/antipatterns-never-left-we-just-stopped-calling-them-by-name</loc>
    <lastmod>2026-06-15T12:08:58.180Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/how-to-prevent-contradicting-ai-prompts</loc>
    <lastmod>2026-06-10T06:58:51.925Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-invisible-invoice-the-cost-of-building-software-without-understanding-it</loc>
    <lastmod>2026-06-07T18:18:01.245Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/ai-and-enterprise-software-development</loc>
    <lastmod>2026-06-03T08:01:13.211Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/scrum-works-but-only-when-the-people-making-decisions-feel-the-outcomes</loc>
    <lastmod>2026-06-01T05:16:51.322Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-gods-that-ate-the-engineers</loc>
    <lastmod>2026-05-27T05:53:39.168Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-properties-of-enterprise-software-that-lasts</loc>
    <lastmod>2026-05-21T08:40:32.177Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/what-is-a-rich-domain-model</loc>
    <lastmod>2026-05-19T11:46:14.769Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-architecture-tax-why-enterprise-software-is-expensive-and-why-ai-won-t-fix-it</loc>
    <lastmod>2026-05-18T07:36:46.091Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/engineering-a-ui-for-a-java-backend-maintainability-longevity-and-why-the-answer-might-surprise-you</loc>
    <lastmod>2026-05-13T07:56:44.464Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/parts-in-transit-why-most-distributed-systems-are-prematurely-complex</loc>
    <lastmod>2026-05-10T20:28:29.534Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/ai-can-build-anything-except-an-understanding-of-what-you-are-building</loc>
    <lastmod>2026-05-04T08:27:29.907Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/how-to-test-whether-your-software-solution-actually-fits-the-problem</loc>
    <lastmod>2026-04-28T06:02:03.369Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-underestimated-power-of-encapsulation-in-software-engineering</loc>
    <lastmod>2026-04-27T08:44:50.834Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/rich-domain-modelling-a-library-story</loc>
    <lastmod>2026-04-19T12:33:49.708Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/software-engineering-is-living-the-golden-hammer-antipattern-and-everyone-loves-it</loc>
    <lastmod>2026-04-14T05:23:40.976Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/fast-onboarding-of-software-engineers-the-two-learning-modes</loc>
    <lastmod>2026-04-10T11:41:27.576Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/when-distribution-becomes-a-substitute-for-design-and-fails</loc>
    <lastmod>2026-04-07T08:40:03.895Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/rich-domain-models-start-with-what-is-not-what-happens</loc>
    <lastmod>2026-04-04T10:15:52.717Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/your-software-development-approach-is-too-expensive-and-too-brittle</loc>
    <lastmod>2026-04-02T08:12:24.849Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/when-ci-cd-becomes-the-goal-the-quiet-erosion-of-engineering-ownership</loc>
    <lastmod>2026-03-30T06:01:30.217Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/software-testing-you-re-probably-doing-it-wrong</loc>
    <lastmod>2026-03-26T08:23:36.023Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-mirror-and-the-machine-reclaiming-scrum-refinement-in-the-age-of-ai</loc>
    <lastmod>2026-03-24T07:49:33.066Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/less-code-lost-meaning-why-boilerplate-reduction-misses-the-point</loc>
    <lastmod>2026-03-20T07:43:56.623Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-illusion-of-progress-why-tooling-can-t-replace-engineering</loc>
    <lastmod>2026-03-18T14:07:59.371Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-ghostwriter-the-house-builder-and-the-missing-domain-model-walk-into-a-bar</loc>
    <lastmod>2026-03-16T06:54:39.342Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-two-levels-of-software-development-and-why-most-enterprise-applications-fail-over-time</loc>
    <lastmod>2026-03-10T07:38:14.796Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/how-to-recognize-an-effective-software-engineer</loc>
    <lastmod>2026-03-05T08:53:23.656Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/why-do-you-need-a-rich-domain-model-that-s-old-school-and-not-modern</loc>
    <lastmod>2026-03-02T09:23:55.887Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/a-practical-guide-to-ai-code-generation</loc>
    <lastmod>2026-02-26T07:26:17.478Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-risk-of-ivory-tower-software-development-and-why-ai-amplifies-it</loc>
    <lastmod>2026-02-23T07:51:27.641Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/preventing-conflicting-business-logic-in-growing-software-systems</loc>
    <lastmod>2026-02-21T09:02:00.369Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/using-acid-properties-as-a-simplicity-litmus-test</loc>
    <lastmod>2026-02-15T19:01:50.254Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-singleton-reality-why-it-works-is-not-evidence-of-good-engineering</loc>
    <lastmod>2026-02-02T13:44:56.953Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-integration-tax-why-distributed-systems-hide-the-truth-until-its-too-late</loc>
    <lastmod>2026-01-27T13:33:02.747Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/the-silent-profit-killer-why-high-cognitive-load-is-harming-your-software-development</loc>
    <lastmod>2026-01-22T07:32:20.863Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/cve-2026-0603-hibernate-security-issue-should-you-be-worried</loc>
    <lastmod>2026-02-06T07:04:44.082Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/modern-software-architectures-made-simple-when-to-use-what</loc>
    <lastmod>2026-01-18T10:30:34.159Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/from-values-to-meaning-getting-more-from-java-enums-with-rich-domain-modeling</loc>
    <lastmod>2026-01-13T07:44:13.302Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/clean-architecture-and-clean-code-what-does-that-really-mean</loc>
    <lastmod>2026-01-09T09:55:53.177Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/architecture-in-it-its-a-verb-not-a-job-title</loc>
    <lastmod>2026-01-05T11:34:34.253Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/why-blind-dependency-updates-are-costing-java-teams-more-than-they-save</loc>
    <lastmod>2026-01-04T10:43:27.836Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/archive</loc>
    <lastmod>2026-08-13T20:20:59.989Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.leonpennings.com/recommendations</loc>
    <lastmod>2026-08-13T20:20:59.989Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>