<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://hessam.rastegari.online</loc>
<lastmod>2026-10-28T06:31:57.298Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/portfolio</loc>
<lastmod>2026-10-28T06:31:57.298Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog</loc>
<lastmod>2026-10-28T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/testing-coroutines-virtual-time</loc>
<lastmod>2026-10-28T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/deleting-code-is-a-feature</loc>
<lastmod>2026-10-27T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/keeping-ai-honest-verification-habits</loc>
<lastmod>2026-10-26T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/pagination-that-doesnt-lie</loc>
<lastmod>2026-10-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/cost-of-just-in-case-abstraction</loc>
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-assisted-performance-traces</loc>
<lastmod>2026-10-23T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/technical-writing-engineering-skill</loc>
<lastmod>2026-10-22T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/playback-analytics-bad-night</loc>
<lastmod>2026-10-21T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/migrating-a-module-to-kmp-with-ai</loc>
<lastmod>2026-10-20T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/merge-queues-and-the-flaky-test-tax</loc>
<lastmod>2026-10-19T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-custom-layouts</loc>
<lastmod>2026-10-18T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/deprecating-an-api-without-breaking-teams</loc>
<lastmod>2026-10-17T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/prompt-patterns-for-real-code</loc>
<lastmod>2026-10-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/baseline-vs-startup-profiles-measuring</loc>
<lastmod>2026-10-15T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/deep-links-that-survive-cold-start</loc>
<lastmod>2026-10-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-in-code-review-what-to-automate</loc>
<lastmod>2026-10-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/crash-free-rate-is-a-process</loc>
<lastmod>2026-10-12T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/dispatchers-io-pool-not-infinite</loc>
<lastmod>2026-10-11T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-internal-tool-in-an-afternoon</loc>
<lastmod>2026-10-10T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-multiplatform-reality-check</loc>
<lastmod>2026-10-09T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-ui-test-synchronisation</loc>
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/when-not-to-use-ai-engineering</loc>
<lastmod>2026-10-07T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/http-caching-android-data-plan</loc>
<lastmod>2026-10-06T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-launchedeffect-keys</loc>
<lastmod>2026-10-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-accessibility-passes-android</loc>
<lastmod>2026-10-04T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/gradle-build-logic-module</loc>
<lastmod>2026-10-03T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/repository-pattern-android-done-right</loc>
<lastmod>2026-10-02T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/android-jank-frame-timing</loc>
<lastmod>2026-10-01T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-explain-inherited-codebase</loc>
<lastmod>2026-09-30T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/hilt-vs-koin-at-scale</loc>
<lastmod>2026-09-29T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ux-for-model-latency</loc>
<lastmod>2026-09-28T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-flaky-tests-root-cause</loc>
<lastmod>2026-09-27T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/de-risking-a-big-rewrite</loc>
<lastmod>2026-09-26T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/android-release-automation</loc>
<lastmod>2026-09-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/writing-an-adr-with-ai</loc>
<lastmod>2026-09-24T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/flow-backpressure-buffer-conflate</loc>
<lastmod>2026-09-23T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/remembersaveable-vs-savedstatehandle</loc>
<lastmod>2026-09-22T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-modifier-order</loc>
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-for-the-boring-80</loc>
<lastmod>2026-09-20T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/unblocking-a-junior</loc>
<lastmod>2026-09-19T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ten-performance-rules</loc>
<lastmod>2026-09-18T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/what-to-test-on-android</loc>
<lastmod>2026-09-17T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-finding-dead-code</loc>
<lastmod>2026-09-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/media3-drm-licence-flow</loc>
<lastmod>2026-09-15T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/retrofit-vs-ktor-2026</loc>
<lastmod>2026-09-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/unidirectional-data-flow-boilerplate</loc>
<lastmod>2026-09-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-pair-designing-architecture</loc>
<lastmod>2026-09-12T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/gradle-version-catalogs</loc>
<lastmod>2026-09-11T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-memory-leaks</loc>
<lastmod>2026-09-10T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/internal-sdk-api-design</loc>
<lastmod>2026-09-09T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/reviewing-ai-generated-code</loc>
<lastmod>2026-09-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-deferred-reads-lambdas</loc>
<lastmod>2026-09-07T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/staged-rollouts-halt-criteria</loc>
<lastmod>2026-09-06T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/kotlin-multiplatform-when-not-to-share</loc>
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/teaching-ai-codebase-conventions</loc>
<lastmod>2026-09-04T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/coroutine-cancellation-is-cooperative</loc>
<lastmod>2026-09-03T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/screenshot-tests-that-dont-cry-wolf</loc>
<lastmod>2026-09-02T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-navigation-type-safe-routes</loc>
<lastmod>2026-09-01T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-incident-triage-android</loc>
<lastmod>2026-08-31T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/strangler-pattern-android-rewrite</loc>
<lastmod>2026-08-30T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/android-app-startup-phases</loc>
<lastmod>2026-08-29T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/room-migrations-safely</loc>
<lastmod>2026-08-28T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-large-codebase-migration</loc>
<lastmod>2026-08-27T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/on-device-vs-api-inference-android</loc>
<lastmod>2026-08-26T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/gradle-ci-build-time-android</loc>
<lastmod>2026-08-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-lazy-list-keys-contenttype</loc>
<lastmod>2026-08-24T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-code-review-someone-elses-pr</loc>
<lastmod>2026-08-23T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/android-modularization-that-scales</loc>
<lastmod>2026-08-22T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/android-tv-focus-handling</loc>
<lastmod>2026-08-21T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/kotlin-flow-threading-flowon</loc>
<lastmod>2026-08-20T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-review-gradle-build</loc>
<lastmod>2026-08-19T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/code-review-as-mentoring</loc>
<lastmod>2026-08-18T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/r8-android-shrinking-guide</loc>
<lastmod>2026-08-17T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/fakes-over-mocks-android-testing</loc>
<lastmod>2026-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/debugging-concurrency-with-ai</loc>
<lastmod>2026-08-15T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-derivedstateof</loc>
<lastmod>2026-08-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/offline-first-android-architecture</loc>
<lastmod>2026-08-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/android-process-death-saved-state</loc>
<lastmod>2026-08-12T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-generated-tests-worth-keeping</loc>
<lastmod>2026-08-11T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/gradle-convention-plugins-android</loc>
<lastmod>2026-08-10T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/reading-perfetto-trace-android-jank</loc>
<lastmod>2026-08-09T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/stateflow-vs-sharedflow-android</loc>
<lastmod>2026-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/java-to-kotlin-migration-with-ai</loc>
<lastmod>2026-08-07T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/clean-architecture-android-layers</loc>
<lastmod>2026-08-06T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-immutable-vs-stable</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/hilt-scoping-mistakes-android</loc>
<lastmod>2026-08-04T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/ai-review-your-own-diff</loc>
<lastmod>2026-08-03T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/baseline-profiles-android-startup</loc>
<lastmod>2026-08-02T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/structured-concurrency-coroutines</loc>
<lastmod>2026-08-01T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/compose-recomposition-performance</loc>
<lastmod>2026-07-31T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://hessam.rastegari.online/blog/start-here-senior-android-series</loc>
<lastmod>2026-07-31T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
