<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.rukon.dev</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://www.rukon.dev/work</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.rukon.dev/cv</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://www.rukon.dev/work/rpoms</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.rukon.dev/work/erth</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.rukon.dev/work/researchforge</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/category/building-real-systems</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/category/full-stack-development</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/category/ai-and-automation</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/category/ui-ux-and-product</loc>
<lastmod>2026-08-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/category/developer-journey</loc>
<lastmod>2026-08-15</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/category/malaysia-and-cyberjaya</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/what-is-a-production-management-system</loc>
<lastmod>2026-06-02</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/common-problems-manual-production-tracking</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/how-admin-panels-help-manage-operational-data</loc>
<lastmod>2026-06-23</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/from-manual-workflow-to-digital-workflow</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/why-developers-should-understand-the-physical-process</loc>
<lastmod>2026-07-07</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/why-system-maintenance-matters-after-deployment</loc>
<lastmod>2026-07-14</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/designing-a-website-in-figma-before-development</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/from-figma-design-to-production-website</loc>
<lastmod>2026-09-06</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/translating-figma-components-into-reusable-code</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/designing-for-desktop-and-mobile-before-development</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/what-an-it-systems-role-actually-involves</loc>
<lastmod>2026-08-15</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/replacing-repetitive-manual-work-with-software</loc>
<lastmod>2026-08-18</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/why-internal-software-needs-good-ux</loc>
<lastmod>2026-08-21</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/reporting-from-operational-data</loc>
<lastmod>2026-08-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/rebuilding-a-design-prototype-as-a-production-website</loc>
<lastmod>2026-08-28</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/verifying-a-static-site-you-built-by-hand</loc>
<lastmod>2026-08-31</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/cutting-a-page-image-payload-from-12mb-to-under-3mb</loc>
<lastmod>2026-09-03</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/making-an-llm-admit-the-paper-does-not-say</loc>
<lastmod>2026-09-05</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/when-not-to-fall-back-to-another-ai-provider</loc>
<lastmod>2026-09-06</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/every-policy-was-correct-and-every-policy-was-inert</loc>
<lastmod>2026-09-06</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/live-github-contribution-heatmap-in-nextjs</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/gating-a-cv-download-behind-a-server-signed-grant</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/one-storage-interface-three-backends</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/staged-csv-import-for-operational-data</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/the-business-day-is-not-the-server-day</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/printing-labels-from-the-browser-over-web-bluetooth</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/a-vision-model-that-only-observes</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.rukon.dev/blog/building-software-in-cyberjaya-the-development-environment</loc>
<lastmod>2026-09-24</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
