<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://ravnary.com/</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/paths</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/cheatsheets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/community</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/about/how-cards-are-written</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/about/contact</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-a-container-is</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/running-a-container</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-survives-a-container</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/building-an-image</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/the-build-cache</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/how-java-runs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/why-spring-exists</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/bean-and-container</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/wiring-beans</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/scopes-and-lifecycle</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/what-boot-adds</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/starters-and-embedded-server</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/configuring-a-boot-application</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/mapping-requests</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/validating-input</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/handling-errors</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/spring-data-repositories</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jdbc-vs-jpa</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jpa-entity-lifecycle</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/transactions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/caching</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/where-apis-get-slow</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/design-heuristics</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/applying-solid</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-creational-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-structural-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-behavioural-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/idempotency-keys</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/designing-an-api</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/tries</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/union-find</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/choosing-a-data-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/combining-data-structures</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/heapsort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-design-strategy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-connectivity</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/choosing-a-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-a-container-is/shares-the-kernel</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-a-container-is/beside-a-virtual-machine</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-a-container-is/image-and-container</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-a-container-is/one-image-three-containers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-a-container-is/what-you-learned</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/running-a-container/what-run-does</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/running-a-container/from-image-to-page</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/running-a-container/which-port-is-yours</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/running-a-container/why-it-exited</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/running-a-container/a-shell-inside</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/running-a-container/what-you-learned</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-survives-a-container/where-writes-go</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-survives-a-container/does-not-survive-rm</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-survives-a-container/bind-mount-and-volume</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-survives-a-container/mounting-hides-what-was-there</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-survives-a-container/what-you-learned</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/building-an-image/what-a-dockerfile-is-for</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/building-an-image/instruction-by-instruction</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/building-an-image/from-dockerfile-to-container</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/building-an-image/what-a-tag-names</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/building-an-image/latest-is-not-newest</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/building-an-image/what-you-learned</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/the-build-cache/every-instruction-a-layer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/the-build-cache/the-same-build-twice</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/the-build-cache/one-line-reinstalls-everything</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/the-build-cache/ordering-so-the-cache-survives</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/the-build-cache/finding-what-fills-the-disk</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/the-build-cache/which-steps-rebuild</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/the-build-cache/what-you-learned</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/how-java-runs/not-a-program-yet</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/how-java-runs/two-commands</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/how-java-runs/same-jar-two-machines</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/how-java-runs/jdk-jre-jvm</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/how-java-runs/no-main-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/how-java-runs/what-runs-your-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/what-a-variable-holds</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/two-names-one-basket</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/two-names-one-number</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/the-eight-primitives</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/money-types</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/compiler-refuses-first</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/floating-point-money</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/which-assignments-compile</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/what-the-type-guarantees</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/types-decide-the-job</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/adding-with-text-in-it</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/integer-division</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/assign-identity-contents</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/short-circuiting</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/precedence</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/post-increment</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/six-expressions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/which-operator-asked-what</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/taking-one-path</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/grade-from-a-score</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/rate-from-a-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/switch-or-ladder</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/four-loop-shapes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/one-pass-too-many</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/switch-fall-through</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/break-or-continue</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/one-decision-one-repetition</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/behaviour-with-a-name</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/reading-a-signature</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/parameters-and-arguments</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/copies-everything</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/method-that-mutates</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/method-that-reassigns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/overloading</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/caller-saw-nothing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/three-methods-one-object</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/what-a-method-can-change</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays/one-name-many-values</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays/declare-allocate-fill</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays/last-index-is-six</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays/out-of-bounds</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays/length-three-ways</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays/cannot-grow</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays/four-loops-one-array</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays/what-an-array-refuses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/a-different-string</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/upper-casing-a-name</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/trimming-and-losing-it</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/the-string-pool</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/equals-not-double-equals</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/what-plus-equals-does</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/builder-or-buffer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/how-many-objects</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/what-never-changes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/description-and-instance</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/three-orders</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/constructor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/two-constructors</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/default-constructor-gone</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/what-this-refers-to</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/static-or-instance</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/five-lines</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/what-an-object-has</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/what-a-subclass-gets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/premium-customer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/constructor-chain</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/tracing-three-constructors</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/override-or-overload</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/what-super-reaches</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/private-not-reachable</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/what-final-stops</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/three-hierarchies</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/what-extends-gives</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/one-call-several-bodies</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/three-shapes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/three-payment-methods</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/compiler-checks-jvm-picks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/fields-do-not-override</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/cast-that-threw</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/call-or-instanceof</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/four-calls</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/what-decided-what</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes/naming-a-capability</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes/comparable-invoice</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes/abstract-class-adds-state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes/interface-or-abstract</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes/default-methods</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes/one-parent-many-interfaces</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes/six-members</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes/what-each-is-for</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation/where-only-its-owner</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation/balance-that-cannot-move</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation/four-access-levels</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation/private-list-not-private</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation/leak-through-constructor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation/composition-or-inheritance</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation/five-members-four-callers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation/what-still-leaks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/the-moment-it-goes-wrong</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/file-not-there</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/checked-unchecked-errors</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/catch-declare-wrap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/following-an-exception</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/finally-after-return</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/empty-catch</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/try-with-resources</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/five-snippets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/one-hierarchy-three-decisions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/where-a-value-lives</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/one-method-two-regions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/what-keeps-it-alive</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/nothing-can-reach-it</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/two-memory-errors</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/system-gc-is-a-suggestion</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/leak-with-a-collector</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/four-objects</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/two-regions-one-rule</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract/three-methods-you-already-have</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract/identical-not-equal</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract/the-contract</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract/following-a-key</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract/key-never-came-out</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract/mutated-key</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract/four-classes-as-keys</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract/one-contract-one-failure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework/three-promises</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework/ten-orders-three-ways</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework/three-on-three-axes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework/declare-the-interface</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework/map-is-not-a-collection</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework/list-of-refuses-add</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework/six-declarations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework/three-promises-many-classes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists/same-methods-opposite-costs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists/getting-the-five-hundredth</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists/inserting-at-the-front</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists/running-out-of-room</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists/which-list</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists/removing-while-iterating</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists/four-access-patterns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists/one-interface-two-profiles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues/decides-what-is-a-duplicate</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues/same-order-twice</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues/three-sets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues/decides-what-comes-out</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues/printing-a-priority-queue</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues/stack-still-exists</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues/five-requirements</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues/refuses-and-chooses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/finds-one-value</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/hundred-keys-sixteen-buckets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/same-bucket</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/bucket-that-became-a-tree</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/load-factor-rebuild</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/three-maps</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/null-key</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/four-maps-four-keys</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/one-hash-one-bucket</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/order-your-type-has</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/invoice-knows-its-order</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/sorted-three-ways</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/whose-order</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/two-fields-then-reverse</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/subtracting-ints</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/violates-general-contract</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/four-chains</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/natural-and-requested</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/cast-moved-earlier</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/list-that-refuses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/what-is-left-at-runtime</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/not-a-list-of-object</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/extends-and-super</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/copying-with-bounds</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/cannot-write-new-t</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/six-lines</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/compiler-knows-runtime-forgot</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/behaviour-as-an-argument</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/comparator-on-one-line</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/what-makes-it-functional</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/four-shapes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/four-shapes-in-a-pipeline</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/method-references</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/cannot-change-that-variable</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/five-lambdas</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/one-method-many-spellings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/nothing-until-you-ask</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/filtering-a-list</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/same-steps-over-a-file</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/three-out-of-a-thousand</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/map-or-flatmap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/collecting</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/cannot-use-twice</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/parallel-made-it-slower</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/four-pipelines</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/source-steps-result</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional/might-be-nothing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional/lookup-before-and-after</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional/three-ways-out</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional/orelse-ran-anyway</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional/get-without-a-check</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional/where-it-does-not-belong</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional/five-signatures</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional/what-the-signature-says</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads/work-beside-your-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads/two-threads-printing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads/run-started-nothing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads/states-a-thread-moves-through</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads/platform-or-virtual</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads/will-not-exit</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads/four-programs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads/what-a-thread-costs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/number-comes-out-wrong</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/three-instructions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/counter-a-thousand-times</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/moving-money</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/what-one-thread-can-see</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/never-noticed-the-flag</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/volatile-synchronized-atomic</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/four-fields</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/two-failures</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/one-thread-at-a-time</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/synchronized-counter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/second-guarantee</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/static-synchronized</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/re-entering-a-lock</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/synchronized-or-reentrantlock</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/synchronizing-every-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/four-classes-safe</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/what-a-lock-gives</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock/neither-one-moving</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock/transfer-both-directions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock/four-conditions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock/ordering-the-locks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock/three-stalls</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock/timeout-detects</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock/four-situations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock/four-conditions-one-to-remove</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/handing-work-to-a-pool</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/ten-thousand-tasks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/runnable-or-callable</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/what-get-does</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/shutting-down</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/future-or-completable</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/hung-after-main</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/four-workloads</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/submit-wait-shut-down</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/why-spring-exists/cost-of-a-hard-coded-dependency</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/why-spring-exists/constructor-injection-by-hand</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/why-spring-exists/the-same-pattern-a-different-dependency</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/why-spring-exists/rewrite-this-constructor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/why-spring-exists/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/bean-and-container/what-makes-an-object-a-bean</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/bean-and-container/a-bean-found-by-scanning</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/bean-and-container/beanfactory-is-the-root</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/bean-and-container/beanfactory-and-applicationcontext-side-by-side</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/bean-and-container/one-beans-life-start-to-finish</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/bean-and-container/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/wiring-beans/why-constructor-injection-is-the-default</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/wiring-beans/one-constructor-no-autowired-needed</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/wiring-beans/component-service-repository-controller</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/wiring-beans/two-beans-one-interface-no-winner</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/wiring-beans/wiring-a-class-you-dont-own</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/wiring-beans/find-the-wiring-bug</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/wiring-beans/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/scopes-and-lifecycle/singleton-and-prototype-how-many-instances</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/scopes-and-lifecycle/prototype-scope-a-fresh-instance-every-time</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/scopes-and-lifecycle/the-counter-that-only-breaks-under-load</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/scopes-and-lifecycle/postconstruct-predestroy-and-prototype-cleanup</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/scopes-and-lifecycle/a-request-scoped-bean-inside-a-singleton</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/scopes-and-lifecycle/assign-the-right-scope</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/scopes-and-lifecycle/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/what-boot-adds/the-setup-boot-makes-disappear</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/what-boot-adds/the-three-annotations-inside-one</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/what-boot-adds/a-datasource-you-never-defined</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/what-boot-adds/your-bean-wins</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/what-boot-adds/will-boot-create-it</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/what-boot-adds/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/starters-and-embedded-server/what-a-starter-solves</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/starters-and-embedded-server/what-spring-boot-starter-web-brings-in</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/starters-and-embedded-server/a-server-packaged-inside-your-own-jar</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/starters-and-embedded-server/swapping-the-embedded-server</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/starters-and-embedded-server/read-the-pom</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/starters-and-embedded-server/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/configuring-a-boot-application/where-a-property-can-come-from</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/configuring-a-boot-application/a-command-line-argument-beats-the-file</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/configuring-a-boot-application/switching-a-whole-set-of-properties-at-once</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/configuring-a-boot-application/value-vs-configurationproperties</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/configuring-a-boot-application/which-value-wins</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/configuring-a-boot-application/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/mapping-requests/one-annotation-per-http-verb</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/mapping-requests/path-query-and-body</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/mapping-requests/the-responseentity-that-matches-what-happened</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/mapping-requests/restcontroller-vs-controller</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/mapping-requests/write-the-endpoint</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/mapping-requests/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/validating-input/constraints-as-annotations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/validating-input/valid-is-what-makes-it-run</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/validating-input/the-request-body-that-nobody-checked</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/validating-input/turning-field-errors-into-a-response</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/validating-input/add-a-constraint</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/validating-input/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/handling-errors/an-api-that-accumulated-its-error-handling</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/handling-errors/a-custom-exception-and-its-handler</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/handling-errors/one-handler-every-controller</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/handling-errors/which-exception-which-status</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/handling-errors/the-generic-handler-that-doesnt-win</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/handling-errors/design-the-error-body</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/handling-errors/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/spring-data-repositories/crudrepository-vs-jparepository</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/spring-data-repositories/a-query-derived-from-a-method-name</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/spring-data-repositories/when-a-method-name-cant-say-it</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/spring-data-repositories/save-on-an-existing-id-updates-it</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/spring-data-repositories/name-the-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/spring-data-repositories/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jdbc-vs-jpa/the-object-nobody-told-to-save</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jdbc-vs-jpa/the-collection-that-only-loads-inside-a-transaction</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jdbc-vs-jpa/choosing-between-them</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jdbc-vs-jpa/one-repository-per-aggregate</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jdbc-vs-jpa/a-spring-data-jdbc-repository-end-to-end</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jdbc-vs-jpa/pick-the-persistence-model</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jdbc-vs-jpa/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jpa-entity-lifecycle/four-states-one-object</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jpa-entity-lifecycle/one-entity-traced-through-every-state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jpa-entity-lifecycle/persist-doesnt-always-wait-for-flush</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jpa-entity-lifecycle/a-modified-detached-entity-changes-nothing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jpa-entity-lifecycle/refresh-vs-clear</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jpa-entity-lifecycle/name-the-state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jpa-entity-lifecycle/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/transactions/what-transactional-actually-wraps</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/transactions/two-writes-committed-together</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/transactions/the-exception-that-doesnt-roll-back</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/transactions/calling-yourself-skips-the-proxy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/transactions/requires-new-vs-the-default</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/transactions/will-it-roll-back</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/transactions/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/caching/checking-the-cache-before-running-the-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/caching/cacheable-cacheput-cacheevict</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/caching/the-cache-key-is-the-arguments</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/caching/cache-aside-vs-write-through</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/caching/the-cache-that-doesnt-survive-a-second-instance</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/caching/which-annotation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/caching/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/where-apis-get-slow/the-query-that-multiplies-itself</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/where-apis-get-slow/what-n-plus-one-costs-in-milliseconds</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/where-apis-get-slow/a-slow-call-you-dont-own</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/where-apis-get-slow/measure-before-you-optimize</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/where-apis-get-slow/diagnose-the-report</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/where-apis-get-slow/what-this-topic-established</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/system-design-choosing-parts</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/functional-and-non-functional-requirements</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/requirements-example-food-delivery</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/requirements-example-payroll-report</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/quality-attributes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/vague-requirements</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/over-engineering</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/practice-ride-sharing-requirements</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/recap-requirements-and-trade-offs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation/back-of-the-envelope-estimation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation/estimating-requests-a-second</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation/sizing-for-the-average</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation/estimation-example-photo-storage</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation/availability-in-nines</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation/latency-numbers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation/practice-estimating-a-chat-app</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation/recap-estimation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/building-blocks-of-a-web-system</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/dns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/cdns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/stateless-application-servers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/databases-where-state-lives</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/following-one-request</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/sql-vs-nosql</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/the-n-plus-one-query-problem</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/single-points-of-failure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/practice-placing-the-parts</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/recap-building-blocks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/load-balancers-reverse-proxies-and-api-gateways</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/load-balancers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/load-balancing-example-three-algorithms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/health-checks-that-pass-while-the-application-fails</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/layer-4-and-layer-7-load-balancing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/reverse-proxies</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/api-gateways</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/load-balancer-vs-reverse-proxy-vs-api-gateway</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/practice-choosing-the-front-door</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/recap-intermediaries</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/caching-keeping-frequent-reads-close</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/cache-aside-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/cache-invalidation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/lru-eviction</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/unbounded-caches</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/bloom-filters</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/cache-stampede</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/practice-a-cache-policy-for-a-news-site</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/recap-caching</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/scalability</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/vertical-scaling-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/horizontal-scaling-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/scaling-up-vs-scaling-out</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/sessions-in-server-memory</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/autoscaling</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/autoscaling-too-slow-for-a-spike</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/practice-scaling-a-ticket-sale</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/recap-scaling-out</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/five-ways-new-data-reaches-a-client</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/short-polling</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/long-polling</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/server-sent-events</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/websockets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/webhooks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/choosing-a-communication-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/webhooks-missed-while-your-endpoint-is-down</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/practice-picking-a-pattern-for-four-features</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/recap-client-server-communication-patterns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/synchronous-and-asynchronous-communication</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/message-queues</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/queue-example-absorbing-a-burst-of-uploads</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/publish-subscribe</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/pub-sub-example-one-order-event</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/message-queue-vs-publish-subscribe</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/at-least-once-delivery-means-sometimes-twice</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/practice-queue-or-topic-for-four-flows</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/recap-queues-and-publish-subscribe</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination/returning-a-large-result-a-page-at-a-time</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination/offset-pagination-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination/cursor-pagination-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination/offset-vs-cursor-pagination</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination/offset-pagination-that-skips-or-repeats-rows</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination/deep-offsets-that-slow-every-page</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination/practice-paginating-a-feed-and-an-admin-report</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination/recap-api-pagination</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/five-ways-to-divide-an-application</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/monolithic-architecture</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/layered-architecture</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/microservices</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/event-driven-architecture</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/serverless-architecture</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/choosing-an-architectural-style</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/microservices-that-share-one-database</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/practice-a-style-for-three-products</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/recap-architectural-styles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/design-heuristics/matching-a-pressure-to-a-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/design-heuristics/heuristics-example-a-global-news-site</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/design-heuristics/heuristics-example-a-flash-sale-checkout</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/design-heuristics/heuristics-that-pull-against-each-other</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/design-heuristics/practice-diagnosing-ten-failures-at-scale</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/design-heuristics/practice-a-first-design-for-a-chat-application</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/design-heuristics/recap-design-heuristics</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/design-rot</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/coupling-and-cohesion</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/solid-at-a-glance</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/solid-example-checkout</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/reading-class-diagrams</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/interfaces-in-three-languages</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/solid-applied-too-early</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/practice-naming-symptom-and-principle</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/recap-design-rot-and-solid</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility/srp-one-reason-to-change</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility/spotting-srp-violation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility/refactoring-to-srp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility/srp-example-employee</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility/srp-in-the-wild-logging</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility/one-method-is-not-one-responsibility</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility/practice-splitting-user-account</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility/recap-single-responsibility</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed/ocp-add-without-editing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed/spotting-ocp-violation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed/refactoring-to-ocp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed/ocp-example-discount-rules</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed/ocp-in-the-wild-json</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed/extension-points-nobody-uses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed/practice-shipping-carrier</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed/recap-open-closed</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/lsp-keep-parents-promises</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/spotting-lsp-violation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/lsp-contract-rules</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/refactoring-to-lsp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/lsp-example-square-rectangle</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/lsp-in-the-wild-unmodifiable-list</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/type-checks-as-lsp-symptom</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/practice-savings-account</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/recap-liskov-substitution</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation/isp-small-interfaces</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation/spotting-isp-violation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation/refactoring-to-isp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation/isp-example-xerox</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation/isp-in-the-wild-collections-abc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation/one-interface-per-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation/practice-splitting-storage</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation/recap-interface-segregation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/dip-policy-and-detail</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/spotting-dip-violation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/dependency-injection</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/refactoring-to-dip</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/dip-example-fake-repository</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/dip-in-the-wild-spring</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/interface-mirrors-database</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/practice-weather-report</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/recap-dependency-inversion</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/applying-solid/how-solid-principles-work-together</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/applying-solid/refactoring-checkout-solid</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/applying-solid/solid-example-notifications</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/applying-solid/solid-python-vs-java-typescript</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/applying-solid/refactoring-without-tests</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/applying-solid/practice-diagnosing-five-classes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/applying-solid/recap-applying-solid</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are/what-a-design-pattern-is</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are/iterator-in-three-languages</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are/three-families-of-patterns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are/design-patterns-and-solid</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are/patterns-vs-python-functions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are/pattern-fever</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are/practice-sorting-into-families</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are/recap-what-design-patterns-are</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams/uml-class-boxes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams/uml-relationship-arrows</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams/reading-a-pattern-diagram-aloud</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams/class-diagram-to-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams/uml-sequence-diagrams</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams/aggregation-composition-backwards</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams/practice-diagram-from-listing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams/recap-reading-uml-class-diagrams</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/factory-method-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/factory-method-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/factory-method-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/factory-method-example-notifications</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/factory-method-in-the-wild-iterator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/factory-method-python-pass-a-class</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/factory-method-one-product</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/factory-method-practice-editor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/recap-factory-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory/abstract-factory-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory/abstract-factory-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory/abstract-factory-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory/abstract-factory-example-cloud</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory/abstract-factory-in-the-wild-xml</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory/abstract-factory-new-product-kind</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory/abstract-factory-practice-themes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory/recap-abstract-factory</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/builder-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/builder-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/builder-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/builder-example-report</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/builder-in-the-wild-http-request</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/builder-vs-keyword-arguments</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/builder-for-three-fields</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/builder-practice-sql-query</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/recap-builder</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype/prototype-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype/prototype-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype/prototype-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype/prototype-example-enemies</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype/prototype-in-the-wild-object-create</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype/prototype-shallow-copy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype/prototype-practice-document-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype/recap-prototype</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/singleton-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/singleton-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/singleton-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/singleton-example-configuration</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/singleton-in-the-wild-runtime</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/singleton-vs-python-modules</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/singleton-hidden-global-state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/singleton-practice-payment-service</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/recap-singleton</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-creational-pattern/factory-method-vs-abstract-factory-vs-builder</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-creational-pattern/prototype-vs-singleton-vs-constructor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-creational-pattern/creational-pattern-where-a-constructor-was-enough</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-creational-pattern/creational-practice-choosing-creation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-creational-pattern/recap-choosing-a-creational-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter/adapter-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter/adapter-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter/adapter-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter/adapter-example-payment-gateway</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter/adapter-in-the-wild-jdk</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter/adapter-grows-business-logic</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter/adapter-practice-celsius-sensor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter/recap-adapter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator/decorator-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator/decorator-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator/decorator-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator/decorator-example-http-client</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator/decorator-in-the-wild-buffered-input-stream</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator/decorator-vs-python-at-syntax</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator/decorator-practice-text-formatting</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator/recap-decorator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade/facade-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade/facade-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade/facade-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade/facade-example-order</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade/facade-in-the-wild-subprocess</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade/facade-becomes-god-object</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade/facade-practice-home-cinema</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade/recap-facade</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/proxy-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/proxy-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/proxy-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/proxy-example-document-permissions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/proxy-in-the-wild-javascript-proxy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/proxy-classes-vs-getattr</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/proxy-self-call-skips-proxy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/proxy-practice-exchange-rates</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/recap-proxy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite/composite-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite/composite-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite/composite-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite/composite-example-product-bundle</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite/composite-in-the-wild-swing-container</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite/composite-child-methods-on-component</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite/composite-practice-organisation-chart</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite/recap-composite</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge/bridge-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge/bridge-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge/bridge-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge/bridge-example-notifications</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge/bridge-in-the-wild-jdbc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge/bridge-before-a-second-dimension</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge/bridge-practice-remote-controls</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge/recap-bridge</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight/flyweight-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight/flyweight-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight/flyweight-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight/flyweight-example-text-editor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight/flyweight-in-the-wild-integer-cache</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight/flyweight-boxed-integers-double-equals</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight/flyweight-practice-particle-state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight/recap-flyweight</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-structural-pattern/adapter-vs-decorator-vs-proxy-vs-facade</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-structural-pattern/bridge-vs-adapter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-structural-pattern/composite-vs-decorator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-structural-pattern/structural-practice-naming-the-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-structural-pattern/recap-choosing-a-structural-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/strategy-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/strategy-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/strategy-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/strategy-example-shipping</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/strategy-in-the-wild-comparator-sorted-key</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/strategy-classes-vs-functions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/strategy-context-checks-type</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/strategy-practice-discount-rules</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/recap-strategy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/observer-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/observer-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/observer-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/observer-example-order-placed</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/observer-in-the-wild-eventemitter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/observer-classes-vs-callbacks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/observer-lapsed-listener</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/observer-practice-temperature-sensor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/recap-observer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/command-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/command-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/command-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/command-example-text-editor-undo</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/command-in-the-wild-executorservice</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/command-classes-vs-partial</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/command-undo-without-saved-state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/command-practice-smart-home-remote</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/recap-command</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/template-method-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/template-method-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/template-method-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/template-method-example-importer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/template-method-in-the-wild-unittest</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/template-method-subclasses-vs-functions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/template-method-overridden-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/template-method-practice-game-loop</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/recap-template-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/iterator-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/iterator-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/iterator-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/iterator-example-paging</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/iterator-in-the-wild-symbol-iterator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/iterator-classes-vs-generators</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/iterator-exhausted-generator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/iterator-practice-binary-tree</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/recap-iterator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state/state-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state/state-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state/state-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state/state-example-document</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state/state-example-tcp-connection</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state/state-scattered-transitions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state/state-practice-vending-machine</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state/recap-state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility/chain-of-responsibility-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility/chain-of-responsibility-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility/chain-of-responsibility-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility/chain-of-responsibility-example-expense</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility/chain-of-responsibility-in-the-wild-middleware</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility/chain-of-responsibility-unhandled-request</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility/chain-of-responsibility-practice-email-filter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility/recap-chain-of-responsibility</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator/mediator-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator/mediator-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator/mediator-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator/mediator-example-booking-form</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator/mediator-example-chat-room</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator/mediator-knows-too-much</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator/mediator-practice-air-traffic</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator/recap-mediator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento/memento-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento/memento-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento/memento-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento/memento-example-canvas-undo</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento/memento-example-game-save</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento/memento-memory-cost</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento/memento-practice-form-undo</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento/recap-memento</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/visitor-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/visitor-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/visitor-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/visitor-example-order-totals</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/visitor-in-the-wild-ast</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/visitor-vs-singledispatch-match</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/visitor-new-element-class</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/visitor-practice-compiler</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/recap-visitor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter/interpreter-intent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter/interpreter-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter/interpreter-template</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter/interpreter-example-discount-rules</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter/interpreter-in-the-wild-ast</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter/interpreter-does-not-parse</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter/interpreter-practice-boolean</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter/recap-interpreter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-behavioural-pattern/strategy-vs-state-vs-template-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-behavioural-pattern/command-vs-strategy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-behavioural-pattern/observer-vs-mediator-and-chain-vs-decorator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-behavioural-pattern/behavioural-practice-naming-the-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-behavioural-pattern/recap-choosing-a-behavioural-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/seven-layers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/encapsulation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/encapsulation-example-http-request</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/units-of-data</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/osi-vs-tcp-ip</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/devices-by-layer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/protocols-across-layers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/practice-placing-protocols</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/recap-osi-layers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/physical-layer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/data-link-layer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/switch-learning</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/arp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/arp-example-first-packet</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/mtu</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/mac-changes-per-hop</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/practice-addresses-per-hop</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/recap-physical-and-data-link</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/network-layer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/ipv4-address-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/reading-cidr</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/subnet-example-same-network</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/private-addresses-and-nat</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/ipv4-vs-ipv6</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/subnet-example-vpc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/overlapping-ranges</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/practice-dividing-a-range</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/recap-ip-addressing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/routing-tables</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/longest-prefix-match</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/routing-example-three-matches</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/ttl-ping-traceroute</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/ospf-vs-bgp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/anycast</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/routing-example-cloud-route-table</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/ping-is-not-the-service</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/practice-reading-traceroute</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/recap-routing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/transport-layer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/ports-and-sockets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/udp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/tcp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/tcp-vs-udp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/transport-example-three-applications</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/refused-vs-timed-out</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/practice-choosing-a-transport</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/recap-tcp-and-udp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/sequence-and-acknowledgement</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/three-way-handshake</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/flow-control</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/congestion-control</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/flow-vs-congestion-control</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/retransmission-example-one-lost</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/closing-and-time-wait</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/head-of-line-blocking</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/connection-cost-and-reuse</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/practice-sequence-numbers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/recap-tcp-reliability</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/tls-guarantees</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/where-tls-sits</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/tls-13-handshake</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/certificate-chain</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/certificate-example-reading-chain</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/sni</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/certificate-errors</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/mutual-tls</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/practice-certificate-errors</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/recap-tls</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/how-dns-resolves</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/resolution-walkthrough</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/dns-record-types</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/ttl-and-caching</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/dns-transports</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/dns-example-moving-a-server</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/cname-at-the-root</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/practice-reading-dig</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/recap-dns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/application-layer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/application-protocols</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/http-message</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/stateless-not-short-lived</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/http2</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/http-versions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/http3-and-quic</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/ftp-sftp-ftps</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/practice-raw-http</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/recap-http-protocol</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/real-time-family</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/websocket-upgrade</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/server-sent-events</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/webrtc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/nat-traversal</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/webrtc-example-two-laptops</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/real-time-comparison</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/idle-timeouts</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/practice-one-chat-message</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/recap-real-time-protocols</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/opening-a-page</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/troubleshooting-by-layer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/tools-per-layer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/debugging-example-name-fails</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/cloud-component-layers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/debugging-example-502</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/round-trips-first-byte</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/practice-five-symptoms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/recap-request-journey</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/api-call-is-http</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/http-methods</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/safe-and-idempotent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/get-vs-post</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/put-vs-patch</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/repeat-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/query-method</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/get-that-changes-data</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/practice-choosing-methods</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/recap-http-methods</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/five-classes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/success-codes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/client-error-codes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/401-vs-403</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/server-error-codes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/redirect-codes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/error-in-200</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/practice-eight-responses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/recap-status-codes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/rest-constraints</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/uri-url-urn</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/collections-and-items</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/bookshop-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/nesting-limits</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/modelling-actions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/query-parameters</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/verbs-in-paths</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/richardson-maturity</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/practice-ride-sharing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/recap-resource-design</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/api-contract</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/representations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/field-conventions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/absent-null-empty</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/list-responses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/openapi</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/contract-first-vs-code-first</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/rows-as-api</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/practice-create-order-contract</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/recap-api-contracts</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses/errors-in-contract</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses/problem-details</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses/validation-error-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses/error-codes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses/transient-vs-permanent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses/leaking-internals</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses/practice-four-failures</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses/recap-error-responses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/who-caches</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/cache-control</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/validators</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/conditional-get</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/no-cache-meaning</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/vary</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/lost-update</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/if-match</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/shared-cache-leak</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/practice-five-endpoints</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/recap-http-caching</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/idempotency-keys/why-writes-repeat</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/idempotency-keys/idempotency-key-header</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/idempotency-keys/key-rules</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/idempotency-keys/concurrent-copies</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/idempotency-keys/practice-booking-retry</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/idempotency-keys/recap-idempotency-keys</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/sync-vs-async</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/accepted-and-status</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/polling-a-job</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/webhooks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/signing-webhooks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/polling-vs-webhooks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/duplicate-and-unordered</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/practice-video-export</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/recap-async-apis</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/authn-vs-authz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/authentication-methods</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/api-keys</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/bearer-tokens</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/sessions-vs-tokens</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/jwt-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/validating-a-jwt</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/jwt-not-encrypted</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/revoking-a-jwt</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/mutual-tls</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/practice-four-clients</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/recap-api-authentication</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/oauth-purpose</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/oauth-roles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/code-flow-pkce</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/client-credentials</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/scopes-and-consent</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/openid-connect</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/three-tokens</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/oauth-vs-jwt</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/retired-grants</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/practice-four-applications</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/recap-oauth-and-oidc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/owasp-api-top-10</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/object-level-authorisation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/bola-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/mass-assignment</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/input-validation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/rate-limits</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/cors</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/cors-not-access-control</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/practice-five-weaknesses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/recap-api-protection</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/breaking-changes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/five-changes-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/tolerant-reader</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/versioning-strategies</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/deprecation-and-sunset</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/expand-and-contract</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/new-enum-value</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/practice-version-2</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/recap-api-versioning</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/three-styles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/graphql</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/grpc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/one-screen-three-styles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/protocol-buffers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/rest-graphql-grpc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/graphql-query-cost</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/practice-four-integrations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/recap-api-styles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/designing-an-api/requirements-to-endpoints</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/designing-an-api/request-ids-and-tracing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/designing-an-api/documenting-an-api</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/designing-an-api/design-review-checklist</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/designing-an-api/review-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/designing-an-api/practice-event-tickets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/designing-an-api/recap-designing-an-api</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation/what-big-o-describes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation/simplifying-a-cost-expression</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation/common-growth-classes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation/estimating-running-time</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation/bounds-and-cases</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation/big-o-is-not-the-worst-case</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation/practice-classifying-costs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity/counting-the-work</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity/sequential-and-nested-loops</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity/nested-loops-are-not-always-quadratic</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity/space-and-the-call-stack</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity/two-independent-inputs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity/hidden-linear-built-ins</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity/practice-removing-duplicates</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/arrays-contiguous-cells</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/computing-an-address</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/inserting-at-the-front</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/dynamic-arrays</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/judging-append-by-one-call</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/dynamic-array-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/building-strings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/practice-rotating-seats</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/linked-lists-nodes-and-references</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/rewiring-references</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/singly-linked-list-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/forgetting-the-tail</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/doubly-linked-lists</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/linked-list-vs-dynamic-array</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/playlist-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/practice-removing-expired-tickets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/stacks-and-queues</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/tracing-stack-and-queue-operations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/matching-brackets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/serving-print-jobs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/stack-and-queue-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/dequeuing-from-an-array</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/ring-buffers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/practice-undo-and-redo</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/hash-tables-key-to-slot</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/chaining</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/chaining-vs-linear-probing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/load-factor-and-resizing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/copying-buckets-on-resize</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/hash-map-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/when-lookup-stops-being-constant</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/keys-that-change</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/practice-counting-words</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion/recursion-base-and-recursive-case</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion/tracing-the-call-stack</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion/writing-from-a-definition</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion/counting-files-in-folders</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion/unreachable-base-case</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion/recursive-and-explicit-stack-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion/practice-flattening-nested-lists</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees/binary-trees-nodes-and-children</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees/pre-in-and-post-order</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees/level-order</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees/height-in-nodes-or-edges</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees/combining-two-results</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees/binary-tree-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees/practice-knockout-bracket</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/binary-search-trees-ordering</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/search-and-insert</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/checking-only-children</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/insertion-order-and-shape</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/deleting-a-two-child-node</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/binary-search-tree-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/bst-vs-sorted-array-and-hash-table</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/practice-ordering-exam-scores</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/heaps-complete-tree-in-array</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/push-and-pop</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/bottom-up-build</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/building-with-n-pushes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/binary-heap-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/heapq-as-max-heap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/heap-vs-sorted-array</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/practice-emergency-room</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/tries/tries-one-node-per-letter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/tries/insert-and-search</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/tries/missing-end-of-word-mark</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/tries/trie-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/tries/trie-vs-hash-set</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/tries/practice-suggesting-commands</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/tries/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations/graphs-vertices-and-edges</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations/building-an-adjacency-list</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations/storing-an-edge-once</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations/adjacency-matrix</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations/adjacency-list-vs-matrix</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations/graph-representation-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations/practice-rail-network</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/union-find/union-find-groups</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/union-find/tracing-union-and-find</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/union-find/linking-nodes-not-roots</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/union-find/rank-and-path-compression</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/union-find/union-find-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/union-find/practice-separate-networks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/union-find/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/choosing-a-data-structure/choosing-by-operations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/choosing-a-data-structure/leaderboard-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/choosing-a-data-structure/username-check-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/choosing-a-data-structure/built-ins-by-language</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/choosing-a-data-structure/choosing-out-of-habit</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/choosing-a-data-structure/practice-support-queue</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/choosing-a-data-structure/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/combining-data-structures/combining-two-structures</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/combining-data-structures/tracing-an-lru-cache</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/combining-data-structures/lru-cache-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/combining-data-structures/randomised-set-example</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/combining-data-structures/updating-one-structure</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/combining-data-structures/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/binary-search-halving</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/searching-for-a-missing-value</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/loop-invariant</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/overflowing-midpoint</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/lower-and-upper-bounds</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/binary-search-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/negative-binary-search-result</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/practice-placing-a-price</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/elementary-sorts-family</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/bubble-sort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/bubble-sort-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/selection-sort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/selection-sort-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/insertion-sort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/insertion-sort-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/bubble-vs-selection-vs-insertion</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/bubble-sort-without-early-exit</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/practice-sorting-race-times</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer/split-solve-combine</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer/writing-the-recurrence</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer/solving-with-a-recursion-tree</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer/master-theorem</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer/assuming-n-log-n</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer/divide-and-conquer-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer/practice-costing-fast-multiplication</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort/merge-sort-split-and-merge</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort/merging-two-halves</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort/taking-right-on-tie</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort/merge-sort-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort/same-cost-every-input</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort/sorting-a-linked-list</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort/practice-merging-departure-boards</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/quicksort-partition-and-recurse</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/lomuto-partition</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/last-element-pivot</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/recursing-into-smaller-side</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/quicksort-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/lomuto-vs-hoare</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/quickselect</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/practice-median-delivery-time</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/heapsort/heapsort-build-and-extract</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/heapsort/building-the-max-heap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/heapsort/sifting-past-the-end</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/heapsort/heapsort-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/heapsort/heapsort-not-stable</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/heapsort/practice-ranking-scores</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/heapsort/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/linear-time-sorts-family</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/counting-sort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/counting-sort-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/radix-sort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/radix-sort-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/bucket-sort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/bucket-sort-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/counting-vs-radix-vs-bucket</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/placing-front-to-back</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/practice-sensor-logs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm/choosing-a-sort</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm/comparison-sort-lower-bound</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm/sorting-orders-by-two-keys</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm/sorting-with-no-spare-memory</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm/built-in-sorts</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm/sorting-numbers-without-comparator</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm/practice-picking-sorts</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/choose-explore-unchoose</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/tracing-permutations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/forgetting-to-unchoose</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/backtracking-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/counting-the-leaves</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/pruning-n-queens</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/choosing-dishes-within-budget</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/practice-seating-guests</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms/greedy-choice</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms/scheduling-by-earliest-finish</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms/trusting-greedy-without-proof</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms/exchange-argument</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms/choosing-the-sort-key</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms/greedy-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms/practice-loading-a-van</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/solving-each-subproblem-once</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/state-and-recurrence</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/swapping-the-choices</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/memoisation-and-tabulation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/dynamic-programming-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/memoisation-vs-tabulation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/rolling-the-state</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/costing-a-dynamic-programme</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/practice-reading-a-door-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/zero-one-knapsack</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/filling-the-knapsack-table</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/knapsack-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/looping-upwards</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/counting-grid-paths</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/cheapest-route-through-a-grid</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/combinations-vs-orderings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/practice-packing-a-bag</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/table-indexed-by-prefixes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/filling-an-lcs-table</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/sizing-without-empty-prefix</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/lcs-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/computing-edit-distance</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/longest-increasing-subsequence</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/n-log-n-increasing-subsequence</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/practice-comparing-recipes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-design-strategy/choosing-by-subproblems</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-design-strategy/replacing-greedy-with-a-table</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-design-strategy/memoising-a-backtracking-search</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-design-strategy/four-strategies-compared</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-design-strategy/memoising-without-repeats</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-design-strategy/practice-naming-the-strategy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-design-strategy/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/breadth-first-search</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/marking-visited-on-dequeue</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/depth-first-search</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/traversal-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/unweighted-shortest-paths</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/fewest-moves-through-a-maze</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/directed-cycle-with-three-colours</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/components-and-two-colours</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/practice-splitting-stalls</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort/ordering-so-edges-point-forwards</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort/tracing-kahns-algorithm</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort/expecting-one-order</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort/kahns-algorithm-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort/cycle-by-counting-output</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort/order-from-finishing-times</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort/practice-scheduling-a-refit</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/choosing-by-weights-and-pairs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/dijkstras-algorithm</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/dijkstras-algorithm-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/bellman-ford</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/bellman-ford-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/floyd-warshall</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/floyd-warshall-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/three-algorithms-compared</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/dijkstra-on-a-negative-edge</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/practice-ferry-crossings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/cut-property</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/tracing-kruskals-algorithm</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/kruskals-algorithm-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/tracing-prims-algorithm</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/prims-algorithm-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/kruskal-vs-prim</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/shortest-paths-from-a-spanning-tree</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/practice-laying-fibre</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-connectivity/kosarajus-two-passes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-connectivity/second-pass-on-original-graph</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-connectivity/bridges-and-articulation-points</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-connectivity/bridges-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-connectivity/choosing-the-connectivity-tool</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-connectivity/practice-weak-links</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-connectivity/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem/six-steps</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem/finding-a-ticket-scanned-twice</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem/tracing-the-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem/smallest-gap-between-readings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem/when-brute-force-is-enough</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem/coding-before-clarifying</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem/practice-deliveries-before-a-time</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns/one-lookup-in-place-of-a-search</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns/comparing-two-manifests</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns/one-pass-lookup-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns/missing-seat-number</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns/grouping-melodies</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns/recording-before-looking-up</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns/practice-race-times</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers/closing-in-from-both-ends</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers/removing-zero-readings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers/opposite-ends-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers/triples-of-weights</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers/pairing-tandem-riders</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers/pair-search-on-unsorted-array</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers/practice-closing-gaps</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window/running-answer-for-a-contiguous-run</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window/longest-stretch-without-repeats</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window/variable-window-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window/busiest-three-hours</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window/shortest-stretch-with-every-route</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window/sum-window-over-negatives</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window/practice-cycling-climbs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums/any-range-sum-from-one-subtraction</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums/answering-rainfall-questions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums/prefix-sum-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums/ledger-stretches-totalling-two</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums/till-runs-in-whole-notes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums/reading-a-range-off-by-one</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums/practice-coats-of-paint</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack/next-greater-for-every-position</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack/days-until-the-river-rises</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack/monotonic-stack-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack/next-greater-around-a-circle</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack/how-far-each-view-reaches</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack/storing-values-instead-of-indices</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack/practice-waiting-for-a-cheaper-fare</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation/an-integer-as-a-row-of-switches</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation/badge-scanned-only-once</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation/bit-tricks-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation/counting-set-bits</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation/toppings-two-orders-share</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation/testing-the-sign-bit-with-a-shift</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation/practice-missing-ticket-number</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers/two-speeds-through-one-list</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers/does-a-route-loop-back</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers/fast-and-slow-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers/where-the-cycle-starts</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers/code-generator-that-repeats</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers/meeting-point-is-not-the-start</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers/practice-treasure-trail-loop</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal/turning-each-arrow-round</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal/reversing-without-a-copy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal/in-place-reversal-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal/reversing-a-stretch-with-a-dummy</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal/word-spelt-the-same-backwards</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal/flipping-next-before-saving-it</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal/practice-reversing-in-groups</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals/sort-by-start-then-merge</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals/merging-room-bookings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals/merge-intervals-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals/intersecting-two-lists</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals/charging-points-a-car-park-needs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals/sorting-by-end-before-merging</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals/practice-fitting-a-new-booking</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search/where-a-condition-turns-true</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search/first-faulty-build</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search/first-true-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search/searching-a-rotated-array</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search/slowest-pump-rate</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search/rounding-mid-down</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search/practice-longest-equal-pieces</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns/keeping-the-k-items-that-matter</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns/three-loudest-readings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns/top-k-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns/merging-k-sorted-lists</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns/middle-waiting-time</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns/k-largest-in-a-max-heap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns/practice-closest-campsites</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns/passing-values-down-or-up</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns/longest-path-in-a-tree</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns/down-and-up-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns/lowest-common-ancestor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns/message-cascade-by-minute</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns/returning-the-path-as-the-height</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns/practice-saving-and-rebuilding-a-tree</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal/a-grid-is-a-graph</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal/fewest-moves-across-a-floor</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal/grid-search-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal/counting-islands</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal/nearest-exit-from-every-desk</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal/marking-a-cell-when-it-leaves-the-queue</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal/practice-enclosed-courtyards</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling/finding-the-hidden-graph</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling/measuring-with-two-jugs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling/state-search-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling/ordering-courses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling/grouping-library-cards</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling/searching-states-depth-first</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling/practice-fewest-buses</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution/removing-the-waste-that-dominates</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution/best-run-of-trading-days</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution/best-run-before-and-after</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution/most-common-reading</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution/guests-who-came-both-years</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution/speeding-up-the-wrong-step</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution/practice-longest-run-of-tickets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/choosing-a-pattern/choosing-by-properties</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/choosing-a-pattern/closest-departures-on-two-timetables</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/choosing-a-pattern/uncovered-hours-in-a-roster</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/choosing-a-pattern/four-array-patterns-compared</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/choosing-a-pattern/choosing-from-a-keyword</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/choosing-a-pattern/practice-naming-the-pattern</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/choosing-a-pattern/recap</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-a-container-is/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/running-a-container/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/what-survives-a-container/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/building-an-image/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/docker/the-build-cache/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/how-java-runs/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/variables-and-types/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/operators/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/control-flow/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/methods/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/arrays/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/strings/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/classes-and-objects/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/inheritance/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/polymorphism/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/interfaces-and-abstract-classes/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/encapsulation/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/exceptions/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/memory/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java/object-contract/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/the-framework/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lists/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sets-and-queues/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/maps/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/sorting/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/generics/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/lambdas/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/streams/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-collections-and-streams/optional/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/threads/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/shared-state/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/locks/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/deadlock/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/java-concurrency/executors/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/why-spring-exists/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/bean-and-container/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/wiring-beans/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-core/scopes-and-lifecycle/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/what-boot-adds/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/starters-and-embedded-server/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/configuring-a-boot-application/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/mapping-requests/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/validating-input/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/handling-errors/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/spring-data-repositories/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jdbc-vs-jpa/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/jpa-entity-lifecycle/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/transactions/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/caching/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/spring-boot/where-apis-get-slow/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/requirements-and-trade-offs/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/back-of-the-envelope-estimation/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/building-blocks/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/load-balancers-proxies-gateways/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/caching/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/scaling-out/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/client-server-communication/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/queues-and-pub-sub/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/api-pagination/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/architectural-styles/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/system-design/design-heuristics/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/design-rot-and-solid/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/single-responsibility/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/open-closed/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/liskov-substitution/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/interface-segregation/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/dependency-inversion/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/solid/applying-solid/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/what-design-patterns-are/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/reading-uml-class-diagrams/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/factory-method/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/abstract-factory/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/builder/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/prototype/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/singleton/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-creational-pattern/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/adapter/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/decorator/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/facade/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/proxy/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/composite/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/bridge/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/flyweight/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-structural-pattern/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/strategy/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/observer/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/command/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/template-method/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/iterator/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/state/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/chain-of-responsibility/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/mediator/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/memento/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/visitor/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/interpreter/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/design-patterns/choosing-a-behavioural-pattern/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/osi-layers/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/physical-and-data-link/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/ip-addressing/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/routing/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-and-udp/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tcp-reliability/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/tls/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/dns/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/http-protocol/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/real-time-protocols/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/osi-model/request-journey/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-methods/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/status-codes/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/resource-design/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-contracts/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/error-responses/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/http-caching/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/idempotency-keys/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/async-apis/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-authentication/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/oauth-and-oidc/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-protection/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-versioning/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/api-styles/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/api-design/designing-an-api/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/big-o-notation/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/analysing-complexity/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/arrays-and-strings/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/linked-lists/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/stacks-and-queues/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/hash-tables/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/recursion/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-trees/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/binary-search-trees/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/heaps/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/tries/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/graph-representations/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/union-find/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/choosing-a-data-structure/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/data-structures/combining-data-structures/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/binary-search/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/elementary-sorting/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/divide-and-conquer/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/merge-sort/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/quicksort/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/heapsort/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/linear-time-sorting/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-sorting-algorithm/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/backtracking/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/greedy-algorithms/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/dynamic-programming/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/knapsack-and-grid-dynamic-programming/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/sequence-dynamic-programming/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/choosing-a-design-strategy/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-traversal/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/topological-sort/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/shortest-paths/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/minimum-spanning-trees/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/algorithms/graph-connectivity/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/solving-an-unseen-problem/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/hash-map-patterns/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/two-pointers/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/sliding-window/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/prefix-sums/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/monotonic-stack/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/bit-manipulation/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/fast-and-slow-pointers/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/linked-list-reversal/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/intervals/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/modified-binary-search/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/heap-patterns/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/tree-patterns/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/grid-traversal/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/graph-modelling/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/optimising-a-solution/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/learn/coding-interview-patterns/choosing-a-pattern/quiz</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/paths/from-a-first-class-to-a-thread-pool</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/paths/from-the-container-to-a-running-service</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/paths/from-big-o-to-an-unseen-problem</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/technical-writing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/distributed-systems</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/networking</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/data-structures</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/testing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/application-security</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/object-oriented-programming</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/exception-handling</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/concurrency</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/serverless</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops/containers</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops/ci-cd</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops/infrastructure-as-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops/observability</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/kafka</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/data-pipelines</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/machine-learning</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/large-language-models</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/ai-engineering</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/technical-writing/markdown</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/technical-writing/diagrams-as-code</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems/linux</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/distributed-systems/replication</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/distributed-systems/partitioning</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/distributed-systems/consensus</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/distributed-systems/leader-election</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/distributed-systems/quorum</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/distributed-systems/fault-tolerance</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/networking/dns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/networking/tcp-ip</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/java</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/javascript</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/python</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/go</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/rust</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/csharp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/routing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/rendering</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/data-fetching</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/mutations</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/forms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/state-management</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/web-accessibility</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/html</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/css</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/design-principles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/ports-and-adapters</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/low-level-design</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/domain-driven-design</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/two-pointer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/sliding-window</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/greedy-algorithms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/dynamic-programming</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/binary-search</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/backtracking</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/recursion</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/divide-and-conquer</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/sorting-algorithms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/complexity-analysis</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/data-structures/arrays</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/data-structures/linked-lists</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/data-structures/stacks-and-queues</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/data-structures/hash-tables</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/data-structures/trees</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/data-structures/graphs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/data-structures/heaps</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/data-structures/tries</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/testing/unit-testing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/testing/integration-testing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/testing/end-to-end-testing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/testing/test-driven-development</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/testing/test-doubles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/application-security/authentication</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/application-security/authorization</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/application-security/oauth</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/application-security/input-validation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/ec2</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/s3</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/amplify</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/route-53</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/cloudformation</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/cloudtrail</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/glue</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/mediaconvert</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/api-gateway</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/iam</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/vpc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/rds</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/sqs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/sns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/ecs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/kinesis</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/cloudfront</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/athena</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/step-functions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/secrets-manager</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/lambda</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops/containers/docker</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/kubernetes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops/infrastructure-as-code/terraform</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops/observability/logging</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops/observability/metrics</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/devops/observability/distributed-tracing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/cloudwatch</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/relational-databases</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/nosql-databases</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/vector-databases</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/sql</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/database-indexing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/distributed-databases</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/transactions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/data-pipelines/etl</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/data-pipelines/apache-spark</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/machine-learning/deep-learning</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/machine-learning/neural-networks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/large-language-models/claude</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/large-language-models/codex</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/large-language-models/ollama</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/large-language-models/prompt-engineering</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/large-language-models/fine-tuning</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/ai-engineering/langchain</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/ai-engineering/langgraph</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/ai-engineering/mcp</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/ai-engineering/ai-agents</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/technical-writing/diagrams-as-code/mermaid</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems/linux/shell</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems/linux/file-system</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems/linux/file-permissions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems/linux/processes</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems/linux/package-management</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems/linux/text-processing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems/linux/systemd</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/java/jvm</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/java/java-collections</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/java/java-streams</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/java/generics</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/java/garbage-collection</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/spring-boot</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/react</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/programming-languages/javascript/typescript</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/vue</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/svelte</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/angular</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/astro</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/nodejs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/fastapi</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/flask</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/django</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/css/tailwind-css</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/design-principles/composition</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/design-principles/solid-principles</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/design-principles/dependency-injection</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/caching</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/sharding</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/cap-theorem</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/load-balancing</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/rate-limiting</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/message-queues</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/microservices</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/event-driven-architecture</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/consistency-models</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/api-design</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/algorithms/graph-algorithms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/eks</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/relational-databases/postgresql</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/relational-databases/mysql</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/nosql-databases/mongodb</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/cloud-computing/aws/dynamodb</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/nosql-databases/cassandra</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/ai-engineering/rag</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/artificial-intelligence/ai-engineering/embeddings</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/distributed-databases/distributed-transactions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/transactions/isolation-levels</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/operating-systems/linux/shell/bash</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/react/nextjs</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/react/redux</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/nodejs/express</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/data-engineering/databases/nosql-databases/redis</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/api-design/rest-apis</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/api-design/graphql</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/api-design/grpc</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/software-architecture/system-design/api-design/websockets</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/react/nextjs/server-actions</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/categories/technology/software-development/web-development/react/nextjs/client-components</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/cheatsheets/java-collections</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/cheatsheets/data-structures</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/cheatsheets/algorithms-searching-and-simple-sorting</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/cheatsheets/algorithms-efficient-sorting</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/cheatsheets/algorithms-design-strategies</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/cheatsheets/algorithms-graph-algorithms</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
<url>
<loc>https://ravnary.com/cheatsheets/coding-interview-patterns</loc>
<lastmod>2026-10-19T03:07:27.987Z</lastmod>
</url>
</urlset>
