CTO at Founder Catalyst (@FounderLtd); create the legal paperwork for your funding round, and manage investor engagement. Co-founder (former CTO) @CivoCloud.

Joined January 2009
141 Photos and videos
While trying out the new #rails query command, my Claude decided that `User.delete_all` against production would be a good test if it's really a read-only connection. Wow! Fortunately a lucky foreign key stopped it in its tracks, but that could have been a more stressful morning!
2
1
65
And regardless of this dangerous issue, many thanks to @lewispb for the original PR github.com/rails/rails/pull/… - this will be an amazing feature going forward!
1
34
Built this for our use case at work. Server software/config changes in a simple Ruby DSL in your app, like rails migrations. Pairs really well with Kamal. @dhh do 37Signals do anything like this? Or use one of the big boys (Chef, Ansible, etc) github.com/foundercatalyst/s…
53
Feels like @CircleCI needs an update to its dependency graph for steps display. My vibe coded local CI system seems much clearer on what depends on what.
43
This is a really great write-up / blog post / whatever it's called on the use of Rails in AI agents. Seriously, full of amazing tips, a lot of which I've already learned or figured out, but some I hadn't AND would have been great to have a six months ago! robbyonrails.com/claude-code…
1
1
54
I wasn't following @robbyrussell... I am now!!
1
17
Just have to say, I love this! Been using it since I saw this tweet and it's really great. Can't see me going back to the standard one ever again.
published my claude code statusline
51
Hey @dhh how does 37 Signals handle the infrastructure changes/configuration underneath your Kamal deployments? I extracted github.com/foundercatalyst/s… from our app, others may find it useful, but had a sinking feeling you guys already solved this and mine won't be needed at all.
49
After having seen @dhh's Hey test suite performance and recently @ryanrhughes's article on his journey, I decided to do the same. Drop factories for fixtures, RSpec for Minitest. All done by Claude (with some hand-holding). 1/2
1
2
82
Full suite from 26 minutes to 4.5 minutes (some slow system tests, I know). Without system tests from 7.5 minutes to 1.5 minutes. Feels like I've been running "overmind s -m guard=0" that I forgot what it's like to have tests running all the time! 🎉 Honestly, give it a try!
3
2
67
Now I just need to get rid of my M1 Max and get a @FrameworkPuter running @dhh's Omarchy and it'll get even faster. Hoping for the budget for that later in the year! I'll share updated results when I eventually get it...
62
Andy Jeffries retweeted
Launching soon - SpoolTags.app 3D filament spool management/tracking for iOS, iPadOS and macOS (free for up to 10 active spools, one-off lifetime unlock for above of £5.99/$5.99)
1
23
When are @sky going to fix Stream going in to 5 frames per second on UHD football coverage every few minutes? It’s not my Internet (100Mbit wired Ethernet to a 2Gb up/down fibre connection). It’s terrible!
3
263
Why does @redislabs (@RedisLabsInc ) make it so hard to unsubscribe? I’m a former customer through Heroku and still get their emails. No unsubscribe link only instructions. Replying to email says login to our portal, sending to info@, same response. I CAN’T! REMOVE MY EMAIL!!!
62
Andy Jeffries retweeted
28 Nov 2025
Suppose that once a week, ten men go out for beer and the bill for all ten comes to £100. If they paid their bill the way we pay our taxes, it would go something like this: The first four men (the poorest) would pay nothing. The fifth would pay £1. The sixth would pay £3. The seventh would pay £7. The eighth would pay £12. The ninth would pay £18. And the tenth man (the richest) would pay £59.  So, that’s what they decided to do. The ten men drank in the bar every week and seemed quite happy with the arrangement until, one day, the owner caused them a little problem. “Since you are all such good customers,” he said, “I’m going to reduce the cost of your weekly beer by £20.” Drinks for the ten men would now cost just £80. The group still wanted to pay their bill the way we pay our taxes. So the first four men were unaffected. They would still drink for free but what about the other six men? The paying customers? How could they divide the £20 windfall so that everyone would get his fair share? They realized that £20 divided by six is £3.33, but if they subtracted that from everybody’s share then not only would the first four men still be drinking for free but the fifth and sixth man would each end up being paid to drink his beer.  So, the bar owner suggested that it would be fairer to reduce each man’s bill by a higher percentage. They decided to follow the principle of the tax system they had been using and he proceeded to work out the amounts he suggested that each should now pay. And so, the fifth man, like the first four, now paid nothing (a 100% saving). The sixth man now paid £2 instead of £3 (a 33% saving). The seventh man now paid £5 instead of £7 (a 28% saving). The eighth man now paid £9 instead of £12 (a 25% saving). The ninth man now paid £14 instead of £18 (a 22% saving). And the tenth man now paid £49 instead of £59 (a 16% saving).  Each of the last six was better off than before with the first four continuing to drink for free.  But, once outside the bar, the men began to compare their savings. “I only got £1 out of the £20 saving,” declared the sixth man. He pointed to the tenth man, “but he got £10!“  “Yeah, that’s right,” exclaimed the fifth man. “I only saved a £1 too. It’s unfair that he got ten times more benefit than me!”  “That’s true!” shouted the seventh man. “Why should he get £10 back, when I only got £2? The wealthy get all the breaks!”  “Wait a minute,” yelled the first four men in unison, “we didn’t get anything at all. This new tax system exploits the poor!” The nine men surrounded the tenth and beat him up.  The next week the tenth man didn’t show up for drinks, so the nine sat down and had their beers without him. But when it came time to pay the bill, they discovered something important – they didn’t have enough money between all of them to pay for even half of the bill!  And that’s how it works. Tax them too much, attack them for being wealthy and they just might not show up anymore. In fact, they might start drinking overseas, where the atmosphere is somewhat friendlier.  For those who understand, no explanation is needed. For those who do not understand, no explanation is possible.
918
7,490
36,657
2,950,952