Sign in

Brandur

@brandur.org
1.7K followers 21 following 79 posts

Engineering @ Stainless. Ex-Heroku, Stripe, and Snowflake. Go, APIs, Ruby, and databases.

PostsRepliesMedia
Brandur @brandur.org · 17/12/2025
Pleasant surprise this morning (had no idea this change was coming): in Ruby 4.0, logical operators for chained conditions can appear on the next line. FINALLY. nithinbekal.com/posts/ruby-4...
020
Brandur @brandur.org · 16/12/2025
Tiny workflow optimization of the week: after switching to one of these terrible Apple keyboards with borderline unusable arrow keys, added bindings for Vi-style Ctrl+K/J for up/down history on Zsh prompt. bindkey '^K' history-search-backward bindkey '^J' history-search-forward
020
Brandur @brandur.org · 14/12/2025
Gorgeous snow over Brooklyn this morning.
080
Brandur @brandur.org · 09/09/2025
Getting back into Kubernetes for work after years away, my main takeaway is that although Kubernetes is still kind of a meh complexity/value proposition, Argo CD is absolutely incredible. Glad there's a Kubes CLI, but having a great UI to backstop you changes the game. cd.apps.argoproj.io
051
Brandur @brandur.org · 30/06/2025
Today, came across a Go package literally named "event". Such bland naming doesn't just hurt users, it hurts the package because being hard to google makes it less likely to be adopted. Ultra-generic naming isn't cool. It's just bad. For the love of god: brandur.org/fragments/go...
061
Brandur @brandur.org · 21/06/2025
Past 8 PM, there is more life on one street corner in Berlin than all of San Francisco combined. It's wild. Annoying to no end that America's most beautiful cities are compromised because we let boomers who bought homes in 1980 for $50k pull up the ladder behind them.
0111
Brandur @brandur.org · 20/06/2025
Great new feature from Movist Pro. Knocks one step off the YouTube → yt-dlp → Movist pipeline.
010
Brandur @brandur.org · 20/06/2025
Recently learned about the "American Frontier" movie trilogy, or in other words that Sicario (first watched a decade ago) has two spiritual successors. Watched Wind River tonight. Easily the best movie I've seen all year.
030
Brandur @brandur.org · 16/06/2025
Tiny tool sharpening: noticed over the years Vimium getting less powerful and had assumed it was Chrome slowly killing extension capacity, as they do. Today, recovered some important ones with custom bindings. Also, smooth scrolling -> off to get rid of awful scroll animations.
000
Brandur @brandur.org · 15/06/2025
Just in case I'm not the only one who didn't know about this (it's not new, but TIL for me) ... you can set watches on GitHub repos based on custom settings, like for releases only. So useful.
040
Brandur @brandur.org · 11/06/2025
One of these is parody. The other is real. Which is which? We need to go back to designers making things for people, and function over form. For a decade plus, designers have been exclusively making things for other designers, and favoring form over function throughout.
250
Brandur @brandur.org · 26/05/2025
Some thoughts on the archival of Go's popular gopkg.in/yaml.v3 package. It's a 3-way race: • A vulnerability is discovered in gopkg.in/yaml.v3, becoming a widespread liability. • Testify drops gopkg.in/yaml.v3. • A new de facto assertion package is found.
110
Brandur @brandur.org · 26/05/2025
On a run after 8 PM. Calgary is absolutely gorgeous this time of year.
020
Brandur @brandur.org · 05/05/2025
What's more exciting? This, or iPhone 17? Just kidding. It's a rhetorical question. Nobody cares about the iPhone 17.
030
Brandur @brandur.org · 05/05/2025
3.26 trillion dollar company.
040
Brandur @brandur.org · 13/04/2025
Never underestimate the LOC-culling power of sync.Once.
0142
Brandur @brandur.org · 10/04/2025
Damn, we need to have a serious conversation about programming docs standards. >50% of the time they're so bad that why even bother. Data defines the data. X0 defines the X0. X1 defines the X1. Y0 defines the Y0. What else did you want to know dummy?
030
Brandur @brandur.org · 29/03/2025
After implementing support in our home-grown Go data loader for `SELECT ... WITH UPDATE` yesterday, I'm now wondering how may apps use something like Rails' `Locking::Pessimistic` versus YOLOing (like we were) because transaction anomalies are rare and it's usually okay. Probably 80%+ the latter?
010
Brandur @brandur.org · 20/03/2025
IMO, the right way to to do data fixtures in Go: * No framework needed, but use sqlc + validator. • Real DB records. • No error return to making calling succinct. • Pointer helpers to get 4 LOCs down to 1 LOC. • Defaults for everything possible. brandur.org/fragments/go...
282
Brandur @brandur.org · 16/03/2025
It's always such a nice surprise finding a fast, well-written test suite (they are very rare). Here's the Sequel gem's (Ruby ORM). 18 year old project. Runs <10s on battery power.
020
Brandur @brandur.org · 07/03/2025
DataDog tracer dependencies dependencies. Page 1. Page 2. I feel a little less bad about my packages' dep trees now.
130
Brandur @brandur.org · 27/02/2025
Come MacOS 15.1, no more X button on this thing. You can snooze for an hour, or activate it then fuck around in settings to cancel it, but the user-hostile UX/Security teams at Apple are sending a clear message: the computer you bought was never yours, and you're on our schedule.
352
Brandur @brandur.org · 24/02/2025
It's always mildly terrifying when a product has a "try our new UI" button, especially when the UI is already good. But ... tried it with Sentry and good results so far. Comments without needing to access them via sub-widget is a win.
020
Brandur @brandur.org · 13/02/2025
Go 1.24 deployed. 2-3% decreased CPU overhead here we come.
030
Brandur @brandur.org · 13/02/2025
Instead of allowing trailing commas in SQL—which will save thousands of wasted hours per year and has no downsides whatsoever—everyone should adopt my completely unintuitive, labor intensive alternative styling that moves the problem of a trailing comma to one of a leading comma.
060
Brandur @brandur.org · 12/02/2025
Squashed 2/2 (100%) known intermittently failing tests in the past 24 hours. You have to be the Liam Neeson of tracking down and destroying these things. If allowed to fester, they accumulate and turn DX to mush in mere weeks.
030
Brandur @brandur.org · 30/01/2025
Put in a novel new system to dump a pprof profile to S3 if a request exceeds 1 GB allocations, then the memory overruns I'm trying to debug ... stop happening. Of course.
040
Brandur @brandur.org · 06/01/2025
I'm tempted to call out anyone using `_1` for an unnamed closure variable now that Ruby 3.4 brought in `it`. But also, every time I think about using `it`, I use `_1` instead because `it` is just an awful name for an unnamed closure variable. So I just shut up about it instead.
020
Brandur @brandur.org · 28/12/2024
With the holiday season comes time to slow down, and engage in deep thought and expansive contemplation. Mine today: Turkeys are so freaking weird. It's absurd.
150
Brandur @brandur.org · 19/12/2024
Fell off the raw denim wagon because they're stiff to wear and hot for Cali, but pulled a pair out the closet not worn in 6 years and the reputed build/material quality really is true. No old clothes odor, and look/feel as new as the day I bought them. Pure Blue Japan 13.5 oz.
010
Brandur @brandur.org · 09/12/2024
Reading a thunkpiece recommending stubbing the DB in tests is like entering an odd, parallel reality. Genuinely don't think anyone who has written >0 tests with stubbed DB and maintained them for >0 months could continue to think it's a good idea. Tests ~nothing. Painful upkeep.
282
Brandur @brandur.org · 09/12/2024
MacOS productivity "hack": Turn every single one of these keyboard options off. When it comes to mobile, I sort of get it (although even there they do the wrong thing 30-40% of the time). On a real keyboard? Absurd.
180
Brandur @brandur.org · 06/12/2024
Guess where the PG 17 upgrade is. I checked with @richardb.bsky.social to make sure that we hadn't inadvertently been bumped up a generation of EC2 instance because these numbers are so good they're SUSPICIOUS.
1101
Brandur @brandur.org · 03/12/2024
Introducing Heroku's exciting next generation stack: Fuchsia Fir, powered by Kubernetes.
110
Brandur @brandur.org · 26/11/2024
Love Go's stability, but can't shake the feeling that it's too conservative on new features. There are many potential improvements that'd make day to day quality of life much better. Even if you don't buy that, it'd sure be nice to have more things to be excited about in upcoming releases. 1.24:
110
Brandur @brandur.org · 05/11/2024
There are so many websites that would actually look better if they just stuck to system fonts at regular weights. Ultra light weights really appeal to young designers especially, but most eventually learn that they shouldn’t be in common use.
120
Brandur @brandur.org · 27/10/2024
This is nothing earth shattering, but a short write up on the "parallel test bundle", a Go testing convention that we've found inordinately effective for keeping subtests parallel safe, DRY, and tidy/readable. 10/10 strong recommendation. brandur.org/fragments/pa...
372
Brandur @brandur.org · 05/05/2024
Using Go's `DisallowUnknownFields` JSON decoder option in web APIs to improve DX by helping users detect typos and other spelling problems in API endpoint parameters.
100
Brandur @brandur.org · 04/05/2024
How you know you're at the right coffee place — Walk in. They ask what kind of coffee you're looking for. Well, let's start with light roast. We only carry light roast. Perfect. e.g. The Barn, Berlin. Sightglass, SF.
030