<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://hypnoshroom.com/</loc></url>
  <url><loc>https://hypnoshroom.com/about</loc></url>
  <url><loc>https://hypnoshroom.com/contact</loc></url>
  <url><loc>https://hypnoshroom.com/expertise</loc></url>
  <url><loc>https://hypnoshroom.com/work</loc></url>
  <url><loc>https://hypnoshroom.com/services</loc></url>
  <url><loc>https://hypnoshroom.com/insights</loc></url>
  <url><loc>https://hypnoshroom.com/scala</loc></url>
  <url><loc>https://hypnoshroom.com/java</loc></url>
  <url><loc>https://hypnoshroom.com/typescript</loc></url>
  <url><loc>https://hypnoshroom.com/python</loc></url>
  <url><loc>https://hypnoshroom.com/services/technical-review</loc></url>
  <url><loc>https://hypnoshroom.com/services/embedded-engineering-support</loc></url>
  <url><loc>https://hypnoshroom.com/insights/scala-2-to-scala-3</loc></url>
  <url><loc>https://hypnoshroom.com/insights/finding-your-way-around-scala-ecosystem</loc></url>
  <url><loc>https://hypnoshroom.com/insights/partial-functions-in-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/modelling-a-play-framework-application</loc></url>
  <url><loc>https://hypnoshroom.com/insights/case-classes-as-domain-models</loc></url>
  <url><loc>https://hypnoshroom.com/insights/traits-in-scala-design</loc></url>
  <url><loc>https://hypnoshroom.com/insights/typeclasses-in-practical-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/error-handling-as-values-in-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/monads-in-practical-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/scala-collections-in-practice</loc></url>
  <url><loc>https://hypnoshroom.com/insights/recursion-and-tail-recursion-in-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/map-and-flatmap-in-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/implicits-and-context-bounds-in-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/category-theory-in-practical-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/tagless-final-in-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/over-mocking-scala-tests</loc></url>
  <url><loc>https://hypnoshroom.com/insights/unit-and-integration-testing-boundaries</loc></url>
  <url><loc>https://hypnoshroom.com/insights/end-to-end-browser-testing-that-earns-its-cost</loc></url>
  <url><loc>https://hypnoshroom.com/insights/folds-in-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/pattern-matching-in-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/futures-in-scala-application-code-and-tests</loc></url>
  <url><loc>https://hypnoshroom.com/insights/scala-syntactic-sugar</loc></url>
  <url><loc>https://hypnoshroom.com/insights/java-records-sealed-types-domain-models</loc></url>
  <url><loc>https://hypnoshroom.com/insights/testing-spring-boot-service-boundaries</loc></url>
  <url><loc>https://hypnoshroom.com/insights/nuxt-rendering-ssr-ssg-and-client-side</loc></url>
  <url><loc>https://hypnoshroom.com/insights/nuxt-server-client-boundaries</loc></url>
  <url><loc>https://hypnoshroom.com/insights/using-codex-on-real-codebases</loc></url>
  <url><loc>https://hypnoshroom.com/insights/openai-responses-and-batch-api</loc></url>
  <url><loc>https://hypnoshroom.com/insights/deploying-nuxt-on-vercel</loc></url>
  <url><loc>https://hypnoshroom.com/insights/postgresql-schema-indexes-and-query-behaviour</loc></url>
  <url><loc>https://hypnoshroom.com/insights/database-normalisation-in-practice</loc></url>
  <url><loc>https://hypnoshroom.com/insights/github-actions-ci-cd-that-remains-understandable</loc></url>
  <url><loc>https://hypnoshroom.com/insights/handling-async-code-in-typescript</loc></url>
  <url><loc>https://hypnoshroom.com/insights/vim-controls-and-essential-commands</loc></url>
  <url><loc>https://hypnoshroom.com/insights/typed-application-boundaries-in-scala</loc></url>
  <url><loc>https://hypnoshroom.com/insights/long-lived-play-framework-applications</loc></url>
  <url><loc>https://hypnoshroom.com/insights/scala-or-java</loc></url>
  <url><loc>https://hypnoshroom.com/insights/technical-code-reviews</loc></url>
  <url><loc>https://hypnoshroom.com/insights/technical-debt-without-a-rewrite</loc></url>
  <url><loc>https://hypnoshroom.com/insights/safe-java-jdk-upgrades</loc></url>
  <url><loc>https://hypnoshroom.com/insights/maintainable-backend-services</loc></url>
  <url><loc>https://hypnoshroom.com/insights/typescript-backends-get-complicated</loc></url>
  <url><loc>https://hypnoshroom.com/insights/operable-python-services</loc></url>
  <url><loc>https://hypnoshroom.com/insights/slow-api-database-problem</loc></url>
  <url><loc>https://hypnoshroom.com/insights/choosing-nosql-data-model</loc></url>
  <url><loc>https://hypnoshroom.com/insights/backend-work-on-serverless</loc></url>
  <url><loc>https://hypnoshroom.com/insights/practical-git-aliases</loc></url>
  <url><loc>https://hypnoshroom.com/insights/performance-testing-with-k6-and-grafana</loc></url>
  <url><loc>https://hypnoshroom.com/insights/when-agile-process-replaces-interaction</loc></url>
</urlset>