<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>Elena on Software</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/</link><description>Essays and field notes on backend systems.</description><language>en</language>
<item><title>Rate Limiting With Nothing but Redis</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/posts/rate-limiting-with-nothing-but-redis.html</link><guid>https://us1001qz.jp2haozu-naookg-okak.cc/posts/rate-limiting-with-nothing-but-redis.html</guid><pubDate>Thu, 01 Oct 2026 09:00:00 +0000</pubDate><description>This post started as a note to my future self. Every few months I relearn the same lessons about rate limiting, so this time I&#x27;m writing them down.</description></item>
<item><title>Designing APIs You Won&#x27;t Have to Version</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/posts/designing-apis-you-won-t-have-to-version.html</link><guid>https://us1001qz.jp2haozu-naookg-okak.cc/posts/designing-apis-you-won-t-have-to-version.html</guid><pubDate>Mon, 13 Jul 2026 09:00:00 +0000</pubDate><description>A colleague asked me last week why our team cares so much about background jobs. I gave a rambling answer, so here is the longer, more organized version.</description></item>
<item><title>Zero-Downtime Schema Migrations in Practice</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/posts/zero-downtime-schema-migrations-in-practice.html</link><guid>https://us1001qz.jp2haozu-naookg-okak.cc/posts/zero-downtime-schema-migrations-in-practice.html</guid><pubDate>Thu, 18 Jun 2026 09:00:00 +0000</pubDate><description>For a long time I treated schema migrations as something to worry about later. Then a small change to our Django setup turned into a week of debugging, and &quot;later&quot; arrived all at once.</description></item>
<item><title>Structured Logging Is the Cheapest Observability You&#x27;ll Buy</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/posts/structured-logging-is-the-cheapest-observability-you-ll-buy.html</link><guid>https://us1001qz.jp2haozu-naookg-okak.cc/posts/structured-logging-is-the-cheapest-observability-you-ll-buy.html</guid><pubDate>Sat, 06 Jun 2026 09:00:00 +0000</pubDate><description>Every codebase has one area everyone is a little afraid to touch. On our team, it was everything related to observability.</description></item>
<item><title>Postgres Is Probably Enough for Your Job Queue</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/posts/postgres-is-probably-enough-for-your-job-queue.html</link><guid>https://us1001qz.jp2haozu-naookg-okak.cc/posts/postgres-is-probably-enough-for-your-job-queue.html</guid><pubDate>Tue, 19 May 2026 09:00:00 +0000</pubDate><description>Every codebase has one area everyone is a little afraid to touch. On our team, it was everything related to observability.</description></item>
<item><title>Idempotency Keys: The Boring Feature That Saved Us</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/posts/idempotency-keys-the-boring-feature-that-saved-us.html</link><guid>https://us1001qz.jp2haozu-naookg-okak.cc/posts/idempotency-keys-the-boring-feature-that-saved-us.html</guid><pubDate>Mon, 20 Apr 2026 09:00:00 +0000</pubDate><description>This post started as a note to my future self. Every few months I relearn the same lessons about idempotency, so this time I&#x27;m writing them down.</description></item>
<item><title>What I Learned Writing My First gRPC Service</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/posts/what-i-learned-writing-my-first-grpc-service.html</link><guid>https://us1001qz.jp2haozu-naookg-okak.cc/posts/what-i-learned-writing-my-first-grpc-service.html</guid><pubDate>Tue, 31 Mar 2026 09:00:00 +0000</pubDate><description>There is no shortage of articles about gRPC. Most of them cover the happy path. This one is about what happened after the happy path ended.</description></item>
<item><title>The Case for Boring Background Jobs</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/posts/the-case-for-boring-background-jobs.html</link><guid>https://us1001qz.jp2haozu-naookg-okak.cc/posts/the-case-for-boring-background-jobs.html</guid><pubDate>Wed, 11 Feb 2026 09:00:00 +0000</pubDate><description>Every codebase has one area everyone is a little afraid to touch. On our team, it was everything related to background jobs.</description></item>
<item><title>Timeouts Everywhere: A Field Guide</title><link>https://us1001qz.jp2haozu-naookg-okak.cc/posts/timeouts-everywhere-a-field-guide.html</link><guid>https://us1001qz.jp2haozu-naookg-okak.cc/posts/timeouts-everywhere-a-field-guide.html</guid><pubDate>Mon, 14 Jul 2025 09:00:00 +0000</pubDate><description>This post started as a note to my future self. Every few months I relearn the same lessons about API versioning, so this time I&#x27;m writing them down.</description></item>
</channel></rss>
