<?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://www.samlee.us</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>daily</changefreq><priority>1</priority></url>
<url><loc>https://www.samlee.us/about</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url>
<url><loc>https://www.samlee.us/admin</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url>
<url><loc>https://www.samlee.us/blog</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>daily</changefreq><priority>0.9</priority></url>
<url><loc>https://www.samlee.us/blog/2026-04-03-when-your-sdk-does-too-much-and-not-enough</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-30-when-turbo-stream-replace-kills-your-search-input</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-25-the-unbounded-query-that-took-down-an-endpoint</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-19-the-n-plus-1-that-was-hiding-next-to-its-own-fix</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-18-why-exists-beats-join-for-filtering</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-18-when-your-filter-logic-fights-your-archival-logic</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-15-how-postgresql-actually-runs-your-query</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-16-why-index-only-scan-still-hits-the-heap</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-15-why-autovacuum-defaults-stop-working-on-large-tables</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-12-why-my-analytics-dashboard-showed-no-data</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-12-the-day-i-learned-to-read-explain-analyze</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-03-02-why-guardianships-werent-being-created-for-observers</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-02-09-why-my-student-dashboard-kept-502ing</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-02-05-that-xss-concern-that-wasnt</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-02-05-flash-vs-flash-now-the-rails-gotcha</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-02-03-embedding-one-app-into-another-with-lti</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2026-01-30-n-plus-1-category-weighted-grade-calculation</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2025-11-26-active-record-has-many-joins-distinct-subquery-ordering</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2025-10-15-why-distinct-and-order-by-sometimes-need-a-subquery</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/2025-05-23-concurrent-index-and-when-migrations-arent-deterministic</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.samlee.us/blog/page/2</loc><lastmod>2026-04-08T05:34:26.115Z</lastmod><changefreq>daily</changefreq><priority>0.5</priority></url>
</urlset>