<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://damianhodgkiss.com/</loc></url><url><loc>https://damianhodgkiss.com/about</loc></url><url><loc>https://damianhodgkiss.com/projects</loc></url><url><loc>https://damianhodgkiss.com/tutorials</loc></url><url><loc>https://damianhodgkiss.com/tutorials/app-runner-vs-ecs-fargate-when-managed-wins</loc></url><url><loc>https://damianhodgkiss.com/tutorials/astro-for-content-heavy-sites-islands-and-partial-hydration</loc></url><url><loc>https://damianhodgkiss.com/tutorials/aws-cost-optimization-for-dockerized-stacks</loc></url><url><loc>https://damianhodgkiss.com/tutorials/aws-web-services-a-working-engineer-s-mental-model</loc></url><url><loc>https://damianhodgkiss.com/tutorials/building-mcp-servers-for-claude-code-production-patterns</loc></url><url><loc>https://damianhodgkiss.com/tutorials/celery-vs-arq-vs-postgres-task-queues</loc></url><url><loc>https://damianhodgkiss.com/tutorials/ci-cd-pipeline-github-actions-to-ecs-for-docker-apps</loc></url><url><loc>https://damianhodgkiss.com/tutorials/claude-md-persistent-agent-onboarding-for-your-codebase</loc></url><url><loc>https://damianhodgkiss.com/tutorials/cloudflare-in-front-of-ecs-waf-cache-tunnels</loc></url><url><loc>https://damianhodgkiss.com/tutorials/containerizing-nextjs-for-local-and-production</loc></url><url><loc>https://damianhodgkiss.com/tutorials/distributed-tracing-across-next-js-fastapi-and-django</loc></url><url><loc>https://damianhodgkiss.com/tutorials/django-fastapi-shared-database-migration-strategy</loc></url><url><loc>https://damianhodgkiss.com/tutorials/docker-bake-declarative-parallel-builds</loc></url><url><loc>https://damianhodgkiss.com/tutorials/docker-postgres-autoupgrades</loc></url><url><loc>https://damianhodgkiss.com/tutorials/fastapi-background-tasks-for-llm-jobs-polling-pattern</loc></url><url><loc>https://damianhodgkiss.com/tutorials/fastapi-sqlalchemy-async-production-session-patterns</loc></url><url><loc>https://damianhodgkiss.com/tutorials/fastapi-vs-flask-choose-based-on-architecture</loc></url><url><loc>https://damianhodgkiss.com/tutorials/feature-flags-progressive-rollouts-django-fastapi-next-js</loc></url><url><loc>https://damianhodgkiss.com/tutorials/fullstack-django-fastapi-nextjs</loc></url><url><loc>https://damianhodgkiss.com/tutorials/fullstack-django-fastapi-nextjs-clerk</loc></url><url><loc>https://damianhodgkiss.com/tutorials/fullstack-django-fastapi-nextjs-next-auth</loc></url><url><loc>https://damianhodgkiss.com/tutorials/git-remove-untracked-files-safe-cleanup</loc></url><url><loc>https://damianhodgkiss.com/tutorials/gmail-ai-assistant-pipeline</loc></url><url><loc>https://damianhodgkiss.com/tutorials/golang-compare-equality-ordering-deep-inspection</loc></url><url><loc>https://damianhodgkiss.com/tutorials/hashtags-in-php</loc></url><url><loc>https://damianhodgkiss.com/tutorials/health-checks-and-graceful-shutdown-for-fastapi-and-next-js-on-ecs</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-debug-amazon-ecs-containers</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-debug-google-chrome-headless-and-nodejs-with-developer-tools</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-determine-node-js-version-from-code</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-do-the-shorthand-conditional-ternary-in-php</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-encrypt-passwords-in-php-node-js-python</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-fetch-authenticated-csvs-with-google-chrome-headless-in-nodejs</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-lazy-load-images-in-react</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-render-code-snippets-in-react-using-prism</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-run-google-chrome-headless-and-nodejs-in-a-docker-container</loc></url><url><loc>https://damianhodgkiss.com/tutorials/how-to-use-react-testing-library</loc></url><url><loc>https://damianhodgkiss.com/tutorials/idempotency-and-retries-for-stripe-webhooks</loc></url><url><loc>https://damianhodgkiss.com/tutorials/idempotent-webhook-processing-deduplication-and-retries</loc></url><url><loc>https://damianhodgkiss.com/tutorials/implementing-webhooks-nextjs</loc></url><url><loc>https://damianhodgkiss.com/tutorials/integrate-celery-django-asynchronous-tasks-guide</loc></url><url><loc>https://damianhodgkiss.com/tutorials/lazy-loading-css-in-nextjs</loc></url><url><loc>https://damianhodgkiss.com/tutorials/llm-api-cost-as-architecture-caching-routing-budgets</loc></url><url><loc>https://damianhodgkiss.com/tutorials/most-secure-password-hashing-algorithms</loc></url><url><loc>https://damianhodgkiss.com/tutorials/multi-tenant-isolation-in-django-fastapi</loc></url><url><loc>https://damianhodgkiss.com/tutorials/next-js-middleware-design-patterns-and-performance-traps</loc></url><url><loc>https://damianhodgkiss.com/tutorials/next-js-vs-react-the-real-decision-you-re-making</loc></url><url><loc>https://damianhodgkiss.com/tutorials/nextjs-15-vercel-hosting-guide</loc></url><url><loc>https://damianhodgkiss.com/tutorials/postgres-vector-search-production-rag-with-pgvector</loc></url><url><loc>https://damianhodgkiss.com/tutorials/postgresql-connection-pooling-with-pgbouncer-in-docker</loc></url><url><loc>https://damianhodgkiss.com/tutorials/postgresql-full-text-search-vs-elasticsearch-when-to-choose-each</loc></url><url><loc>https://damianhodgkiss.com/tutorials/postgresql-list-databases-l-command-sql-alternatives</loc></url><url><loc>https://damianhodgkiss.com/tutorials/rate-limiting-patterns-for-fastapi-in-production</loc></url><url><loc>https://damianhodgkiss.com/tutorials/react-router-v7-as-a-framework-remix-migration-guide</loc></url><url><loc>https://damianhodgkiss.com/tutorials/react-server-components-when-to-use-use-client</loc></url><url><loc>https://damianhodgkiss.com/tutorials/real-time-updates-sse-nextjs</loc></url><url><loc>https://damianhodgkiss.com/tutorials/redis-caching-strategies-for-next-js-fastapi</loc></url><url><loc>https://damianhodgkiss.com/tutorials/secrets-management-for-dockerised-stacks-aws-local-parity</loc></url><url><loc>https://damianhodgkiss.com/tutorials/securing-fastapi-django-server-calls-with-jwts-and-mtls</loc></url><url><loc>https://damianhodgkiss.com/tutorials/slash-commands-subagents-automate-workflows-in-claude-code</loc></url><url><loc>https://damianhodgkiss.com/tutorials/stream-llm-responses-from-fastapi-to-next-js</loc></url><url><loc>https://damianhodgkiss.com/tutorials/stream-structured-output-from-anthropic-openai-to-next-js</loc></url><url><loc>https://damianhodgkiss.com/tutorials/streaming-ssr-with-suspense-nextjs15</loc></url><url><loc>https://damianhodgkiss.com/tutorials/strpos-in-php-the-zero-position-bug</loc></url><url><loc>https://damianhodgkiss.com/tutorials/structured-logging-across-django-fastapi-next-js</loc></url><url><loc>https://damianhodgkiss.com/tutorials/switch-statement-php-production-patterns-pitfalls</loc></url><url><loc>https://damianhodgkiss.com/tutorials/testing-patterns-for-full-stack-engineers</loc></url><url><loc>https://damianhodgkiss.com/tutorials/the-n-1-query-problem-spot-and-fix-it</loc></url><url><loc>https://damianhodgkiss.com/tutorials/type-safe-server-actions-nextjs-zod</loc></url><url><loc>https://damianhodgkiss.com/tutorials/vite-vs-next-js-stop-comparing-build-tools-to-frameworks</loc></url><url><loc>https://damianhodgkiss.com/tutorials/websockets-in-fastapi-and-next-js-scaling-real-time-behind-load-balancers</loc></url><url><loc>https://damianhodgkiss.com/tutorials/zero-downtime-ecs-deployments-expand-contract-migrations</loc></url></urlset>