<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://blog.edwardsmatt.com/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/posts/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/series/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/archive/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/search/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/about/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/stats/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/stats/security/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/posts/why-toronto/</loc><lastmod>2026-04-13</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/the-ambiguity-of-2n/</loc><lastmod>2026-04-05</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/knock-knock-whos-there/</loc><lastmod>2026-04-04</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/choosing-cloudfront-functions-over-lambda-at-the-edge/</loc><lastmod>2026-03-25</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/why-ci-took-three-minutes-or-fifteen/</loc><lastmod>2026-03-23</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/self-hosted-analytics-on-aws/</loc><lastmod>2026-03-12</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/epilogue-further-reading/</loc><lastmod>2026-03-09</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/architecture-as-memory/</loc><lastmod>2026-03-08</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/architecture-from-constraints/</loc><lastmod>2026-03-01</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/designing-for-intent-and-preference/</loc><lastmod>2026-02-25</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/why-s3-returns-403-when-it-means-404/</loc><lastmod>2026-02-23</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/content-as-semantic-data/</loc><lastmod>2026-02-22</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/privacy-as-a-design-constraint/</loc><lastmod>2026-02-20</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/the-logic-of-interaction/</loc><lastmod>2026-02-18</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/caching-for-consistency-and-performance/</loc><lastmod>2026-02-15</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/uncovering-the-invisible-scaffolding/</loc><lastmod>2026-02-14</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/recovering-from-a-git-force-push/</loc><lastmod>2026-02-07</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/modern-aws-authentication-humans-vs-automation/</loc><lastmod>2026-02-06</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/when-cloudfront-works-but-your-domain-doesnt/</loc><lastmod>2026-02-01</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/retrospective-the-cost-of-intent/</loc><lastmod>2026-01-24</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/growth-without-prediction/</loc><lastmod>2026-01-14</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/testing-content-is-not-overkill/</loc><lastmod>2026-01-09</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/security-boundaries-in-small-systems/</loc><lastmod>2026-01-06</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/infrastructure-as-code-without-heroics/</loc><lastmod>2026-01-02</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/aws-but-deliberately/</loc><lastmod>2025-12-30</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/automation-as-a-trust-mechanism/</loc><lastmod>2025-12-27</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/content-as-data-not-markup/</loc><lastmod>2025-12-23</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/architecture-before-tools/</loc><lastmod>2025-12-19</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/posts/intentional-engineering/</loc><lastmod>2025-12-16</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/tags/aws/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/cloudfront/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/architecture/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/engineering-discipline/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/security/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/accessibility/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/infrastructure/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/terraform/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/s3/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/content-strategy/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/debugging/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/privacy/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/static-site/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/testing/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/ux/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/automation/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/ci-cd/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/iam/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/mdx/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/nextjs/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/oidc/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/performance/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/athena/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/caching/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/cost-optimisation/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/css/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/dns/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/git/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/ipv6/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/javascript/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/lambda/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/route-53/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/sso/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/tags/validation/</loc></url>
  <url><loc>https://blog.edwardsmatt.com/series/whos-knocking-at-the-door/</loc><lastmod>2026-04-13</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/series/measuring-without-surveillance/</loc><lastmod>2026-03-12</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/series/learning-in-public-accessibility-literacy/</loc><lastmod>2026-03-09</lastmod></url>
  <url><loc>https://blog.edwardsmatt.com/series/building-a-production-grade-blog/</loc><lastmod>2026-01-24</lastmod></url>
</urlset>