<?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://serhiisoldatov.dev/</loc></url><url><loc>https://serhiisoldatov.dev/about/</loc></url><url><loc>https://serhiisoldatov.dev/blog/</loc></url><url><loc>https://serhiisoldatov.dev/blog/aws-cognito-sso-setup/</loc></url><url><loc>https://serhiisoldatov.dev/blog/azure-sso-setup/</loc></url><url><loc>https://serhiisoldatov.dev/blog/decomposing-hardcoded-roles/</loc></url><url><loc>https://serhiisoldatov.dev/blog/django-docker-images-with-uv/</loc></url><url><loc>https://serhiisoldatov.dev/blog/django-enterprise-sso-with-aws-cognito/</loc></url><url><loc>https://serhiisoldatov.dev/blog/django-manage-py-tab-completion/</loc></url><url><loc>https://serhiisoldatov.dev/blog/django-repositories-and-services/</loc></url><url><loc>https://serhiisoldatov.dev/blog/drf-custom-validation-error-messages/</loc></url><url><loc>https://serhiisoldatov.dev/blog/drf-when-to-override-part-1/</loc></url><url><loc>https://serhiisoldatov.dev/blog/drf-when-to-override-part-2/</loc></url><url><loc>https://serhiisoldatov.dev/blog/elasticsearch-to-opensearch-migration-story/</loc></url><url><loc>https://serhiisoldatov.dev/blog/hidden-tradeoffs-of-playwright-e2e-testing/</loc></url><url><loc>https://serhiisoldatov.dev/blog/okta-sso-setup/</loc></url><url><loc>https://serhiisoldatov.dev/blog/sso-for-your-admin-panel/</loc></url><url><loc>https://serhiisoldatov.dev/blog/testing-sso-with-cognito-and-oidc/</loc></url><url><loc>https://serhiisoldatov.dev/projects/</loc></url><url><loc>https://serhiisoldatov.dev/tags/access-control/</loc></url><url><loc>https://serhiisoldatov.dev/tags/architecture/</loc></url><url><loc>https://serhiisoldatov.dev/tags/authentication/</loc></url><url><loc>https://serhiisoldatov.dev/tags/aws/</loc></url><url><loc>https://serhiisoldatov.dev/tags/azure/</loc></url><url><loc>https://serhiisoldatov.dev/tags/clean-code/</loc></url><url><loc>https://serhiisoldatov.dev/tags/cognito/</loc></url><url><loc>https://serhiisoldatov.dev/tags/developer-tooling/</loc></url><url><loc>https://serhiisoldatov.dev/tags/django/</loc></url><url><loc>https://serhiisoldatov.dev/tags/docker/</loc></url><url><loc>https://serhiisoldatov.dev/tags/drf/</loc></url><url><loc>https://serhiisoldatov.dev/tags/e2e-testing/</loc></url><url><loc>https://serhiisoldatov.dev/tags/engineering-judgment/</loc></url><url><loc>https://serhiisoldatov.dev/tags/oidc/</loc></url><url><loc>https://serhiisoldatov.dev/tags/okta/</loc></url><url><loc>https://serhiisoldatov.dev/tags/opensearch/</loc></url><url><loc>https://serhiisoldatov.dev/tags/playwright/</loc></url><url><loc>https://serhiisoldatov.dev/tags/python/</loc></url><url><loc>https://serhiisoldatov.dev/tags/security/</loc></url><url><loc>https://serhiisoldatov.dev/tags/shell/</loc></url><url><loc>https://serhiisoldatov.dev/tags/sso/</loc></url><url><loc>https://serhiisoldatov.dev/tags/testing/</loc></url><url><loc>https://serhiisoldatov.dev/tags/uv/</loc></url></urlset>