<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://ibukundemehin.com/</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://ibukundemehin.com/about</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ibukundemehin.com/work</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://ibukundemehin.com/contact</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ibukundemehin.com/work/cannycart</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ibukundemehin.com/work/claude-skills</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ibukundemehin.com/work/form-builder</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ibukundemehin.com/work/impressions</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ibukundemehin.com/work/church-unboxed</loc>
<lastmod>2026-09-06T22:41:22.424Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/polish-pass-3-store-release-edges-and-platform-traps-26if</loc>
<lastmod>2026-09-06T18:58:02.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/mui-vs-tailwind-the-cascade-layers-war-story-pm2</loc>
<lastmod>2026-09-06T18:56:10.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/the-admin-console-a-web-app-on-a-mobile-apps-cognito-pool-3ka</loc>
<lastmod>2026-09-06T18:53:37.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/the-activity-log-what-users-did-without-their-words-5aaa</loc>
<lastmod>2026-09-06T18:51:27.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/in-app-announcements-talking-to-users-after-the-build-shipped-28d6</loc>
<lastmod>2026-09-06T18:50:12.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/emails-in-the-users-language-and-the-frozen-cognito-pool-17h7</loc>
<lastmod>2026-09-06T18:47:36.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/the-app-speaks-19-languages-tiered-i18n-and-the-ai-translation-pipeline-14</loc>
<lastmod>2026-09-06T18:45:40.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/account-deletion-for-real-immediate-guest-round-trip-admin-initiated-3k0n</loc>
<lastmod>2026-09-06T18:43:19.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/moving-a-live-backend-to-a-fresh-aws-account-1m99</loc>
<lastmod>2026-09-06T18:41:14.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/shipping-to-both-stores-the-release-runbook-29ma</loc>
<lastmod>2026-09-06T18:38:53.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/scan-now-link-later-receipts-that-wait-for-the-list-171e</loc>
<lastmod>2026-09-06T18:35:55.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/branded-cognito-emails-the-custommessage-trigger-in-20-minutes-4c3b</loc>
<lastmod>2026-09-06T18:33:40.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/polish-pass-2-a-dozen-small-things-that-make-it-feel-real-bg0</loc>
<lastmod>2026-09-06T18:31:54.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/the-home-dashboard-one-screen-that-earns-the-default-tab-5ek7</loc>
<lastmod>2026-09-06T18:29:31.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/your-prod-data-faked-one-way-replication-with-deterministic-pii-masking-58cl</loc>
<lastmod>2026-09-03T01:27:27.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/the-compliance-sprint-nobody-blogs-about-4i0h</loc>
<lastmod>2026-09-03T01:24:53.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/push-notifications-and-the-weekly-shopping-reminder-4ab7</loc>
<lastmod>2026-09-03T01:22:37.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/tablet-worthy-without-a-redesign-the-content-column-pass-ia6</loc>
<lastmod>2026-09-03T01:20:21.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/the-eas-build-that-demanded-four-packages-that-never-existed-138a</loc>
<lastmod>2026-09-03T01:18:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/photograph-a-paper-list-the-third-input-modality-lop</loc>
<lastmod>2026-09-03T01:14:51.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/budgets-live-on-months-not-lists-the-period-first-expenses-rework-38i1</loc>
<lastmod>2026-09-03T01:11:41.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/the-purchase-ledger-when-did-you-actually-buy-that-5age</loc>
<lastmod>2026-08-23T00:04:07.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/your-app-hardcodes-gbp-currency-as-a-first-class-preference-3eda</loc>
<lastmod>2026-08-22T23:36:10.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/what-your-receipts-know-price-history-last-paid-trends-savings-231p</loc>
<lastmod>2026-08-22T16:51:01.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/barcode-lookup-a-provider-chain-with-an-llm-as-the-normaliser-33ha</loc>
<lastmod>2026-08-22T16:09:11.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/point-your-camera-at-a-receipt-and-claude-reads-it-jbh</loc>
<lastmod>2026-08-22T15:26:23.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/the-expenses-tab-mvp-prices-ride-on-the-items-you-already-have-18fn</loc>
<lastmod>2026-08-22T14:37:32.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/the-polish-pass-smart-add-pull-to-refresh-sticky-headers-tighter-archive-2bnn</loc>
<lastmod>2026-07-22T15:32:01.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/a-template-is-just-a-list-with-a-flag-reusable-shopping-lists-20nb</loc>
<lastmod>2026-07-22T12:04:50.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/you-cant-group-by-in-dynamodb-so-the-client-does-the-counting-4dnd</loc>
<lastmod>2026-07-21T22:38:09.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/whose-categories-are-these-making-an-llms-throwaway-labels-feel-like-real-things-4bjg</loc>
<lastmod>2026-07-21T21:59:41.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/i-deleted-the-drag-and-drop-library-and-shipped-four-buttons-instead-3ce1</loc>
<lastmod>2026-07-21T20:49:36.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/working-offline-in-the-cereal-aisle-tanstack-query-offline-on-amplify-5cn0</loc>
<lastmod>2026-07-21T20:09:55.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/light-dark-and-system-themes-in-expo-nativewind-the-whole-app-from-one-setting-566i</loc>
<lastmod>2026-07-20T17:50:53.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/milk-and-a-dozen-eggs-a-voice-to-claude-shopping-list-that-never-trusts-the-ai-mi4</loc>
<lastmod>2026-07-20T16:39:13.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/my-main-branch-wouldnt-deploy-cloudformation-forensics-on-amplify-gen-2-380d</loc>
<lastmod>2026-07-20T16:03:03.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/set-up-react-query-on-an-expo-project-5e58</loc>
<lastmod>2026-07-20T15:28:23.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/climbing-the-leaderboard-hackerrank-solution-javascript-2p5p</loc>
<lastmod>2026-07-20T15:27:52.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/every-icon-vanished-a-metro-debugging-story-featuring-a-babel-package-from-2017-4ije</loc>
<lastmod>2026-07-20T15:27:31.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/one-backend-three-environments-the-4-kib-limit-that-redesigned-my-eas-setup-35cl</loc>
<lastmod>2026-07-20T14:48:07.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/im-building-a-shopping-app-you-talk-to-heres-the-stack-1l8o</loc>
<lastmod>2026-07-20T13:28:35.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/picking-numbers-hakerrank-solution-javascript-4mp2</loc>
<lastmod>2024-09-01T17:21:51.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/how-to-set-up-an-expo-react-native-project-with-react-query-3oeb</loc>
<lastmod>2024-08-31T15:31:46.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/creating-a-multipage-form-with-react-hook-form-and-redux-toolkit-mjf</loc>
<lastmod>2024-06-03T12:11:29.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/introduction-to-the-project-frontend-3pjo</loc>
<lastmod>2023-07-02T13:30:37.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/why-html-is-a-must-for-every-site-3hme</loc>
<lastmod>2022-05-17T09:09:23.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/counting-valleys-hackerrank-solution-javascript-2cd8</loc>
<lastmod>2022-03-01T14:00:39.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/drawing-book-hackerrank-javascript-solution-4b59</loc>
<lastmod>2022-02-24T15:46:16.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/2d-array-hackerrank-javascript-solution-3ae6</loc>
<lastmod>2022-02-23T13:20:43.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/sales-by-match-hackerrank-javascript-solution-ldh</loc>
<lastmod>2022-02-23T10:59:22.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/bill-division-hackerrank-javascript-solution-1174</loc>
<lastmod>2022-02-23T10:25:23.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/migratory-birds-hackerrank-javascript-solution-293l</loc>
<lastmod>2022-02-22T15:25:19.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ibukundemehin.com/writing/my-hng-internship-goals-and-ambition-54a1</loc>
<lastmod>2021-08-16T10:44:09.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
