Sign in

Andrea Leopardi

@whatyouhi.de
1.4K followers 20 following 57 posts

Member of the Elixir core team, speaker, writer. he/him. Platform Engineer at Knock.

PostsRepliesMedia
Andrea Leopardi @whatyouhi.de · 18/03/2026
www.elixirconf.eu/trainings/ad...
elixirconf.eu
Advanced Concurrency Patterns in Elixir
Elixir’s concurrency story doesn’t stop at GenServer. In this tutorial, we’ll explore advanced concurrency patterns and building blocks that help you design systems that scale, stay responsive under l...
010
Andrea Leopardi @whatyouhi.de · 18/03/2026
TelemetryRegistry is somewhat of a big solution + DSL + enforcement on how to define events. I was not really interested in that. I’m ok with emitting events in the app and wherever, just wanted a nice easy way to generate consistent, pretty docs. No runtime/prod dependency either here.
110
Andrea Leopardi @whatyouhi.de · 18/03/2026
Just published a blog post about how we (at Knock) use @clickhouse.com to periodically dump info about our most resource-intensive BEAM processes. Already 100s of millions of rows, sub-10ms queries. andrealeopardi.com/posts/beam-m...
andrealeopardi.com
BEAM Metrics in ClickHouse
How we are periodically dumping metrics about our most demanding BEAM processes into an easy-to-query ClickHouse table.
171
Andrea Leopardi @whatyouhi.de · 16/03/2026
I just released a lil @elixir-lang.org library for generating docs about telemetry events from structured data. Love me some telemetry events but they're often an underdocumented aspect of libraries. hex.pm/packages/tel... Feedback welcome 👐
hex.pm
telemetry_docs
Generates Markdown documentation from structured telemetry event definitions.
2265
Andrea Leopardi @whatyouhi.de · 14/03/2026
Do you folks have any recommendations for a tool that can replace this type of usage? [3/3]
210
Andrea Leopardi @whatyouhi.de · 14/03/2026
food, whatever. To be clear, it does not have WRITE access to anything. That said, I'm not into OpenClaw. I find it bloated, clunky, configuration is hard, and I find that it often breaks, makes cron jobs, or doesn't do what it's told to, or ignores cron jobs and stuff. [2/3]
200
Andrea Leopardi @whatyouhi.de · 14/03/2026
I somewhat got used to OpenClaw. Not the tool per se: mostly having an LLM I can talk to that lots more context on me than Claude or ChatGPT. That context comes from integrations I was easily able to build in the form of little CLIs or APIs that get data from my trainings, [1/3]
110
Andrea Leopardi @whatyouhi.de · 10/02/2026
Hope to see you here! 🫶
120
Andrea Leopardi @whatyouhi.de · 11/01/2026
Exciting!! I’m gonna be there too. Hope to see ya there 🙃
020
Andrea Leopardi @whatyouhi.de · 23/12/2025
I'll be there. 2026 is the year I push for conferences. Submit!! If you are unsure, submit even harder. Let's get some new folks in! ☺️
060
Andrea Leopardi @whatyouhi.de · 12/12/2025
Some transformation and normalization but that's only part of the challenge really
000
Andrea Leopardi @whatyouhi.de · 11/12/2025
Live evaluation of audience membership as user properties and audience definitions change + reactive live preview counts of members. Pretty convoluted to get the real-time aspect and scalability (over large numbers of users) right and performing well.
120
Andrea Leopardi @whatyouhi.de · 11/12/2025
This is what I've been working on for the past ~6 months. It's been awesome. So much technical writing to do out of this 😁 Of course, all @elixir-lang.org. knock.app/changelog/20...
knock.app
Dynamic audiences beta | Changelog 2025-12-11 | Knock
Build dynamic audiences that update in real-time on top of your Knock user data.
4284
Andrea Leopardi @whatyouhi.de · 12/09/2025
I've been super quiet on socials (because everything is a screaming burning hell for everyone amirite) but I'll try to post a bit more. What better excuse than the first 1.0 release of Gettext for @elixir-lang.org, which is 10+ years old?! Fresh of an Hex near you??? hex.pm/packages/get...
hex.pm
gettext
Internationalization and localization through gettext
0518
Andrea Leopardi @whatyouhi.de · 28/04/2025
This is not very different than what I call out in the post: it's essentially a mock of :application. But yeah would do the trick 🤓
020
Andrea Leopardi @whatyouhi.de · 28/04/2025
Maybe, especially for OS env and app env which don't have a "pluggable backend" architecture. However, I like the explicitness of calling those functions myself, you know. For logger this can be done with a logger handler already.
000
Andrea Leopardi @whatyouhi.de · 28/04/2025
I wrote about something very close to my heart: how to make ALL the tests async in @elixir-lang.org. Enjoy! 🏎️ andrealeopardi.com/posts/async-...
andrealeopardi.com
How to Async Tests in Elixir
It can be hard to keep tests asynchronous as Elixir applications grow in size and complexity. Let's see why, and explore fixes.
46315
Andrea Leopardi @whatyouhi.de · 20/04/2025
#elixir community! I’m trying to write a blog post and need some sources/data. Could you please run "mix test" on one or more of your @elixir-lang.org codebases and report results? I’m looking for: 1. # of tests 2. # of async tests 3. Total time sync 4. Total time async
18217
Andrea Leopardi @whatyouhi.de · 16/04/2025
How do you avoid the trap of having to allow notifs from an app (Uber for example) and then the app spams you with shit non-relevant notifications about promotions and other stuff?
360
Andrea Leopardi @whatyouhi.de · 04/04/2025
AlchemyConf is over. Fantastic conference, I can't recommend it enough. The organization did an outstanding job!! Here are the slides from my closing talk: speakerdeck.com/whatyouhide/... Thanks everyone 🫎
speakerdeck.com
gen_statem - OTP's Unsung Hero
Given at AlchemyConf 2025 in Braga, Portugal.
2326
Andrea Leopardi @whatyouhi.de · 02/03/2025
Yo, if you come to @alchemyconf.bsky.social, code ANDREALEOPARDI gets you 10% off the ticket 🇵🇹
072
Andrea Leopardi @whatyouhi.de · 15/01/2025
not at all UNTIL YOU MENTIONED IT ahah
130
Andrea Leopardi @whatyouhi.de · 14/01/2025
I played around with an @obsidian.md theme for my own usage, I might open it up if I get to polish it enough 🙃
Screenshot of Obsidian with the theme I’m developing activated.
5210
Andrea Leopardi @whatyouhi.de · 01/01/2025
Super nice post about @elixir-lang.org's nimble_ownership library by Alex Martsinovich: distantprovince.by/posts/what-d... Great stuff to know about. Also, great technical writing 👏
distantprovince.by
What Does NimbleOwnership Do Anyway? | Alex Martsinovich
NimbleOwnership may not take bribes, but it certainly knows who your father is.
04214
Andrea Leopardi @whatyouhi.de · 17/12/2024
Heeeey that's awesome to hear. Let me know if I can help in any way 🙃
000
Andrea Leopardi @whatyouhi.de · 17/12/2024
Any more details there?
110
Andrea Leopardi @whatyouhi.de · 17/12/2024
For today, you get get this 50% off with code "alnpee2024" (cause @pragprog.com are nice!)
42412
Andrea Leopardi @whatyouhi.de · 17/12/2024
New beta release of "Network Programming in @elixir-lang.org and #Erlang" is out: pragprog.com/titles/alnpe... HTTP/1.1 chapter's in there. HTTP/2 (+3) chapter is already in review, and WebSockets chapter is in progress... and then we Ship It™ 🛳️
pragprog.com
Network Programming in Elixir and Erlang
Learn network programming with Erlang and Elixir. Build reliable and scalable network systems, and understand why this platform is a perfect fit for networks.
23412
Andrea Leopardi @whatyouhi.de · 14/12/2024
LOL you shouldn't have to ask, of course. And I don't check LinkedIn, no worries ahah
110
Andrea Leopardi @whatyouhi.de · 09/12/2024
Tomorrow I srart as a platform engineer at Knock. Excited? Yeah, but it's sort of like coming home? I know I will have the BEST time there... I think we were all meant to be. 🥰
0110
Andrea Leopardi @whatyouhi.de · 07/12/2024
What interesting stuff are folks reading? Now I’m reading "Build a Large Laguage Model (from Scratch)"
210
Andrea Leopardi @whatyouhi.de · 30/11/2024
I’m sort of eyeing smart rings for that. I love me some stats too
110
Andrea Leopardi @whatyouhi.de · 29/11/2024
I've been wearing this lil fucker for the past few months. I appreciate beautiful watches but man. No charging, no notifications. I wouldn't be able to break it if I tried. Looks kick ass like I’m an 80s cool kid or something. The hell
Picture of a classic black Casio G-Shock watch on my wrist, close up
4220
Andrea Leopardi @whatyouhi.de · 28/11/2024
Yeah great call out. iOS has had that for years now though right?
000
Andrea Leopardi @whatyouhi.de · 28/11/2024
Interesting read by @mitsuhiko.at. I think this applies to lots of use cases. It does make software harder in some way IMO, but "hard software" is generally easier to solve than "software that needs to be used for a long time". Thoughts? lucumr.pocoo.org/2024/10/30/m...
lucumr.pocoo.org
Make It Ephemeral: Software Should Decay and Lose Data
Make software that is capable to forget and decay information.
141
Andrea Leopardi @whatyouhi.de · 28/11/2024
I'll bring boxing gloves
040
Andrea Leopardi @whatyouhi.de · 27/11/2024
Spent the last few days in Hanoi, Vietnam 🇻🇳 Wow. Westerner perspective, apologize the possible stereotypical shots and whatnot.
190
Andrea Leopardi @whatyouhi.de · 27/11/2024
In my experience it introduces more friction in the dev workflow, with having to keep clean commits in PRs or rewrite history before merging and whatnot. Saša, wanna fistfight about who's right at AlchemyConf? 🥊😑
250
Andrea Leopardi @whatyouhi.de · 27/11/2024
what grips me is that commits like "refactor this" or "format that" will make the blame a nightmare rather than small self-contained (squashed) commits. id rather split the PR if there's too much stuff going on or too much feedback
110
Andrea Leopardi @whatyouhi.de · 26/11/2024
Aside from squash not squash, do you look at Git history so much that THIS is the hill you die on? 😄
100
Andrea Leopardi @whatyouhi.de · 24/11/2024
Yes and I've done this in the past, 100%. Would you feel the same if you had no choice though? Like, pairing on everything all the time.
200
Andrea Leopardi @whatyouhi.de · 24/11/2024
I agree on the "solving problems" together but that's not really pairing right? I mean, the same way meetings are not "mobbing" for example. On the learning I really disagree, I think at best it comes to preference.
000
Andrea Leopardi @whatyouhi.de · 24/11/2024
Wait, writing docs too? And researching?
000
Andrea Leopardi @whatyouhi.de · 24/11/2024
I was super curious about the exact same—trying "real" heavyduty pairing. But man, 8h? When do I read, write, communicate, think, and soooo onnnnnnn
110
Andrea Leopardi @whatyouhi.de · 24/11/2024
yeah the mandating part is what kind of gets me
000
Andrea Leopardi @whatyouhi.de · 24/11/2024
that part is a learnable skill i think, and ultimately that obstacle tends to result in less time spent reviewing code for others. but this is kind of specific to programming, where pairing is something i don't mind (vs the rest of the stuff we do)
010
Andrea Leopardi @whatyouhi.de · 24/11/2024
Right but both cases are about PROGRAMMING... which I agree works well in pairs. My point was about the rest (80%?) of stuff we do
100
Andrea Leopardi @whatyouhi.de · 24/11/2024
Living in non-English speaking countries makes buying books like this a nightmare 🥲 In Italy at least, I don't really know of alternatives to the mogul
010
Andrea Leopardi @whatyouhi.de · 23/11/2024
Woooah awesome!! 🦉
140
Andrea Leopardi @whatyouhi.de · 23/11/2024
I’m a nerd for apps and setups and whatnot. Here's my "travel" focus I use on trips. Love it.
Screenshot of iOS home screen.

Top row: Todoist widget + Duolingo
Mid: Tripsy widget
Bottom: Photos, Splid, PocketSmith? Google Maps, Todoist, Grab
Dock: Phone, Whatsapp, Fantastical, Safari
160