PyCon, Pressure, and Procrastination
Greeting friend!
It’s been four months! I’m sorry. It’s been a wild four months.
So, here, you’ve deserved it:

I’m super excited to have him in August again, so you can look forward to more photos! Also, there might be another treat waiting at the end of this newsletter. #suspense
With the most important part out of the way – where have I been for so long, and don’t I feel bad for the long queue of PRs and issues on my open-source projects!? The answers are: “everywhere” and “very”.
Due to weird planning, I’ve spent March–June traveling, catching up with work, and frantically writing a PyCon US talk in under a month.
Speaking of!
PyCon US 2025
I’m not gonna be coy about it: the conference was an absolute blast despite, let’s say, an inauspicious overall situation. It remains one of my highlights of the year.
Here’s my favorite photo from this year, taken by Deb Nicholson, calling it the “PyCon Boy Band”:

Our first single is “I fought the goose and the goose won.”.
(Apologies to my UK readers, where my gesture apparently is comparable to a middle finger. Virtually everywhere else in the world, it’s just a corny photo pose.)
Writing out all my highlights would be three newsletters by themselves, but let me itemize the most essential things:
My bestie Lynn was keynoting about a vital topic I shall not spoil, and oh my god look at the amazing hand-drawn corvid art:

Social media is so back! I’ve seen a lot of activity on Mastodon under the #PyConUS
hashtag! People live-posted talks again, it didn’t feel like nothing is happening anymore!
Interestingly, Bluesky seems to have cooled down considerably overall.
I made my friend Pablo wear fluffy llama ears in the Steering Council panel for a $100 donation to PyLadies:

Now that I have a willing furry gigolo available, I plan to run a whole pledge drive next year, including stretch goals and everything.
I’ve written a lengthy thread about the importance of in-person community gatherings for the community’s health and the participants’s mental health.
We can find ways to share information and watch videos of talks just fine, but we can’t replace global in-person meetings in a central place for a widely distributed heterogenous community that needs to collaborate. And as long as the maintainer community is structured the way it is right now, that place will be PyCon US for the foreseeable future.
There is no other place on earth where I could’ve impromptu discussed the future of CFFI with everyone involved in one room while chewing on a donut that I stole from the Flask sprint room.
I wish there were a better and simpler solution to this, because, quite frankly, once per year is not enough for me, but it is what it is.
As we say goodbye to Pittsburgh, I demand a green outdoor area at every conference. 🤩

