<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://rednafi.com/tags/api/</loc>
    <lastmod>2026-03-31T14:25:08+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/go/</loc>
    <lastmod>2026-03-31T14:25:08+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/</loc>
    <lastmod>2026-03-31T14:25:08+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/</loc>
    <lastmod>2026-03-31T14:25:08+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/shards/2026/03/ideal-dispatch-mechanism/</loc>
    <lastmod>2026-03-31T14:25:08+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/shards/2026/03/background-jobs-inherited-fd/</loc>
    <lastmod>2026-03-28T14:26:18+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/shell/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/unix/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/distributed-systems/</loc>
    <lastmod>2026-03-24T11:11:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/grpc/</loc>
    <lastmod>2026-03-24T11:11:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/testing/</loc>
    <lastmod>2026-03-24T11:11:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/testing-unary-grpc-services/</loc>
    <lastmod>2026-03-24T11:11:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/database/</loc>
    <lastmod>2026-03-23T00:41:00+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/design-patterns/</loc>
    <lastmod>2026-03-24T11:09:34+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/repo-txn-uow/</loc>
    <lastmod>2026-03-23T00:41:00+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/shards/2026/03/transactions-with-repository-pattern/</loc>
    <lastmod>2026-03-21T12:41:23+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/shards/2026/03/user-id-through-context/</loc>
    <lastmod>2026-03-19T02:08:39+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/shards/2026/03/what-belongs-in-go-context-values/</loc>
    <lastmod>2026-03-18T17:46:59+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/shards/2026/03/repository-layer-over-sqlc/</loc>
    <lastmod>2026-03-21T12:41:23+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/wrap-grpc-client/</loc>
    <lastmod>2026-03-18T00:02:54+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/shards/2026/03/etcd-codebase/</loc>
    <lastmod>2026-03-23T13:16:48+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/error-handling/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/to-wrap-or-not-to-wrap/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/concurrency/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/mutex-closure/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/context-cancellation-cause/</loc>
    <lastmod>2026-03-13T20:46:08+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/kotlin/</loc>
    <lastmod>2026-03-13T20:46:08+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/python/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/structured-concurrency/</loc>
    <lastmod>2026-03-13T20:46:08+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/mocking-libraries-bleh/</loc>
    <lastmod>2026-03-18T00:47:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/system/tap-compare-testing/</loc>
    <lastmod>2025-12-31T03:50:44+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/splintered-failure-modes/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/test-subprocesses/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/interface-segregation/</loc>
    <lastmod>2026-03-13T11:58:57+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/avoid-context-key-collisions/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/performance/</loc>
    <lastmod>2026-03-18T00:47:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/organizing-tests/</loc>
    <lastmod>2026-03-13T20:46:08+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/subtest-grouping/</loc>
    <lastmod>2025-12-30T13:53:23+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/app-structure/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/test-state-not-interactions/</loc>
    <lastmod>2026-03-01T05:26:13+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/early-return-and-goroutine-leak/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/lifecycle-management-in-tests/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/gateway-pattern/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/cli/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/test-config-with-flags/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/di-frameworks-bleh/</loc>
    <lastmod>2026-03-13T11:58:57+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/prevent-struct-copies/</loc>
    <lastmod>2026-03-13T11:58:57+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/til/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/devops/</loc>
    <lastmod>2026-03-30T16:30:04+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/tool-directive/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/capture-console-output/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/deferred-teardown-closure/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/data-structures/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/sort-slice/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/nil-interface-comparison/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/middleware-vs-delegation/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/web/</loc>
    <lastmod>2026-03-30T16:30:04+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/io-reader-signature/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/slice-gotchas/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/essay/</loc>
    <lastmod>2026-03-30T16:30:04+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/domain-knowledge-dilemma/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/hierarchical-rate-limiting/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/redis/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/system/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/dynamic-shell-variables/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/hugo/</loc>
    <lastmod>2026-03-30T16:30:04+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/link-blog/</loc>
    <lastmod>2026-03-30T16:30:04+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/run-single-instance/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/func-types-and-smis/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/networking/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/security/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/ssh-saga/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/inject-pytest-fixture/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/pytest/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/typing-override/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/typing/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/module-getattr/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/docker/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/docker-mount/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/topological-sort/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/circuit-breaker/</loc>
    <lastmod>2026-03-13T11:58:57+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/direnv/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/notes-on-event-driven-systems/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/bash-namerefs/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/behind-the-blog/</loc>
    <lastmod>2026-03-30T16:30:04+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/shell-redirection/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/testing-http-requests/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/pytest-param/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/http-requests-via-dev-tcp/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/log-context-propagation/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/logging/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/no-hijack-root-logger/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/install/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/github/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/heredoc-headache/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/git/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/sane-pull-request/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/on-rebasing/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/protobuffed-contracts/</loc>
    <lastmod>2026-03-18T00:47:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/typeguard-vs-typeis/</loc>
    <lastmod>2026-03-01T05:26:13+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/etag-and-http-caching/</loc>
    <lastmod>2026-03-18T00:47:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/crossing-the-cors-crossroad/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/dysfunctional-options-pattern/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/einstellung-effect/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/strategy-pattern/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/anemic-stack-traces/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/retry-function/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/type-assertion-vs-type-switches/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/patch-pydantic-settings-in-pytest/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/omit-dev-dependencies-in-binaries/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/eschewing-black-box-api-calls/</loc>
    <lastmod>2025-12-30T13:53:23+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/javascript/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/annotate-args-and-kwargs/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/rate-limiting-via-nginx/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/statically-enforcing-frozen-dataclasses/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/planning-palooza/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/reminiscing-cgi-scripts/</loc>
    <lastmod>2026-03-13T11:58:57+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/debug-dockerized-apps-in-vscode/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/dataclasses-and-methods/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/finding-flow-amid-chaos/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/diminishing-half-life-of-knowledge/</loc>
    <lastmod>2026-03-13T11:58:57+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/oh-my-poor-business-logic/</loc>
    <lastmod>2026-03-13T11:58:57+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/pesky-little-scripts/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/footnotes-for-the-win/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/dotfile-stewardship-for-the-indolent/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/an-ode-to-the-neo-grotesque-web/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/self-hosted-google-fonts-in-hugo/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/configure-options/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/dummy-load-balancer/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/limit-goroutines-with-buffered-channels/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/totp-client/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/interface-guards/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/writing-on-well-trodden-topics/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/structured-logging-with-slog/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/notes-on-exit-interviews/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/tame-conditionals-with-bitmasks/</loc>
    <lastmod>2026-03-05T04:05:36+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/dns-record-to-share-text/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/memory-leakage-in-descriptors/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/unix-style-pipeline-with-subprocess/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/enable-repeatable-lazy-iterations/</loc>
    <lastmod>2026-03-01T05:26:13+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/descending-into-the-aether/</loc>
    <lastmod>2026-03-05T04:05:36+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/escape-template-pattern/</loc>
    <lastmod>2026-03-24T11:09:34+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/dependency-management-redux/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/implement-traceroute/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/javascript/bulk-request-google-search-index/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/javascript/cors-proxy-with-cloudflare-workers/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/fixed-time-task-scheduling-with-at/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/django/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/sort-by-a-custom-sequence-in-django/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/javascript/periodic-readme-updates-with-gh-actions/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/associative-arrays-in-bash/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/deduplicate-iterables-while-preserving-order/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/process-substitution-in-bash/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/dynamic-menu-with-select-in-bash/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/terminal-text-formatting-with-tput/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/javascript/exploring-observable-notebooks/</loc>
    <lastmod>2026-03-18T00:47:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/server-sent-events/</loc>
    <lastmod>2026-03-18T00:47:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/tinkering-with-unix-domain-socket/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/multithreaded-socket-server-signal-handling/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/switch-between-multiple-datastreams/</loc>
    <lastmod>2025-12-30T13:53:23+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/skip-first-part-of-an-iterable/</loc>
    <lastmod>2025-12-31T20:31:37+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/pause-and-resume-a-socket-server/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/django-and-jupyter-notebook/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/manipulate-text-with-django-query-expression/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/tqdm-progressbar-with-concurrent-futures/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/colon-command-in-shell-scripts/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/faster-bulk-update-in-django/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/install-python-with-asdf/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/save-with-update-fields-in-django/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/aws/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/logging-quirks-in-lambda-environment/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/outage-caused-by-eager-loading-file/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/incident-post-mortem/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/audit-commit-messages-on-github/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/to-quote-or-not-to-quote/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/return-values-from-a-shell-function/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/verify-webhook-origin/</loc>
    <lastmod>2026-03-18T00:47:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/recipes-from-python-sqlite-docs/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/sql/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/use-urlsplit-over-urlparse/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/system/random-choice-in-sqlite/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/exitstack/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/compose-multiple-levels-of-pytest-fixtures/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/patch-where-the-object-is-used/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/partially-assert-callable-arguments/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/when-to-use-git-pull-rebase/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/apply-constraint-with-assert/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/automerge-dependabot-prs-on-github/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/stream-process-a-csv-file/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/django-bulk-operation-with-process-pool/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/read-s3-file-in-memory/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/distil-git-logs-attached-to-a-file/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/operators-itemgetter/</loc>
    <lastmod>2025-12-30T13:53:23+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/typescript/guard-clauses-and-never-type/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/typescript/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/health-check-a-server-with-nohup/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/return-json-error-payload-in-drf/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/decouple-with-generators/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/preallocated-list/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/in-favor-of-sentence-case/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/disallow-large-file-download/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/declaratively-transform-dataclass-fields/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/caching-connection-objects/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/how-not-to-run-a-script/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/mocking-datetime-objects/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/declarative-payloads-with-typedict/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/parametrized-fixtures-in-pytest/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/modify-iterables-while-iterating/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/github-action-template-python/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/self-type/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/patch-with-pytest-fixture/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/type-guard/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/why-noreturn-type-exists/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/add-attributes-to-enum-members/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/internals-of-functools-wraps/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/tags/async/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/limit-concurrency-with-semaphore/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/amphibian-decorators/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/go-rusty-with-exception-handling/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/variance-of-generic-types/</loc>
    <lastmod>2026-02-25T22:32:57+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/create-sub-dict/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/early-bound-function-defaults/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/use-assertis-to-check-literal-booleans/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/static-typing-decorators/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/inspect-docstring-with-pydoc/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/check-is-a-power-of-two/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/uniform-error-response-in-drf/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/difference-between-typevar-and-union/</loc>
    <lastmod>2025-12-30T13:53:23+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/lru-cache-on-methods/</loc>
    <lastmod>2026-03-18T00:47:06+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/text-cropping-with-textwrap-shorten/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/string-interning/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/structural-subtyping/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/attribute-delegation-in-composition/</loc>
    <lastmod>2025-12-30T13:53:23+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/access-classmethod-like-property/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/do-not-add-extensions-to-bash-executables/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/use-init-subclass-hook-to-validate-subclasses/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/tqdm-with-multiprocessing/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/use-daemon-threads-to-test-infinite-loop/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/use-command-v-over-which/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/write-git-commit-messages-properly/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/functools-partial-flattens-nestings-automatically/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/use-curly-braces-while-pasting-shell-commands/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/use-strict-mode-while-running-bash-scripts/</loc>
    <lastmod>2026-03-28T14:28:41+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/config-management-with-pydantic/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/mixins/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/metaclasses/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/proxy-pattern/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/redis-cache/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/decorators/</loc>
    <lastmod>2026-01-25T04:53:58+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/concurrent-futures/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/pathlib/</loc>
    <lastmod>2025-12-30T16:28:21+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/pre-commit/</loc>
    <lastmod>2026-03-13T01:14:29+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/singledispatch/</loc>
    <lastmod>2025-12-29T14:48:56+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/contextmanager/</loc>
    <lastmod>2025-12-30T16:28:21+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/dataclasses/</loc>
    <lastmod>2026-01-25T04:53:58+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/feed/2025/</loc>
    <lastmod>2026-03-05T04:04:12+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/feed/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/feed/2024/</loc>
    <lastmod>2026-03-18T00:24:52+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/about/</loc>
    <lastmod>2026-03-31T01:09:21+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/appearances/</loc>
    <lastmod>2026-03-31T00:23:21+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/archive/</loc>
    <lastmod>2026-01-27T22:59:47+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/articles/</loc>
    <lastmod>2026-03-16T13:18:58+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/blogroll/</loc>
    <lastmod>2026-03-30T16:30:04+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/go/</loc>
    <lastmod>2026-03-31T00:23:21+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/javascript/</loc>
    <lastmod>2026-03-13T02:53:03+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/maxims/</loc>
    <lastmod>2026-03-28T21:45:57+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/misc/</loc>
    <lastmod>2026-03-31T00:23:21+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/python/</loc>
    <lastmod>2026-03-31T00:23:21+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/search/</loc>
    <lastmod>2026-03-30T22:10:16+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/shards/</loc>
    <lastmod>2026-03-13T20:55:33+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/system/</loc>
    <lastmod>2026-03-31T00:23:21+02:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/typescript/</loc>
    <lastmod>2026-03-13T02:53:03+01:00</lastmod>
  </url><url>
    <loc>https://rednafi.com/zephyr/</loc>
    <lastmod>2026-03-31T00:23:21+02:00</lastmod>
  </url>
</urlset>
