<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://marcosbarbero.com/blog/ha-and-zone-affinity-spring-cloud-eureka/</loc>
<lastmod>2018-03-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/spring-cloud-netflix-zuul-rate-limit/</loc>
<lastmod>2018-06-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/user-impersonation-with-spring-security/</loc>
<lastmod>2018-06-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/integrating-vault-spring-cloud-config/</loc>
<lastmod>2018-06-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/centralized-authorization-jwt-spring-boot2/</loc>
<lastmod>2019-01-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/oauth2-centralized-authorization-opaque-jdbc-spring-boot2/</loc>
<lastmod>2019-01-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/password-encoder-migration-spring-security-5/</loc>
<lastmod>2019-02-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/specifications-vs-prompts/</loc>
<lastmod>2025-09-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/vibe-coding-vs-a-defined-workflow/</loc>
<lastmod>2025-10-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/prompts-are-not-configuration/</loc>
<lastmod>2025-10-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/a-deterministic-core-with-reasoning-at-the-edges/</loc>
<lastmod>2025-11-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/how-a-context-file-earns-its-length/</loc>
<lastmod>2025-12-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/script-first-agent-as-fallback/</loc>
<lastmod>2025-12-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/why-a-check-passes-locally-and-fails-in-ci/</loc>
<lastmod>2026-01-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/measuring-ai-assistant-adoption/</loc>
<lastmod>2026-01-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/a-database-constraint-is-not-duplicate-validation/</loc>
<lastmod>2026-02-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/fail-fast-tools-that-refuse-ambiguous-input/</loc>
<lastmod>2026-03-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/now-is-a-clock-you-did-not-inject/</loc>
<lastmod>2026-03-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/agentic-workflows-from-runbook-to-command/</loc>
<lastmod>2026-04-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/write-the-rule-before-you-trust-the-architecture/</loc>
<lastmod>2026-05-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/repo-discoverability-for-humans-and-agents/</loc>
<lastmod>2026-05-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/ai-coding-maturity-levels-l1-to-l5/</loc>
<lastmod>2026-06-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/pre-invocation-gates/</loc>
<lastmod>2026-06-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/shared-gates-in-ci-not-git-hooks/</loc>
<lastmod>2026-07-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/a-spec-and-a-contract-test-are-not-the-same-gate/</loc>
<lastmod>2026-07-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/what-a-reviewer-must-not-review/</loc>
<lastmod>2026-08-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/blog/ui-states-loading-empty-and-error/</loc>
<lastmod>2026-08-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/services/ai-adoption/</loc>
<lastmod>2026-09-10T11:21:29+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/services/architecture/</loc>
<lastmod>2026-09-10T11:21:29+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/services/company-transformation/</loc>
<lastmod>2026-09-10T11:21:29+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/services/executive-advisory/</loc>
<lastmod>2026-09-10T11:21:29+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/services/training/</loc>
<lastmod>2026-09-10T11:21:29+00:00</lastmod>
</url>
<url>
<loc>https://marcosbarbero.com/about/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/contact/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/privacy/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/series/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/services/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/tags/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/blog/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/blog/page/2/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/blog/page/3/</loc>
</url>
<url>
<loc>https://marcosbarbero.com/blog/page/4/</loc>
</url>
</urlset>