And then there was my own talk!
Under Pressure
If you’ve run into me in the past ~two years or listened to a podcast I've been on, you must’ve heard me riffing on the topic of design pressure. I started thinking about it when I was horrified by people exhorting the virtues of a unified model (define your models once, use them in the frontend, business code, and database), but it kind of led me deeper into the rabbit hole of models, modeling, and laziness.
To my surprise, this obscure talk – that I’ve been told barely made it through review – made numbers like none before.
For the first time since I had the luck of reporting on the Sorry State of SSL the same week as Heartbleed dropped, I spoke to a standing room only audience. For the first time, a video of me made it on the front page of the Orange Website, and the comments were largely non-terrible!
It clearly struck a nerve with many people, and I’ve gotten the ultimate compliment: “I’ll make all my coworkers watch it!” several times. I’m glad I could put something into words that many had already as a gut feeling (or even a belly ache) and told me that it “finally clicked”. A big thank you to everyone who humored me over the past two years – the talk would’ve never turned out the way it did without you – especially if you gave me a blank stare!
If you haven’t seen it yet and are coming to EuroPython… fuck… next week!?!?! … I encourage you to come to the talk instead. A) so I’m not lonely and B) because it’s gonna be a slightly expanded version (45 mins!) with, hopefully, less throat-cleaning, and with some clarifying updates based on feedback I’ve received.
For everyone else, here it is, with additional reading material: https://hynek.me/talks/design-pressure/
I’ve missed most CfPs in 2025 so I hope to start a Design Pressure World Tour in 2026. Especially Asia would a nice change!
And to those who came to my PyCon US talk: thank you so much! Public speaking to a full, energetic room is such a delight that I have not been able to replicate with YouTube, yet.
Speaking of!
uv in Prod 2/3
Four short months after My 2025 uv-based Python Project Layout for Production Apps and many pleading, desperate comments later, it’s finally here uv: Making Python Local Workflows Fast and Boring in 2025
And what can I say… it's a Big Boi. As I say in the epilogue, one of the reasons why I had such a hard time finishing this video is that there are just SO MANY TOPICS. It’s 40 minutes long, but you have no idea how much I had to cut out.
And getting all this into a somewhat coherent story was an ordeal. People often comment on how much work the editing has to be – especially for a video where the recording was so long, one of my background LEDs ran out of battery. And it is! Especially because I virtually start at zero every time due to the long gaps between my videos. This time it was so bad that I forgot to change the settings on my camera app and filmed in HDR instead of LOG (which is why the colors are different), and I forgot that everything is mirror-inverted (which is why I keep pointing in wrong directions).
But the part that takes me the longest – be it videos or talks – is the writing. In this case, I was close to just giving up because the pile was just so big and jumbled. But why so much content in the first place?
Because I think people crave a bigger picture. I don’t think it’s helpful to say “there’s uv run
, uv lock --update
, and uv sync
– have a good night”. And given the responses I’ve got, I think my instinct is correct. People want to know how to put things together and not getting the README read out to them. I have the same cravings when it comes, for example, to video workflows. I don’t care about individual features – I care how experienced people use them. And once you start adding context, you end up with 40 minutes faster than one thinks. 😅
But then again, channels that read out READMEs have 100x of my views, so what do I know? 🙃
Fortunately, my biggest fear didn’t come to pass and YouTube’s algorithm didn’t kill it on sight and it’s doing almost as well as its light-weighted predecessor.
So, annoying as editing is, it’s not the main bottleneck. Once I’ve filmed a script, it takes me ~one week to get it out for good. A miserable week, but a week. And yes, I would love to outsource video editing, but I’ll need a lot more GitHub Sponsors to make that work. 😅
Speaking of!
None of this – including my FOSS work – would be possible without my fabulous GitHub Sponsors so I have to shill that again. I'm extremely grateful that the community appreciates my work that benefits everyone enough such that I can pay for my tools and equipment, and one or two conference appearances per year.
The upcoming one is PyCon UK in Manchester in September. Thanks to everyone who made this possible with their patronage! 💛💛💛
And if you ever wanted to read – or even hear! – your name in one of my videos: check out the $11 and $25 tiers1!
One thing that stood out to me this time is that more commenters noted on my weirdness, which I consider a compliment:

One specific reason I got into YouTube was to bring in more of my personality, so if people notice weirdness, that part is clearly working. Whether it’s the kind of weird that can ever make a channel mildly successful, we shall see!
Ultimately, human weirdness is a good differentiator to the rising wave of AI slop. Another reason why YouTubers hold their microphones now.
FOSS

To those waiting for feedback on bugs and PRs: I’m super extra mega sorry.
The highest priority for me is keeping projects in a good, shippable shape – because that’s still the main job of a maintainer. Once you have failing builds and/or a permanently red CI, you’ve lost control of your project because you can’t merge changes with confidence and more importantly you can’t release when necessary.
And you’d be surprised how much work that is, especially when a new Python release looms on the horizon or when a new feature like free-threading (a/k/a nogil) requires extensive cross-project collaboration (c.f., aforementioned CFFI). It’s the ultimate hamster wheel, because there’s no payoff whatsoever – only negative consequences if one punts on it. This is not meant as a complaint. I’m very fortunate that I can justify using my free time for this kind of work thanks to my GitHub Sponsors and Tidelift.
But in stressful times, it means that feature work has to take a back seat, which is frustrating for everybody. While I have a big thing coming up in September #foreshadowing
, my summer after EuroPython should be a lot calmer than the past months (famous last words), so I solemnly swear to work myself through the backlog.
Enough!
Before this becomes a 40 minutes newsletter, let me make a cut here and offer you finally, as promised, another treat:

Dusty’s my neighbor’s dog and I get him occasionally if they need to run an unexpected errand. Not quite Barnaby tier, but a good boy no less!
Alright, looks at scrollbar turns out a lot can happen in 4 months! Hope y'all made it thru and hopefully until… sooner,
—h
To be clear, most of the names in the credit scroll are grandfathered $5 sponsors. 😅 They supported me early and will always have a special place in my heart. 💛 ↩