# Andrea Leopardi's posts > A full index of Andrea Leopardi's writing about Elixir, system design, testing, and software engineering. Each title links to portable Markdown. ## Posts - [Elixir's GenStage Demand (a Visual Explainer)](https://andrealeopardi.com/posts/genstage-demand-visualized.md): Concurrency gives us more workers; demand tells us when to stop sending them work. This is what I want to point people to when we talk about "demand". Published 2026-08-07. Canonical HTML: https://andrealeopardi.com/posts/genstage-demand-visualized/ - [Redis Cluster Support, Without Writing Code](https://andrealeopardi.com/posts/redis-cluster-without-writing-code.md): How I experimented with building support for Redis Cluster into Redix (Elixir's Redis client) without writing code, solely relying on AI tooling. Published 2026-07-06. Canonical HTML: https://andrealeopardi.com/posts/redis-cluster-without-writing-code/ - [Counting Fast in Erlang with :counters and :atomics](https://andrealeopardi.com/posts/erlang-counters-and-atomics.md): Two BEAM escape hatches for counting fast—shared, mutable, off-heap integer arrays. How :atomics and :counters work, what they guarantee, and when to reach for each. Published 2026-05-01. Canonical HTML: https://andrealeopardi.com/posts/erlang-counters-and-atomics/ - [BEAM Metrics in ClickHouse](https://andrealeopardi.com/posts/beam-metrics-in-clickhouse.md): How we are periodically dumping metrics about our most demanding BEAM processes into an easy-to-query ClickHouse table. Published 2026-03-18. Canonical HTML: https://andrealeopardi.com/posts/beam-metrics-in-clickhouse/ - [Quantified Self • 2025](https://andrealeopardi.com/posts/quantified-self-2025.md): My own sort of "wrapped" for the 2025 year. Published 2025-12-28. Canonical HTML: https://andrealeopardi.com/posts/quantified-self-2025/ - [How to Async Tests in Elixir](https://andrealeopardi.com/posts/async-tests-in-elixir.md): It can be hard to keep tests asynchronous as Elixir applications grow in size and complexity. Let's see why, and explore fixes. Published 2025-04-28. Canonical HTML: https://andrealeopardi.com/posts/async-tests-in-elixir/ - [Tech I Use • 2024](https://andrealeopardi.com/posts/tech-i-use-2024.md): Inspired by others doing this, here's a writeup of the things I use—mostly tech—2024 edition. Published 2024-12-31. Canonical HTML: https://andrealeopardi.com/posts/tech-i-use-2024/ - [Reducing Compile-Time Dependencies in Gettext for Elixir](https://andrealeopardi.com/posts/refactoring-gettext-to-speed-up-compilation.md): This is how we significantly improved compilation time for Elixir projects that use Gettext, using a few metaprogramming tricks and ten years of Elixir experience since we wrote the first version of this library. Published 2024-09-04. Canonical HTML: https://andrealeopardi.com/posts/refactoring-gettext-to-speed-up-compilation/ - [Verifying JWTs from Apple's App Store](https://andrealeopardi.com/posts/verifying-apple-jwts.md): A quick walkthrough on how to verify JWTs coming from Apple's App Store APIs using Elixir. Published 2023-11-29. Canonical HTML: https://andrealeopardi.com/posts/verifying-apple-jwts/ - [A Breakdown of HTTP Clients in Elixir](https://andrealeopardi.com/posts/breakdown-of-http-clients-in-elixir.md): This is an overview of the HTTP clients we have available in Elixir, as well as when to use each one. Published 2023-07-24. Canonical HTML: https://andrealeopardi.com/posts/breakdown-of-http-clients-in-elixir/ - [Protohackers in Elixir](https://andrealeopardi.com/posts/protohackers-in-elixir.md): I'm publishing a new video series about network programming in Elixir, where I solve the networking puzzles on Protohackers. Published 2023-01-05. Canonical HTML: https://andrealeopardi.com/posts/protohackers-in-elixir/ - [Advent of Code 2022](https://andrealeopardi.com/posts/advent-of-code-2022.md): An experiment in solving AoC 2022 with Rust and some AI (GitHub Copilot and OpenAI's ChatGPT). Published 2022-12-01. Canonical HTML: https://andrealeopardi.com/posts/advent-of-code-2022/ - [Get Rid of Your Old Database Migrations](https://andrealeopardi.com/posts/get-rid-of-your-old-database-migrations.md): Are database migrations good? Probably, but are we using them in the right way? In this post, I write about how I think about migrations and what I'm doing to mitigate some of their shortcomings. Published 2022-11-28. Canonical HTML: https://andrealeopardi.com/posts/get-rid-of-your-old-database-migrations/ - [Testing AWS in Elixir](https://andrealeopardi.com/posts/testing-aws-in-elixir.md): An overview of how we test Elixir applications that interact with AWS. Published 2022-01-25. Canonical HTML: https://andrealeopardi.com/posts/testing-aws-in-elixir/ - [Example-based Tests And Property-based Tests Are Good Friends](https://andrealeopardi.com/posts/example-based-tests-and-property-based-tests-are-best-friends.md): A short look at mixing property-based tests and example-based tests to get the best of both worlds. Published 2022-01-09. Canonical HTML: https://andrealeopardi.com/posts/example-based-tests-and-property-based-tests-are-best-friends/ - [RPC over RabbitMQ (with Elixir)](https://andrealeopardi.com/posts/rpc-over-rabbitmq-with-elixir.md): A look into the RabbitMQ topology (exchanges, queues, bindings) and Elixir architecture that we use to perform RPCs over RabbitMQ. Published 2020-11-23. Canonical HTML: https://andrealeopardi.com/posts/rpc-over-rabbitmq-with-elixir/ - [Process pools with Elixir's Registry](https://andrealeopardi.com/posts/process-pools-with-elixirs-registry.md): A look at process pools and how to build routing pools (as opposed to checkout pools) using Elixir's built-in Registry. Published 2020-04-25. Canonical HTML: https://andrealeopardi.com/posts/process-pools-with-elixirs-registry/ - [Sharing Protobuf schemas across services](https://andrealeopardi.com/posts/sharing-protobuf-schemas-across-services.md): How we're managing, evolving, and sharing Protobuf schemas across several services and programming languages. Published 2020-02-24. Canonical HTML: https://andrealeopardi.com/posts/sharing-protobuf-schemas-across-services/ - [Persistent connections with gen_statem](https://andrealeopardi.com/posts/connection-managers-with-gen_statem.md): How we can use the gen_statem behaviour to implement a resilient state machine that holds a connection to an external service. Published 2019-04-14. Canonical HTML: https://andrealeopardi.com/posts/connection-managers-with-gen_statem/ - [A story of regret and retiring a library from Hex](https://andrealeopardi.com/posts/a-story-of-regret-and-retiring-a-library-from-hex.md): I'm retiring a library of mine from Hex. I want to explain why. Published 2018-09-15. Canonical HTML: https://andrealeopardi.com/posts/a-story-of-regret-and-retiring-a-library-from-hex/ - [The guts of a property testing library](https://andrealeopardi.com/posts/the-guts-of-a-property-testing-library.md): A look at the design and mechanics of StreamData, a data generation and property testing library for Elixir. Published 2017-08-15. Canonical HTML: https://andrealeopardi.com/posts/the-guts-of-a-property-testing-library/ - [Using C from Elixir with NIFs](https://andrealeopardi.com/posts/using-c-from-elixir-with-nifs.md): An in-depth look at how to use NIFs from Elixir to run native code in the Erlang VM. Published 2015-12-05. Canonical HTML: https://andrealeopardi.com/posts/using-c-from-elixir-with-nifs/ - [Compile-time work with Elixir macros](https://andrealeopardi.com/posts/compile-time-work-with-elixir-macros.md): An overview of possible things to do through Elixir macros at compile time. Published 2015-10-10. Canonical HTML: https://andrealeopardi.com/posts/compile-time-work-with-elixir-macros/ - [Handling TCP connections in Elixir](https://andrealeopardi.com/posts/handling-tcp-connections-in-elixir.md): A look at some strategies to handle TCP connections and data flowing through them. Published 2015-06-19. Canonical HTML: https://andrealeopardi.com/posts/handling-tcp-connections-in-elixir/ - [Tokenizing and parsing in Elixir with yecc and leex](https://andrealeopardi.com/posts/tokenizing-and-parsing-in-elixir-using-leex-and-yecc.md): A showcase of these two Erlang builtin tools and how they can be used from Elixir. Published 2015-06-05. Canonical HTML: https://andrealeopardi.com/posts/tokenizing-and-parsing-in-elixir-using-leex-and-yecc/