<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://ethang.dev/</loc></url>
<url><loc>https://ethang.dev/blog/</loc></url>
<url><loc>https://ethang.dev/blog/page/2/</loc></url>
<url><loc>https://ethang.dev/blog/page/3/</loc></url>
<url><loc>https://ethang.dev/blog/page/4/</loc></url>
<url><loc>https://ethang.dev/blog/programming-is-not-a-skill/</loc><lastmod>2026-10-26</lastmod></url>
<url><loc>https://ethang.dev/blog/the-architecture-of-ethang-agent/</loc><lastmod>2026-10-23</lastmod></url>
<url><loc>https://ethang.dev/blog/skills-that-teach-the-scientific-method/</loc><lastmod>2026-10-19</lastmod></url>
<url><loc>https://ethang.dev/blog/after-spawn-returns/</loc><lastmod>2026-10-17</lastmod></url>
<url><loc>https://ethang.dev/blog/the-real-prodigal/</loc><lastmod>2026-09-28</lastmod></url>
<url><loc>https://ethang.dev/blog/where-the-evaluator-lives/</loc><lastmod>2026-09-22</lastmod></url>
<url><loc>https://ethang.dev/blog/half-right/</loc><lastmod>2026-09-21</lastmod></url>
<url><loc>https://ethang.dev/blog/the-blowup-half/</loc><lastmod>2026-09-21</lastmod></url>
<url><loc>https://ethang.dev/blog/the-barrier-is-rarely-the-work/</loc><lastmod>2026-09-20</lastmod></url>
<url><loc>https://ethang.dev/blog/sessions-are-agents/</loc><lastmod>2026-09-05</lastmod></url>
<url><loc>https://ethang.dev/blog/what-sets-ethang-agent-apart/</loc><lastmod>2026-08-30</lastmod></url>
<url><loc>https://ethang.dev/blog/model-picker-paid-classification-and-the-0-05-per-million-reality/</loc><lastmod>2026-08-21</lastmod></url>
<url><loc>https://ethang.dev/blog/implementation-details-are-a-choice/</loc><lastmod>2026-08-20</lastmod></url>
<url><loc>https://ethang.dev/blog/model-picker-building-a-model-router-that-actually-respects-your-budget/</loc><lastmod>2026-08-15</lastmod></url>
<url><loc>https://ethang.dev/blog/one-prompt-many-safeguards-the-architecture-of-a-pi-agent/</loc><lastmod>2026-08-12</lastmod></url>
<url><loc>https://ethang.dev/blog/kimi-k3-gemini-3-6-flash-cloudflare-r2-and-ai-intent-metrics/</loc><lastmod>2026-07-21</lastmod></url>
<url><loc>https://ethang.dev/blog/documenting-the-invisible-risks-and-hidden-realities-of-current-tech/</loc><lastmod>2026-07-18</lastmod></url>
<url><loc>https://ethang.dev/blog/quantum-standards-web-specs-and-monopoly-bulwarks/</loc><lastmod>2026-07-16</lastmod></url>
<url><loc>https://ethang.dev/blog/control-consent-and-camera-shake/</loc><lastmod>2026-07-15</lastmod></url>
<url><loc>https://ethang.dev/blog/typescript-7-vite-beta-and-the-reality-of-gpt-5/</loc><lastmod>2026-07-10</lastmod></url>
<url><loc>https://ethang.dev/blog/grid-volatility-resource-shifting-and-content-caches/</loc><lastmod>2026-07-07</lastmod></url>
<url><loc>https://ethang.dev/blog/software-foes-sovereign-agents-and-supreme-court-decisions/</loc><lastmod>2026-07-02</lastmod></url>
<url><loc>https://ethang.dev/blog/eslint-upgrades-malicious-free-vpns-and-the-gating-of-gpt-5-6/</loc><lastmod>2026-06-30</lastmod></url>
<url><loc>https://ethang.dev/blog/the-death-of-open-ai-500-point-languages-and-the-human-element/</loc><lastmod>2026-06-28</lastmod></url>
<url><loc>https://ethang.dev/blog/making-secure-behavior-the-easiest-option/</loc><lastmod>2026-06-25</lastmod></url>
<url><loc>https://ethang.dev/blog/i-ve-been-moving-my-projects-to-microservices-behind-a-graphql-gateway-and-everything-has-been/</loc><lastmod>2026-05-31</lastmod></url>
<url><loc>https://ethang.dev/blog/surface-tension/</loc><lastmod>2026-03-28</lastmod></url>
<url><loc>https://ethang.dev/blog/modern-web-standards-and-the-evolution-of-frontend-architecture/</loc><lastmod>2026-03-21</lastmod></url>
<url><loc>https://ethang.dev/blog/from-ide-origins-to-junie-cli-and-air/</loc><lastmod>2026-03-11</lastmod></url>
<url><loc>https://ethang.dev/blog/development-databases-and-the-history-of-domains/</loc><lastmod>2026-03-07</lastmod></url>
<url><loc>https://ethang.dev/blog/improving-code-safety-new-eslint-rules-for-angular-signals-and-templates/</loc><lastmod>2026-03-06</lastmod></url>
<url><loc>https://ethang.dev/blog/improving-accessibility-with-eslint-the-require-details-summary-rule/</loc><lastmod>2026-03-05</lastmod></url>
<url><loc>https://ethang.dev/blog/global-tensions-and-tech-industry-disruptions/</loc><lastmod>2026-03-01</lastmod></url>
<url><loc>https://ethang.dev/blog/cognitive-debt-and-the-fragile-state-of-tech/</loc><lastmod>2026-02-28</lastmod></url>
<url><loc>https://ethang.dev/blog/systems-and-consequences/</loc><lastmod>2026-02-27</lastmod></url>
<url><loc>https://ethang.dev/blog/development-jobs-trending-upward/</loc><lastmod>2026-02-27</lastmod></url>
<url><loc>https://ethang.dev/blog/wtf-is-vinext/</loc><lastmod>2026-02-27</lastmod></url>
<url><loc>https://ethang.dev/learn/</loc></url>
<url><loc>https://ethang.dev/tips/</loc></url>
<url><loc>https://ethang.dev/tips/scroll-containers/</loc></url>
<url><loc>https://ethang.dev/tips/scrollbar-gutter/</loc></url>
</urlset>
