<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://fajarfirdaus.net/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/about</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog</loc>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/resume</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/projects</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/projects/jkt48-sorter</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/projects/jkt48-facemash</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/projects/umandanify</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/jkt48</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/kpop-biases</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/now</loc>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/now/history</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/series</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/dashboard</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/now/2026-07-09</loc>
    <lastmod>2026-07-09T07:59:00.000Z</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/now/2026-04-15</loc>
    <lastmod>2026-04-15T03:00:00.000Z</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/now/2026-01-02</loc>
    <lastmod>2026-01-02T00:00:00.000Z</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/now/2025-11-28</loc>
    <lastmod>2025-11-28T00:00:00.000Z</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/now/2025-11-10</loc>
    <lastmod>2025-11-10T00:00:00.000Z</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/09/age-brute-force-how-long-it-takes</loc>
    <lastmod>2026-09-09T06:07:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/09/age-passphrase-or-key-pair</loc>
    <lastmod>2026-09-09T06:07:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/09/chacha20-poly1305-sealing-the-body</loc>
    <lastmod>2026-09-09T06:07:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/09/scrypt-from-password-to-key</loc>
    <lastmod>2026-09-09T06:07:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/09/age-file-format-reading-the-header</loc>
    <lastmod>2026-09-09T06:07:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/09/age-passphrase-encryption-what-it-does</loc>
    <lastmod>2026-09-09T06:07:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/kafka-or-redis-streams-how-to-choose</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/benchmarking-kafka-vs-redis-streams</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/live-market-dashboard-sse-nextjs</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/stateful-stream-processing-edge-vs-level-ohlc</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/kafka-isr-vs-redis-cluster-sharding</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/kafkajs-custom-co-partition-assigner</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/co-partitioning-same-key-same-partition</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/redis-pubsub-vs-streams</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/kafka-exactly-once-transactions</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/leaving-xendit</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/redis-streams-pel-xautoclaim-dead-letters</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/kafka-at-least-once-retries-and-dlq</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/redis-streams-consumer-groups-and-the-pel</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/kafka-consumer-groups-lag-and-rebalancing</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/redis-streams-fundamentals</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/kafka-partitions-keys-and-ordering</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/chelsea-maresca-and-the-badge</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/kafka-vs-redis-streams-building-a-stock-ticker-twice</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/05/with-hardship-comes-ease</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/04/choosing-the-right-queue-system</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/04/understanding-caching-strategies</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/04/postgres-advisory-locks</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/04/pgboss-vs-bullmq</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2025/11/merge-k-sorted-lists</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2025/11/n-queens-ii</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2025/11/valid-number-algorithm-evolution</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2025/11/rotate-array-three-step-reversal</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2025/04/My-First-Year-as-a-Developer-Dad</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/11/api-design-design-first-vs-code-first</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/10/introduction-to-nextjs</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/10/n-queens</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/understanding-priority-queue-min-heap</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/candy</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/best-time-to-buy-and-sell-stock-ii</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/best-time-to-buy-and-sell-stock</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/reverse-linked-list</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-in-place-manipulation-of-a-linked-list</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-priority-queue</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/container-with-most-water</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/trapping-rain-water</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/palindrome-permutation</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-knowing-what-to-track</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/logger-rate-limiter</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/designing-hashmap</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-hash-map</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/implement-queue-using-stacks</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/remove-all-adjacent-duplicates-in-string</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-stacks</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/linked-list-cycle</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/happy-number</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/fast-and-slow-pointers</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/sum-of-three-values</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/valid-palindrome</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-two-pointers</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2023/04/solid-principles-oop</loc>
    <lastmod>2026-09-09T01:36:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2021/04/love-is-dead</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2021/04/you-will-never-know-how-much-you-mean-to-me</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2018/10/fake-happy-eh</loc>
    <lastmod>2026-09-09T01:08:28.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>