<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Main pages -->
  <url>
    <loc>https://cleankata.dev/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://cleankata.dev/about/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://cleankata.dev/contact/</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Category pages -->
  <url>
    <loc>https://cleankata.dev/category/clean-code/</loc>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://cleankata.dev/category/design-patterns/</loc>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://cleankata.dev/category/clean-architecture/</loc>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://cleankata.dev/category/object-calisthenics/</loc>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Lesson pages -->
  <url><loc>https://cleankata.dev/lesson/abstract-factory-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/adapter-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/adp-acyclic-dependencies/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/architectural-boundaries/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/architecture-lifecycle/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/boundary-crossing/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/bridge-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/builder-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/business-rules-entities/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/chain-of-responsibility-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/class-organization/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/clean-code-introduction/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/clean-concurrency/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/clean-embedded-architecture/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/clean-error-handling/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/clean-unit-testing/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/command-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/comment-heuristics/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/component-tension/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/components-deployment/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/composite-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/concurrency-client-server/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/concurrency-deadlock/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/concurrency-deadlock-conditions/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/concurrency-jiggle-testing/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/crp-cohesion/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/decorator-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/decoupling-modes/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/dependency-rule/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/details-database-web/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/device-independence/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/dip-principle/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/dip-source-code/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/dry-principle/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/duplication-abstraction/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/eisenhower-matrix-dev/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/entities-use-cases/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/facade-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/factory-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/first-class-collections/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/five-s-philosophy/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/flyweight-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/framework-analysis/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/function-heuristics/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/functional-immutability/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-abstraction/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-coherence/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-conventions/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-environment/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-expressiveness/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-feature-envy/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-logic/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-noise/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-placement/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/general-heuristics-selectors/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/goal-of-architecture/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/heuristics-catalog/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/heuristics-g16-intent/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/heuristics-g21-algorithm/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/heuristics-g22-dependencies/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/humble-object/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/implementation-details/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/interface-adapters/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/isp-principle/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/iterator-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/java-heuristics/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/keep-entities-small/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/keep-options-open/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/layer-decoupling/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/legacy-refactoring/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/lsp-principle/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/main-component/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/main-sequence/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/meaningful-names/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/mediator-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/memento-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/naming-heuristics/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/no-abbreviations/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/no-comments/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/no-else-keyword/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/no-getters-setters/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/objects-data-structures/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/observer-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/ocp-principle/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/one-dot-per-line/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/one-level-of-indentation/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/oop-encapsulation/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/package-by-component/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/package-by-feature/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/package-by-layer/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/partial-boundaries/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/peripheral-anti-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/policy-and-level/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/polymorphism-plugins/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/ports-adapters-hexagonal/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/programmer-ethics/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/programming-falsifiability/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/programming-paradigms/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/prototype-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/proxy-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/pure-functions/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/rep-ccp-cohesion/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/repository-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/responsibility-selectors/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/sap-stable-abstractions/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/screaming-architecture/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/sdp-stable-dependencies/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/serialdate-cleanup/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/serialdate-diagnosis/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/services-microservices/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/simple-design-rules/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/singleton-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/small-functions/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/srp-architecture/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/state-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/strategy-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/structured-programming/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/style-format/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/successive-refinement/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/system-boundaries/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/tdd-three-laws/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/template-method-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/test-boundary/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/testing-heuristics/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/two-instance-variables/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/two-values-software/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/use-case-decoupling/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/visitor-pattern/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://cleankata.dev/lesson/wrap-primitives/</loc><changefreq>monthly</changefreq><priority>0.7</priority></url>

</urlset>
