Brandur (@brandur) header
Brandur (@brandur) profile picture

Engineering @ River. Ex-Heroku, Stripe, Snowflake, Stainless. Occasional writer. Themes: web APIs, Postgres, software resilience, and efficient UIs.

Austin, TX
Joined March 2009
Photo by Brandur (@brandur)Photo by Brandur (@brandur)Photo by Brandur (@brandur)Photo by Brandur (@brandur)Photo by Brandur (@brandur)Photo by Brandur (@brandur)Photo by Brandur (@brandur)Photo by Brandur (@brandur)Photo by Brandur (@brandur)Photo by Brandur (@brandur)
Soft launch of River Pro for Ruby — ✅ Private gem source up and running. ✅ Feature parity with Go. ✅ Interoperable with Go. ✅ Postgres + SQLite. We workshopped nice, compact syntax for the core features like workflows (especially compared to Go). riverqueue.com/docs/pro/gett…
2
13
568
What the hell. How come none of these guys have a legion of angry anime avatar Gruber-ites fighting them in the replies. I'm the only one that got hit? What's the deal. nitter.cf/thekitze/status/211556…
steve jobs would’ve personally tied you to a meeting room whiteboard and then shot you in the back of the head
2
1
961
The number of people who will come out of the woodwork to GO TO WAR for the honor of a $5 trillion dollar company is impressive. My only wish is that one of them had said "John Gruber sends his regards" before shiving me.
3
18
2,280
It's so dishonest that for years Apple told us that a single USB-C port on a laptop was all anyone needed (or later, 2x USB-C ports), and now puts images like this in their marketing materials. Like, I'm glad you changed your minds, but congrats, you're lying sociopaths.
283
174
44
4,848
573,781
☕ Shipped: River for Java. ☕ As with Ruby/Rust/TS, River is 100% reimplemented in the native language including core engine, migrations, and maintenance services, but fully interoperable with other Rivers. No Go required. Supports Java 21+ (2023 LTS). riverqueue.com/blog/java
5
3
34
2,145
A slightly disturbing thing I noticed while testing docs is that thanks to improvements to Java over the years, it's now roughly as concise as Ruby, with the sample line count in our examples. Closures are gorgeous. `var` just rules. And ... about half the line count as Go, lol.
1
9
465
Everybody needs to stop using reCaptcha. It's been absurd a long time. Now it's cruel and unusual. This captcha followed a successful login with high-entropy password and was followed by email OTP. @Spotify you need a security team that engages in less dogma and more security.
6
2
28
1,428
A really short piece (point form) on the Postgres subtransactions and exorcizing them from River. Written in part to remind myself why they're so prone to causing performance issues in the first place. riverqueue.com/blog/subtrans…
4
3
23
1,518
Listened to an interview with Dylan Field (@zoink, Figma CEO). Like everywhere, they've had a vast proliferation of internal LLM use, manifesting as everything from commit messages to slide decks. He proposed a simple rule that Figma uses: if you are using AI in your writing of any kind, just put at the top, 'written with AI'. This strikes me as the most reasonable requirement of all time. You're using AI. That's fine, we all are. But how about we all agree to not try to hide it. If text is LLM generated I want to know so I can skim it/not read it/have my LLM process it. Equally, if text is human written, I want to know so I give it extra attention and a high effort human reply. I'm personally reconfiguring my bots to require this (or I will try to anyway, even just a 🤖 emoji prefix is enough). It's such a good idea. I hope it's the compromise most orgs reach internally in the coming years.
17
4
2
104
12,298
🚢 Fun ship last week! Reminded me it's not only about exchanging tokens for software. There's a lot of ancillary work that goes into a finished product: buy-in, refinement, docs, marketing, changelog, etc. Prototype took ~24 hours. E2E ship ~8 days. nitter.cf/turbopuffer/status/211…
the official tpuf Rust SDK is now in beta 🦀 typed, async access to tpuf from your Rust applications github.com/turbopuffer/turbo…
2
1
33
2,088
Problem: I watched the latest episode of MobLand and now I want to go to Mallorca (hands down best show on TV BTW).
🤖 Made with AI
5
1
8
1,584
At $previousJob, we had a guy who's overarching theory for the use of Ruby was that it operator-optimized language due to its REPL: a relatively uncommon feature (not in Go, not in Rust) that was invaluable for the ad-hoc management of production systems. Combined with terse syntax, you can easily (for example) issue a reboot to ever one of a specific user's clusters: Cluster[user_id: X].each { |c| c.reboot } It just hit me: you never need a REPL anymore. A one-off LLM-generated script will be better, fast, more bug-free, safer, and even produce prettier output. Guys, I'm starting to be more than a little afraid for Ruby.
16
1
74
9,398
This is just my work code directories after 1.5 weeks doing a job where they use mainly Rust. I'm not doing anything weird. Total ~40 repos and worktrees. $ du -sh . 121G    . Looks like I'm trying Mr Boxington? Kinda crazy this is the language's out-of-the-box experience.
6
1
22
1,922
Equinox just rolled out two-factor security. In October 2026. All available MFA options: 1. SMS. Ever notice how it's often the most expensive services that are the most clownishly incompetent? Other examples: American Express. Wi-fi at 5 star hotels.
2
1
11
1,476
Growing up in Alberta, can't even explain the veneration my friends and I had for BioWare. They weren't only making good games by Canadian standards, they were making the best games by ANY standard, and founded right on our doorstep in Edmonton. Getting a job there would've been on par with being drafted into the NHL. But that was a long time ago. Their recent history has been true test in credulity — games so objectively bad that the lowliest playtester could have called out years in advance that they'd flop hard on release. The people at the top certainly would have known, but went through with anyway because proselytizing their regressive brand of political doctrine was more important than staying in business. A very hard lesson that a game studio isn't about a name or an office — it's about the people that work there and the people that run it. Take BioWare, swap out the founders, OG engineers/artists, and leads. You technically have a shell that's called "BioWare", but it's not really BioWare in any way but name. This should be a cautionary tale that every company (and country for that matter) should take to heart. There's so many shops doing the same thing (e.g. Blizzard, Disney, Nike, Pixar), but are still proximately alive because they have better legacy revenue engines than BioWare did. But even the lucky ones can't dependent on that staying true forever. nitter.cf/bioware/status/2112953…
2
20
1,848
Proof of time travel: crontab was written knowing about the eventual existence of LLMs to help debug it. Not even the most resolute sadist would be so malevolent to have written something so openly hostile to humanity for use by humans only, ergo: time travel.
2
13
903
A good quote from an R&D meeting yesterday: "The frontier models are unstoppable." This wasn't a statement about security or a black-pill/white-pill value judgement, but rather on the subject of DX/docs. The insight was that the frontier LLMs will figure out how to do anything, but burn any amount of resources on both sides to get there. Tokens on one, bandwidth / server resources on the other. Specifically in this case, the LLM was happy to to pull down a multi-metabyte JavaScript bundle and de-obfuscate it to reverse engineer pricing details when if it were available, a tiny JSON or Markdown file would've let it finish ~instantly. The key today is getting them what they need to short circuit to their objective faster. Better docs / more capable API / transparent data is a win-win.
13
1
1
44
3,484