Sign in

German Velasco

@germsvel.com
1.2K followers 48 following 191 posts

💧Elixir and 🔥 Phoenix consultant - germanvelasco.com 🎥 Short tips - elixirstreams.com 🎙 Elixir Friends - elixirfriends.transistor.fm

PostsRepliesMedia
German Velasco @germsvel.com · 08/09/2026
I’ll miss seeing you there. Always love to touch base with you. 😔
010
German Velasco @germsvel.com · 08/09/2026
Who's going to @elixirconf.bsky.social in a couple of days? I'd love to meet up! #ElixirLang
430
German Velasco @germsvel.com · 13/08/2026
So, I think if we renamed `min_demand` -> `min_threshold` or `resupply_threshold` it would remove the confusion that max & min demand bring. And that would help people understand GenStage more easily. #ElixirLang
020
German Velasco @germsvel.com · 13/08/2026
I think the reason for that is that `min_demand` is not a true counterpart to `max_demand`. (`max_demand` makes sense to me) But GenStage's docs explain it correctly: ":min_demand specifies the minimum threshold to trigger for more demand"
110
German Velasco @germsvel.com · 13/08/2026
That post mentions `max_demand` and `min_demand` as "the thing that trips people up the most". I totally agree. It's what's always tripped me too. It made me think: why is that?
100
German Velasco @germsvel.com · 13/08/2026
This blog post by @whatyouhi.de is amazing. The best explanation of GenStage I've seen. andrealeopardi.com/posts/gensta... #ElixirLang
andrealeopardi.com
Elixir's GenStage Demand (a Visual Explainer)
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".
1126
German Velasco @germsvel.com · 05/08/2026
😬 I guess this is how you take over a framework?
static.klipy.com
Homer Simpson Hides in Shrubs
ALT: Homer Simpson Hides in Shrubs
010
German Velasco @germsvel.com · 05/08/2026
Love to hear that Mike! 🙌 Can't claim too much credit though: heavily inspired by Capybara and Wallaby.
010
German Velasco @germsvel.com · 05/08/2026
Wow... didn't catch that at all 🤦‍♂️ Uhhh... do you think people noticed?
000
German Velasco @germsvel.com · 05/08/2026
Just published Phoenix 0.12.0! 🎉 Excited for this one because it now supports `aria-label` and `aria-labelledby` Thanks to contributors for making it happen! 🥳 phoenix-test.hexdocs.pm/PhoenixTest....
phoenix-test.hexdocs.pm
PhoenixTest — PhoenixTest v0.12.0
3183
German Velasco @germsvel.com · 03/08/2026
I keep finding that the diverge-then-converge pattern is really helpful with LLMs. So, I wrote a post about it. Hope others find it helpful! ✍️ www.germanvelasco.com/blog/diverge...
germanvelasco.com
Diverge then converge with LLMs
One of the patterns I've found particularly helpful with LLMs is the diverge-then-converge pattern. LLMs excel at both of those things separately, and when we put them together, they are an excellent ...
011
German Velasco @germsvel.com · 31/07/2026
Through it all, I practice and teach a culture of continuous improvement so that, long after I'm gone, your team can continue the virtuous cycle of self-improvement. DMs are open, or email me at german(at)germanvelasco.com. And for more on how I work, see germanvelasco.com
germanvelasco.com
German Velasco
Software developer and consultant. Let's build great software together.
020
German Velasco @germsvel.com · 31/07/2026
- ♻️ Process: continuously improving how your team builds, coordinates, and delivers your product
100
German Velasco @germsvel.com · 31/07/2026
- 🧑‍💻 People: strengthening your team's technical and product skills as we improve the product (remember, your team is the engine behind your product). Mentoring, pair programming, workshops, whatever is needed to make your team the best version of itself.
100
German Velasco @germsvel.com · 31/07/2026
- ✨ Product: building the best possible product for your customers. I care about the solution end-to-end.
100
German Velasco @germsvel.com · 31/07/2026
For the first time in a while, I have an opening for new clients (in September). Do you need help with your product, engineering team, or an Elixir/Phoenix project? How I help teams (3 Ps) 👇
germanvelasco.com
German Velasco
Software developer and consultant. Let's build great software together.
162
Reposted by German Velasco
David Bernheisel @david.bernheisel.com · 24/07/2026
Next time you're upgrading Phoenix and you're using AI assistance, try pointing it to elixirstream.dev/gendiff/api and tell me how it goes. cc @steffend.me #ElixirLang
elixirstream.dev
https://elixirstream.dev/gendiff/api
# gendiff — Markdown API for coding agents Generate a diff of a project generator's output between two versions, rendered as Markdown built for LLMs. Fetch one URL, get the diff — no UI needed. ## E...
0164
German Velasco @germsvel.com · 24/07/2026
Yeah, that's a real thing -- and not just in IT. I've tried positioning from the Erlang side (been running forever), but it can be a tough hill to climb if people just prefer Java (or something else) and mask it as "less risky."
010
German Velasco @germsvel.com · 17/07/2026
😂 too true
000
German Velasco @germsvel.com · 17/07/2026
What are companies in the #ElixirLang space struggling with right now? AI adoption? Finding product-market fit? Team dynamics? Hiring? Something else? (I know there's varied answers, but curious if there are commonalities)
320
German Velasco @germsvel.com · 07/07/2026
That's kinda what my post is about -- that planning takes so long and so many iterations. It's kinda like the 10k line PR -- the longer the plan, the less I want to read it.
100
German Velasco @germsvel.com · 07/07/2026
I'm not a big fan of the big-upfront-plan approach to work with LLMs. Am I the only one? I wrote a bit about it in www.germanvelasco.com/blog/are-pla...
germanvelasco.com
Are plan files the new 10k-line PRs?
Many people's new way of working with LLMs is to start with an idea, have the LLM create a spec (review and approve that), then have the LLM generate a very detailed plan. At that point, people have t...
121
German Velasco @germsvel.com · 25/06/2026
I finally finished writing the blog post that shares some things I tried (some good, some bad) when creating ExCrap without reading the code. Hope others find it helpful! ✍️ www.germanvelasco.com/blog/i-wrote... #ElixirLang
germanvelasco.com
Reflections on creating ExCrap without looking at the code
I recently published ExCrap, an Elixir library for calculating Change Risk Anti-Patterns scores -- or as they're commonly called CRAP scores. It made for a perfect experiment: creating the library wit...
091
German Velasco @germsvel.com · 23/06/2026
Here's the post, using the sunk cost fallacy and the loss aversion principle to analyze why people feel bad about deleting code. ✍️ www.germanvelasco.com/blog/why-dea...
germanvelasco.com
Why dead code feels hard to delete
It's always surprising when people don't want to delete dead code because they think they might need it in the future or because they worked so hard on it. Recently, I had one of those conversations w...
030
German Velasco @germsvel.com · 23/06/2026
I wrote a post for whenever you have a co-worker who wants to keep dead code around. 

