<?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/blog</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/about</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/projects</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/now</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/kafka-or-redis-streams-how-to-choose</loc>
    <lastmod>2026-07-28T02:30:00.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-07-27T13:45:00.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-07-26T01:25:00.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-07-24T12:35:00.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-07-22T13:15:00.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-07-20T02:10:00.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-07-18T01:50:00.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-07-16T12:20:00.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-07-15T13:30:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/leaving-xendit</loc>
    <lastmod>2026-07-14T01:00:00.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-07-13T02:40:00.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-07-11T14:00:00.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-07-09T01:05:00.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-07-07T12:45:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/07/redis-streams-fundamentals</loc>
    <lastmod>2026-07-05T13:10:00.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-07-03T02:15:00.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-07-02T07:22:00.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-07-01T01:30:00.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-05-05T00:30:00.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-04-26T05:05:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/04/understanding-caching-strategies</loc>
    <lastmod>2026-04-17T03:00:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/04/postgres-advisory-locks</loc>
    <lastmod>2026-04-16T03:00:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2026/04/pgboss-vs-bullmq</loc>
    <lastmod>2026-04-13T03:00:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2025/11/merge-k-sorted-lists</loc>
    <lastmod>2025-11-19T19:00:10.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2025/11/n-queens-ii</loc>
    <lastmod>2025-11-19T03:36:21.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2025/11/valid-number-algorithm-evolution</loc>
    <lastmod>2025-11-10T11:09:00.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>2025-11-10T10:09:00.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>2025-04-18T10:14:00.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>2024-11-19T10:14:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/10/introduction-to-nextjs</loc>
    <lastmod>2024-10-26T09:23:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/10/n-queens</loc>
    <lastmod>2024-10-18T10:43:45.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>2024-08-19T03:43:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/candy</loc>
    <lastmod>2024-08-18T13:26:12.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>2024-08-18T12:52:07.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>2024-08-18T12:40:15.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/reverse-linked-list</loc>
    <lastmod>2024-08-18T11:47:06.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>2024-08-18T11:03:27.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-priority-queue</loc>
    <lastmod>2024-08-18T10:08:19.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/container-with-most-water</loc>
    <lastmod>2024-08-18T04:16:18.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/trapping-rain-water</loc>
    <lastmod>2024-08-18T03:50:07.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/palindrome-permutation</loc>
    <lastmod>2024-08-17T08:33:23.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>2024-08-17T06:56:43.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/logger-rate-limiter</loc>
    <lastmod>2024-08-17T06:40:36.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/designing-hashmap</loc>
    <lastmod>2024-08-17T01:43:30.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-hash-map</loc>
    <lastmod>2024-08-17T01:17:39.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/implement-queue-using-stacks</loc>
    <lastmod>2024-08-16T14:57:29.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>2024-08-16T14:47:02.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-stacks</loc>
    <lastmod>2024-08-16T14:10:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/linked-list-cycle</loc>
    <lastmod>2024-08-16T13:41:56.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/happy-number</loc>
    <lastmod>2024-08-16T12:31:33.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/fast-and-slow-pointers</loc>
    <lastmod>2024-08-16T07:50:53.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/sum-of-three-values</loc>
    <lastmod>2024-08-15T06:24:06.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/valid-palindrome</loc>
    <lastmod>2024-08-15T04:02:04.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2024/08/introduction-to-two-pointers</loc>
    <lastmod>2024-08-13T12:06:19.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2023/04/solid-principles-oop</loc>
    <lastmod>2023-04-12T17:00:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2021/04/love-is-dead</loc>
    <lastmod>2021-04-21T12:08:00.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>2021-04-21T10:14:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://fajarfirdaus.net/blog/2018/10/fake-happy-eh</loc>
    <lastmod>2018-10-05T17:00:00.000Z</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>