<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://ethanlabs.dev/en</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/privacy</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/terms</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/privacy</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/terms</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/two-tools-one-rule-why-dev-tooling-goes-through-the-service-layer-except-when-it</loc>
<lastmod>2026-06-21T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/when-your-iac-state-lies-to-you-a-pulumicognito-corruption-war-story</loc>
<lastmod>2026-06-14T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/the-bug-that-wasnt-where-i-thought-it-was-chasing-down-duplicate-users-in-an-at-l</loc>
<lastmod>2026-06-07T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/one-table-one-dal-designing-invocacares-data-layer-for-a-team-of-one</loc>
<lastmod>2026-05-31T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/modeling-billing-so-the-code-matches-the-pricing-page-not-the-other-way-around</loc>
<lastmod>2026-05-24T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tenant-isolation-you-dont-have-to-trust-application-code-for</loc>
<lastmod>2026-05-17T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/why-invocacare-doesnt-have-a-sign-up-button</loc>
<lastmod>2026-05-10T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/building-an-ai-ingestion-pipeline-on-azure-from-prototype-to-production</loc>
<lastmod>2026-05-10T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/two-tools-one-rule-why-dev-tooling-goes-through-the-service-layer-except-when-it</loc>
<lastmod>2026-06-21T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/when-your-iac-state-lies-to-you-a-pulumicognito-corruption-war-story</loc>
<lastmod>2026-06-14T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/the-bug-that-wasnt-where-i-thought-it-was-chasing-down-duplicate-users-in-an-at-l</loc>
<lastmod>2026-06-07T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/one-table-one-dal-designing-invocacares-data-layer-for-a-team-of-one</loc>
<lastmod>2026-05-31T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/modeling-billing-so-the-code-matches-the-pricing-page-not-the-other-way-around</loc>
<lastmod>2026-05-24T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tenant-isolation-you-dont-have-to-trust-application-code-for</loc>
<lastmod>2026-05-17T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/why-invocacare-doesnt-have-a-sign-up-button</loc>
<lastmod>2026-05-10T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/building-an-ai-ingestion-pipeline-on-azure-from-prototype-to-production</loc>
<lastmod>2026-05-10T00:00:00+03:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/category/development</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/category/invocacare-architecture</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/category/react</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/category/system-design</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/category/development</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/category/invocacare-architecture</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/category/react</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/category/system-design</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/ai-pipeline</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/auth</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/aws</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/azure</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/billing</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/cognito</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/database-design</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/developer-experience</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/distributed-systems</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/dynamodb</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/eventbridge</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/iac</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/iam</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/idempotency</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/multi-tenancy</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/next-js</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/openai</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/performance</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/pulumi</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/en/blog/tag/react</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/ai-pipeline</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/auth</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/aws</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/azure</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/billing</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/cognito</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/database-design</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/developer-experience</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/distributed-systems</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/dynamodb</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/eventbridge</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/iac</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/iam</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/idempotency</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/multi-tenancy</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/next-js</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/openai</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/performance</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/pulumi</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ethanlabs.dev/heb/blog/tag/react</loc>
<lastmod>2026-08-23T13:58:34.027Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
</urlset>
