<?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:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" 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://thiagosaraiva.dev</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/about</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/apache-kafka-event-streaming-practical-guide</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/async-processing-stop-blocking-api-heavy-tasks</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/atomic-design-in-practice-from-atoms-to-pages</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/block-formatting-context-css-explained</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/building-space-indexing-engine</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/cache-busting-hashing-images</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/case-red-hat</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/clickjacking-x-frame-options-protection</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/csp-last-line-of-defense-configured-wrong</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/currying-javascript-when-to-use</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/data-normalization-frontend-state-management</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/database-normalization-how-far-to-go-when-to-stop</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/do-you-really-need-a-javascript-framework</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/dynamic-scope-the-scoping-model-javascript-doesnt-use</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/fault-tolerance-building-systems-that-survive-failures</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/from-div-soup-to-modular-markup-the-evolution-of-html</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/function-scope-javascript-why-var-still-causes-bugs</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/functional-programming-javascript-practical-guide</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/get-window-size-in-pure-css</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/goodbye-waterfall-the-workflow-that-puts-frontend-at-the-center</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/higher-order-components-react-hooks</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/http1-vs-http2-practical-differences</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/idempotency-the-technique-for-production-systems</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/indexeddb-hidden-database-browser</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/lexical-scope-closures-javascript</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/living-with-jsx</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/load-balancing-distribute-traffic-scale-application</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/map-vs-object-javascript</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/objects-sets-javascript-beyond-the-basics</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/pagination-offset-cursor-keyset-how-to-choose</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/performance-budget-of-frontend</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/polling-long-polling-when-websocket-is-overkill</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/rate-limiting-protect-your-api-without-losing-your-mind</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/redis-way-more-than-just-a-cache</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/reverse-proxy-nginx-caddy-traefik-in-practice</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/rpc-in-practice-how-to-make-services-talk</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/service-workers-browser-superpower</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/session-timeout-why-your-session-needs-to-die</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/session-tokens-digital-badge-authenticates-requests</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/single-tenant-vs-multi-tenant-which-architecture-for-saas</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/specificity-wars-why-your-css-becomes-a-mess-and-how-to-fix-it</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/style-guide-driven-development</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/the-4-pillars-that-support-a-scalable-design-system</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/the-art-of-iteration</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/unit-testing-in-frontend-the-do-one-thing-well-mantra</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/visual-regression-testing</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/web-server-from-scratch</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/websockets-in-practice-handshake-to-production</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/what-does-a-frontend-architect-do-beyond-writing-code</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/content/why-csrf-still-catches-developers-off-guard</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://thiagosaraiva.dev/home</loc><lastmod>2026-11-11T21:05:29.376Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
</urlset>