backend systems

Elena on Software

Hi, I'm Elena. Essays and field notes on backend systems. I write about background jobs, observability, idempotency and whatever else I'm learning this month.

Latest writing

  • · 3 min read

    Rate Limiting With Nothing but Redis

    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'm writing them down.

    #api#reliability
  • · 3 min read

    Designing APIs You Won't Have to Version

    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.

    #architecture#distributed-systems
  • · 3 min read

    Zero-Downtime Schema Migrations in Practice

    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 "later" arrived all at once.

    #distributed-systems#python
  • · 3 min read

    Structured Logging Is the Cheapest Observability You'll Buy

    Every codebase has one area everyone is a little afraid to touch. On our team, it was everything related to observability.

    #distributed-systems#go
  • · 3 min read

    Postgres Is Probably Enough for Your Job Queue

    Every codebase has one area everyone is a little afraid to touch. On our team, it was everything related to observability.

    #go#architecture#python
  • · 3 min read

    Idempotency Keys: The Boring Feature That Saved Us

    This post started as a note to my future self. Every few months I relearn the same lessons about idempotency, so this time I'm writing them down.

    #architecture#go
  • · 3 min read

    What I Learned Writing My First gRPC Service

    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.

    #python#reliability#api
  • · 3 min read

    The Case for Boring Background Jobs

    Every codebase has one area everyone is a little afraid to touch. On our team, it was everything related to background jobs.

    #databases#python
  • · 3 min read

    Timeouts Everywhere: A Field Guide

    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'm writing them down.

    #go#reliability#distributed-systems