In particular, I love the loss aversion principle that I tried to capture in these two contrasting images in the post.
150
Reposted by German Velasco
Claudio Ortolina @claudio-ortolina.org · 19/06/2026
It was really fun! I tried to ramble as little as possible. My main point was that pi lets me build tools that are tightly integrated, and usable by me and the LLM. It helps me being more effective without relinquishing control.
121
German Velasco @germsvel.com · 19/06/2026
A few weeks ago, I paired with @claudio-ortolina.org where he shared a bit about his AI workflow and how he uses pi, as he walked me through his app to manage his huge (and ever growing) record collection. Thanks again Claudio for pairing! www.elixirstreams.com/ai_files/pai... #ElixirLang
elixirstreams.com
Elixir Streams |> Pairing with Claudio Ortolina on his AI workflow
Elixir and Phoenix tips, courses, and more.
050
German Velasco @germsvel.com · 16/06/2026
Imagine the conversations that will ensue with other teammates.
static.klipy.com
Keanu Reeves: You're Welcome Pleasure
ALT: Keanu Reeves: You're Welcome Pleasure
010
German Velasco @germsvel.com · 16/06/2026
The mix task, as you might guess, is `mix crap` 🤷 It'll show you potential crap in your codebase. My goal is for @david.bernheisel.com to say it out loud in the last Thinking Elixir podcast 😅
1112
German Velasco @germsvel.com · 16/06/2026
The other interesting part is that this was an “I won’t read the code” experiment for me. Small lib, so seemed like a good fit. I’ll write a blog post that talks more about that in detail with some lessons learned (for those interested). #ElixirLang
010
German Velasco @germsvel.com · 16/06/2026
Just published a new library to calculate CRAP metrics (I know, that's what it’s called 🤷): change risk anti-patterns. It’s a metric composed of cyclomatic complexity and test coverage. 👇 ex-crap.hexdocs.pm/readme.html #ElixirLang
ex-crap.hexdocs.pm
ExCrap — ex_crap v0.1.0
3174
German Velasco @germsvel.com · 12/06/2026
If we want to build software factories (still an if for me), how can we build good ones? And I don’t know about you, but I think it all comes down to verification. 👇 www.germanvelasco.com/blog/draw-th...
germanvelasco.com
Draw the rest of the ___ owl (software factory edition)
My guess is that most software development teams in the world are at a point where we are drawing the two circles. Those are all the teams where developers use LLMs daily. But then you hear about team...
041
German Velasco @germsvel.com · 09/06/2026
Making the decision to stop writing code by hand a few months ago was the biggest small change I made that helped me see LLMs differently. It took a while, but I finally like programming with them. Wrote a post that shares some thoughts on that 👇 www.germanvelasco.com/blog/stop-wr...
germanvelasco.com
Stop writing code by hand (and feel the friction)
If you're using LLMs in your day-to-day workflow, and you're only using them as assistants that you ask questions of (like a glorified Google in your terminal or IDE), or if you call on them like a ge...
030
German Velasco @germsvel.com · 05/06/2026
You're my hero! Can't wait to do that.
000
German Velasco @germsvel.com · 05/06/2026
I have my own setup. Not a Cursor fan, but thanks for the offer. Crit is a great tool though. Lack of links is my fault. @tomasztomczyk.bsky.social shared in different reply (but just for more visibility) the links are there 👇 bsky.app/profile/toma...
bsky.app
000
German Velasco @germsvel.com · 05/06/2026
A few weeks ago, @tomasztomczyk.bsky.social was kind enough to pair with me and show me his AI workflow. It was an awesome pairing session where he showed me everything, from his new tool (crit), custom skills, commands, workflows, etc. 👇 youtu.be/9c3J4J8U6a8 #ElixirLang #AIFiles
youtu.be
Pairing with Tomasz Tomczyk on his AI Workflow
YouTube video by German Velasco
2121
German Velasco @germsvel.com · 04/06/2026
Next: writing on recursive writing
010
German Velasco @germsvel.com · 04/06/2026
Thanks Britton! Highly recommend it!
000
German Velasco @germsvel.com · 04/06/2026
I recently finished an experiment where I tried to write (and publish) daily, so I wrote a retrospective on it. For those interested 👇 www.germanvelasco.com/blog/daily-w...
germanvelasco.com
Daily writing retrospective
Back in April, I decided to write daily for my newsletter. Up to that point, my newsletter was mostly a delivery mechanism for my blog. But I wanted to change that. I wanted to write more.
280
German Velasco @germsvel.com · 03/06/2026
Let's go to ExMex! I've been thinking about going there.
040
German Velasco @germsvel.com · 01/05/2026
I've been writing daily in my newsletter for a couple of weeks now. Some days things just come out flowing like I've been meaning to write them for a while. This blog post was one of those (adapted from a daily post). Hope others enjoy it! ✍️ www.germanvelasco.com/blog/pair-pr...
germanvelasco.com
Pair-programming is a cheat code
I had that written on my office whiteboard for a while last year. I had just finished working with a client for over a year where the whole team pair-programmed full-time (we also did a lot of mobbing...
041
German Velasco @germsvel.com · 28/04/2026
🤩
020
German Velasco @germsvel.com · 27/04/2026
PhoenixTest v0.11 is out! Huge thank you to all who contributed 🥳 Changelog: hexdocs.pm/phoenix_test... #ElixirLang
hexdocs.pm
Changelog — PhoenixTest v0.11.1
0121
German Velasco @germsvel.com · 23/04/2026
Thanks @katafrakt.eurosky.social for the PR (and sorry it took so long!) 🥳
040
German Velasco @germsvel.com · 23/04/2026
I decided to write daily (for 30 days) on my newsletter (www.germanvelasco.com#newsletter_f...) I really like writing as a tool to sharpen my thinking. So far, I've talked about sharpening our tools, stacking days, isoquants and isocots lines. If that sounds interesting, join me!
germanvelasco.com
German Velasco
Software developer and consultant. Let's build great software together.
040
German Velasco @germsvel.com · 22/04/2026
After some deliberation, I finally decided to make www.TestingLiveView.com free! I still think it's an amazing resource, but my focus is elsewhere now. So, I wanted to make it a free resource for the community. #ElixirLang
testingliveview.com
Testing LiveView
Test LiveView effectively. Trust your code. Ship confidently.
04715
German Velasco @germsvel.com · 18/04/2026
Yes! That'd be amazing. I'll take any excuse to hang out with you again. :) I'm sure you're gonna blow my mind with advanced Tidewave workflows.
010
German Velasco @germsvel.com · 18/04/2026
Awesome! Thank you. I'll follow up via DM.
010
German Velasco @germsvel.com · 18/04/2026
Love it! I'll follow up via DM. And I'm interested in all use cases. Just trying to show as many people using AI in as many ways. (and selfishly, I'm almost the same. nvim+tmux+opencode. So, would love to see you work!)
010
German Velasco @germsvel.com · 16/04/2026
Anybody interested in pairing with me (and recording) to show how you're using AI in your day-to-day for ElixirStreams? I think there's a lot of siloed information (and hints online). So, I'd love to shed some light with real people showing real usage. #ElixirLang
340