<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://kh21rul.my.id/</loc><lastmod>2026-08-21T04:07:59.870Z</lastmod></url><url><loc>https://kh21rul.my.id/about</loc><lastmod>2026-08-21T04:08:04.756Z</lastmod></url><url><loc>https://kh21rul.my.id/projects</loc><lastmod>2026-08-21T04:08:12.669Z</lastmod></url><url><loc>https://kh21rul.my.id/blog</loc><lastmod>2026-08-21T04:08:17.797Z</lastmod></url><url><loc>https://kh21rul.my.id/contact</loc><lastmod>2026-08-21T04:08:22.181Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/category/backend</loc><lastmod>2026-08-16T00:27:08.103Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/category/software-development</loc><lastmod>2026-08-21T04:11:19.917Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/category/frontend-development</loc><lastmod>2026-08-24T21:13:22.665Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/category/devops</loc><lastmod>2026-08-24T21:13:29.555Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/category/testing-quality</loc><lastmod>2026-08-25T21:06:05.550Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/category/cloud-infrastructure</loc><lastmod>2026-08-25T21:06:09.400Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/health-checks</loc><lastmod>2026-08-29T21:08:01.652Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/express</loc><lastmod>2026-08-20T16:26:47.166Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/nodejs</loc><lastmod>2026-08-20T16:26:47.170Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/prisma</loc><lastmod>2026-08-20T16:26:47.174Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/postgresql</loc><lastmod>2026-08-20T16:26:47.179Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/artificial-intelligence</loc><lastmod>2026-08-21T04:12:48.514Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/developer-career</loc><lastmod>2026-08-21T04:12:54.880Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/programming</loc><lastmod>2026-08-21T04:13:01.307Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/ai-tools</loc><lastmod>2026-08-21T04:13:07.225Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/ai-coding-agents</loc><lastmod>2026-08-21T07:43:51.518Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/full-stack-development</loc><lastmod>2026-08-21T07:44:02.509Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/developer-tools</loc><lastmod>2026-08-21T07:44:10.281Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/devsecops</loc><lastmod>2026-08-21T07:44:17.285Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/mcp</loc><lastmod>2026-08-21T07:44:23.107Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/api-automation</loc><lastmod>2026-08-22T12:56:31.424Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/laravel</loc><lastmod>2026-08-22T13:07:32.145Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/livewire</loc><lastmod>2026-08-22T13:07:37.628Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/inertiajs</loc><lastmod>2026-08-22T13:07:45.071Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/linux</loc><lastmod>2026-08-22T13:07:59.061Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/nginx</loc><lastmod>2026-08-22T13:08:03.448Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/database-performance</loc><lastmod>2026-08-22T16:29:41.768Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/redis</loc><lastmod>2026-08-23T13:04:43.354Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/caching</loc><lastmod>2026-08-23T13:04:47.528Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/github-actions</loc><lastmod>2026-08-23T16:32:25.352Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/ci-cd</loc><lastmod>2026-08-23T16:32:28.412Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/database-backup</loc><lastmod>2026-08-24T13:54:24.351Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/typescript</loc><lastmod>2026-08-24T14:41:11.668Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/pnpm</loc><lastmod>2026-08-24T14:41:15.276Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/monorepo</loc><lastmod>2026-08-24T14:41:20.068Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/nuxt</loc><lastmod>2026-08-24T21:13:34.015Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/vuejs</loc><lastmod>2026-08-24T21:13:38.225Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/ssr</loc><lastmod>2026-08-24T21:13:44.499Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/data-fetching</loc><lastmod>2026-08-24T21:13:49.411Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/docker</loc><lastmod>2026-08-24T21:13:54.627Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/container-security</loc><lastmod>2026-08-24T21:13:58.802Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/playwright</loc><lastmod>2026-08-25T21:06:13.264Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/accessibility</loc><lastmod>2026-08-25T21:06:17.952Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/web-testing</loc><lastmod>2026-08-25T21:06:22.831Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/wcag</loc><lastmod>2026-08-25T21:06:27.586Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/aws</loc><lastmod>2026-08-25T21:06:31.390Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/oidc</loc><lastmod>2026-08-25T21:06:35.728Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/cloud-security</loc><lastmod>2026-08-25T21:06:39.631Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/core-web-vitals</loc><lastmod>2026-08-26T22:58:46.817Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/web-performance</loc><lastmod>2026-08-26T22:58:55.565Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/git</loc><lastmod>2026-08-26T22:59:04.410Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/debugging</loc><lastmod>2026-08-26T22:59:14.025Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/automated-testing</loc><lastmod>2026-08-27T21:04:46.915Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/systemd</loc><lastmod>2026-08-27T21:04:52.395Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/css</loc><lastmod>2026-08-28T21:07:46.700Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/responsive-design</loc><lastmod>2026-08-28T21:07:52.633Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/cloudflare-tunnel</loc><lastmod>2026-08-28T21:07:58.598Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/kubernetes</loc><lastmod>2026-08-29T21:07:56.769Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/laravel-horizon</loc><lastmod>2026-09-01T05:00:54.148Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/queue-workers</loc><lastmod>2026-09-01T05:01:05.946Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/workbox</loc><lastmod>2026-09-01T05:09:28.681Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/service-workers</loc><lastmod>2026-09-01T05:09:39.834Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/progressive-web-apps</loc><lastmod>2026-09-01T05:09:50.897Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/python</loc><lastmod>2026-09-01T05:10:02.580Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/fastapi</loc><lastmod>2026-09-01T05:10:13.655Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/sqlalchemy</loc><lastmod>2026-09-01T05:10:24.547Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/terraform</loc><lastmod>2026-09-01T05:10:37.037Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/tag/infrastructure-as-code</loc><lastmod>2026-09-01T05:10:48.605Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/low-birth-weight-prediction-system-for-pregnant-women</loc><lastmod>2026-08-21T02:27:23.487Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/himatif-unimal-website</loc><lastmod>2026-08-21T02:23:33.300Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/imata-website</loc><lastmod>2026-08-21T02:23:00.059Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/water-quality-control-monitoring-system-for-catfish</loc><lastmod>2026-08-21T02:27:09.387Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/oyster-mushroom-control-monitoring-system</loc><lastmod>2026-08-21T02:28:19.570Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/document-management-system-pt-mexis</loc><lastmod>2026-08-21T02:29:34.024Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/vehicle-registration-certificate-information-system</loc><lastmod>2026-08-21T02:23:58.003Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/web-cashier-nutapos</loc><lastmod>2026-09-05T01:57:25.711Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/village-letter-archive-web</loc><lastmod>2026-08-21T02:23:58.004Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/water-quality-control-monitoring-system-for-vaname-shrimp</loc><lastmod>2026-08-21T02:26:47.426Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/fastvoting-capstone-project</loc><lastmod>2026-08-21T02:23:53.207Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/alfamart-promo-analysis-website</loc><lastmod>2026-08-21T02:28:33.160Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/straw-mushroom-control-and-monitoring-system</loc><lastmod>2026-08-21T02:28:33.161Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/patrolsys-security-patrol-monitoring-system</loc><lastmod>2026-08-21T02:29:52.874Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/mobile-web-order-system</loc><lastmod>2026-09-05T01:58:26.210Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/spincost-profit-center-reporting</loc><lastmod>2026-08-21T02:29:49.706Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/taktik-jkn-participant-reporting-platform</loc><lastmod>2026-08-21T02:29:50.393Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/dailova-seo-content-ad-monetization</loc><lastmod>2026-08-21T02:29:52.875Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/spinops-spinning-production-operations-system</loc><lastmod>2026-08-21T02:29:51.515Z</lastmod></url><url><loc>https://kh21rul.my.id/projects/web-kitchen-display-api-nutapos</loc><lastmod>2026-09-05T01:58:41.245Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/will-ai-replace-programmers-2026</loc><lastmod>2026-08-21T04:17:13.901Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/ai-coding-agents-full-stack-developers-2026</loc><lastmod>2026-08-21T07:44:59.640Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/deploy-nuxt-4-ubuntu-vps-nginx-pm2</loc><lastmod>2026-08-22T03:20:43.636Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/dockerize-nodejs-postgresql-docker-compose</loc><lastmod>2026-08-22T03:41:45.510Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/nuxt-4-image-upload-external-api-fix-404-cors</loc><lastmod>2026-08-22T03:42:04.617Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/secure-express-api-production</loc><lastmod>2026-08-22T03:42:09.281Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/build-rest-api-express-prisma-postgresql</loc><lastmod>2026-08-22T03:42:13.762Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/deploy-laravel-livewire-inertia-ubuntu-linux</loc><lastmod>2026-08-22T13:11:24.387Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/postgresql-indexing-explain-analyze-slow-queries</loc><lastmod>2026-08-22T16:33:35.902Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/redis-caching-nodejs-cache-aside-ttl-invalidation</loc><lastmod>2026-08-23T13:04:57.423Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/github-actions-nodejs-ci-postgresql</loc><lastmod>2026-08-23T16:32:38.451Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/postgresql-backup-restore-pg-dump-pg-restore</loc><lastmod>2026-08-24T13:55:52.026Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/typescript-monorepo-pnpm-workspaces-project-references</loc><lastmod>2026-08-24T14:41:28.456Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/nuxt-4-data-fetching-usefetch-useasyncdata</loc><lastmod>2026-08-24T21:14:11.506Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/secure-nodejs-docker-images-multi-stage-builds</loc><lastmod>2026-08-24T21:14:27.320Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/accessibility-testing-playwright-axe-core</loc><lastmod>2026-08-25T21:06:50.559Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/github-actions-oidc-aws-without-access-keys</loc><lastmod>2026-08-25T21:07:01.434Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/improve-inp-slow-web-interactions</loc><lastmod>2026-08-26T23:02:16.556Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/git-bisect-automate-regression-debugging</loc><lastmod>2026-08-26T23:02:26.514Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/nodejs-built-in-test-runner-mocking-coverage-ci</loc><lastmod>2026-08-27T21:05:05.422Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/nodejs-systemd-service-ubuntu-production</loc><lastmod>2026-08-27T21:05:18.893Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/css-container-queries-responsive-components</loc><lastmod>2026-08-28T21:08:16.206Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/cloudflare-tunnel-ubuntu-publish-apps-safely</loc><lastmod>2026-08-28T21:08:29.915Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/git-worktree-parallel-branches-guide</loc><lastmod>2026-08-29T21:08:14.510Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/kubernetes-startup-readiness-liveness-probes</loc><lastmod>2026-08-29T21:08:25.816Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/harden-ssh-ubuntu-keys-ufw-fail2ban</loc><lastmod>2026-09-01T22:15:59.273Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/catch-breaking-api-changes-ci-openapi-diff</loc><lastmod>2026-09-01T22:16:32.492Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/postgresql-row-level-security-multi-tenant-apps</loc><lastmod>2026-09-02T22:07:15.698Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/smooth-ui-updates-view-transition-api</loc><lastmod>2026-09-02T22:07:50.205Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/trace-nodejs-apis-end-to-end-opentelemetry</loc><lastmod>2026-09-03T22:13:24.720Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/laravel-horizon-redis-ubuntu-production</loc><lastmod>2026-08-30T21:08:25.000Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/offline-first-web-app-workbox-service-worker</loc><lastmod>2026-08-30T21:08:25.000Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/fastapi-postgresql-async-sqlalchemy</loc><lastmod>2026-08-31T21:08:25.000Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/reusable-terraform-modules-aws</loc><lastmod>2026-08-31T21:08:25.000Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/accessible-modals-html-dialog-element</loc><lastmod>2026-09-03T22:14:03.482Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/replace-cron-reliable-systemd-timers-linux</loc><lastmod>2026-09-05T01:13:42.226Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/control-css-specificity-modern-cascade-layers</loc><lastmod>2026-09-05T01:14:21.437Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/sign-verify-git-commits-ssh-keys</loc><lastmod>2026-09-05T01:25:12.267Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/postgresql-advisory-locks-prevent-duplicate-jobs</loc><lastmod>2026-09-05T22:13:26.976Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/docker-log-rotation-limits</loc><lastmod>2026-09-05T22:14:07.052Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/nginx-api-rate-limiting-safe-bursts</loc><lastmod>2026-09-06T22:16:45.593Z</lastmod></url><url><loc>https://kh21rul.my.id/blog/manage-python-dependencies-environments-uv</loc><lastmod>2026-09-06T22:17:25.313Z</lastmod></url></urlset>