January 6, 2022
It's harder hiring managers
We just opened a position for a Director of Engineering to help us manage our rapidly expanding technical teams at Basecamp. We already have more programmers on staff than we've ever had, and we intend to double that crew within the next 12-18 months. We're going all-in on becoming a multi-product business again, and that means hiring ...
Read more
Read more
January 4, 2022
It could be worse
I grew up with persistent reminders of how any bad thing that happened could easily have been worse. Oh, you scraped your knee? It could be worse, you could have broken your leg! Oh, you broke your leg? It could be worse, you could have cracked your skull! Oh, you cracked your skull? It could be worse, you could have died! It wasn't ju...
Read more
Read more
January 3, 2022
Celebrating the silence of high uptimes
It was a very loud year, 2021. Which makes the satisfying silence of technical incidents at Basecamp all the more of a celebration. In the year that went, every single application we offer had at least 99.99% uptime! This is through repeated AWS outages, zero-day security alerts, and the drama of the world in those twelve months. But i...
Read more
Read more
January 1, 2022
Should you vaccinate your kids?
On the face of it, this seems like a basic medical question. One where reasonable people can weigh the same trade offs, yet arrive at different conclusions. And, as foreign as that might seem to Americans at the moment, that's largely how this question has been tackled in Denmark in the public forum so far. There are Danish pediatricia...
Read more
Read more
December 22, 2021
How we manage programming projects in Basecamp
That we manage all our programming projects in Basecamp is perhaps an obvious admission since its our own product. But it's less obvious to some how that's possible, given the apparent lack of affordances to tie todos, messages, or check-ins together with code commits automatically. Some teams who are Basecamp curious can't seem get ov...
Read more
Read more
December 21, 2021
Email is the antidote
It's easy to get down on the internet as a medium for reasoned debate. Every discussion on social media that touch controversial topics seems to descent into the depths of hell in less than sixty seconds. But social media is not the internet. It's merely one distorted expression of it. There are other ways to connect, to reason, to lea...
Read more
Read more
December 21, 2021
Are we past peak "woke"?
Could John McWhorter have gone on MSNBC or The View or PBS or NPR a year ago to talk about a new book called Woke Racism? Would a book with a title like that even have been welcome at that moment in such chambers? I doubt it. But now it is. McWhorter has not only written an important book that's rightfully garnering broad attention, he...
Read more
Read more
December 17, 2021
That shipping feeling
"Real artists ship" was one of Steve Jobs' mottos. You can clearly see that ethos still in present-day Apple. There are no far-future tech demos from things in the R&D lab at Apple keynotes. While their car project is the perhaps one of the worst kept secrets in company history, they aren't deliberately trying to flaunt it. Because a t...
Read more
Read more
December 16, 2021
The One Person Framework
Seven is the version of Rails I've been longing for. The one where all the cards are on the table. No more tricks up our sleeves. The culmination of years of progress on five different fronts at once. The backend gets some really nice upgrades, especially with the encryption work that we did for HEY, so your data can be encrypted while...
Read more
Read more
December 15, 2021
The art of not having a take
The most liberating aspect for me of writing emails rather than tweets is the natural limit on topics I might be tempted to have a take on. When I was primarily writing tweets, I could easily involve myself in a dozen topics in a day. HERE'S A TAKE, THERE'S A TAKE, TAKE THAT! With email, it's a sliver of that. But it goes even deeper t...
Read more
Read more
December 13, 2021
Heaven is hazy
In trying to understand the ideology of The Elect, as John McWorter calls them, I've found a historical dive into the late 60s and early 70s tremendously productive. The echoes of history provide a strange comfort: We are not the first people to be struggling with this. I don't just mean that in a general sense. That other peoples at o...
Read more
Read more
December 13, 2021
I won't let you pay me for my open source
In Debt: The First 5,000 Years, anthropologist David Graeber explores the fascinating history of debt and economies. It starts out by debunking the common myth that prior to coinage, everyone were trapped in this inefficient mode of barter. If you had a chicken to give and wanted sugar from Gandalf, but Gandalf was a vegetarian, you ha...
Read more
Read more
December 10, 2021
Everything popular is problematic
I can completely see why Joe Rogan's podcast has become so popular. I've listened to maybe a dozen shows, and the way he lets his guests talk, at length, feels like a throwback. It doesn't have the intellectualism of a Bryan Magee or the inquisitiveness of a William Buckley, but it does have the spirit of letting people – with whom he,...
Read more
Read more
December 7, 2021
The time is right for Hotwire
It's not exactly been a big secret that I've harbored a fair skepticism towards single-page applications over the years. Not because of some innate animosity with JavaScript, at least not the modern variety, which we first tasted in the form of CoffeeScript, then as transpiled ES Next. But because writing and updating HTML like that ne...
Read more
Read more
December 2, 2021
Worrying yourself into excess
When we were developing this HEY World system in the beginning of the year, we ended up spending a very considerable amount of time worrying about and discussing all the ways it might be abused. This is the internet after all! Full of savage trolls! Surely we must fortify lest we be overrun? But the trolls never came. Since we launched...
Read more
Read more
December 1, 2021
Books that bust bubbles
It's a disorientating time in America. So many societal seams are unraveling simultaneously. So few ideas for how to stitch those seams back together find common cause. No wonder despair and anger comes so easy to so many right now. These dark emotions are then propelled by the particle accelerator that is Twitter into super-charged ta...
Read more
Read more
November 25, 2021
Programmers should stop celebrating incompetence
In the valiant effort to combat imposter syndrome and gatekeeping, the programming world has taken a bad turn down a blind alley by celebrating incompetence. You don't have to reduce an entire profession to a clueless gang of copy-pasta pirates to make new recruits feel welcome. It undermines the aspiration to improve. It reduces the w...
Read more
Read more
November 22, 2021
Authoritarian hippie parents
There was a time when liberal ideals of self-determination, self-regulation, and free-range independence naturally extended to parenting as well. Such ideals were seen in stark opposition to conservative parenting based on obedience, discipline, and reverence. Today it seems like these roles are often reversed. The strictest parents I ...
Read more
Read more
November 17, 2021
It must be worth it even if it doesn't work
The way to work without regrets is to pursue projects that'll have been worth your time even if they don't pan out. Projects that'll tickle your curiosity, flex your competency, and teach you something new regardless of where they ultimately end up. Projects that leave you better off, as a person, despite not being a commercial or crit...
Read more
Read more
October 6, 2021
How do you know what people have been working on?
Losing the sense of being in the know about what's going on at the company is one of the most common concerns I hear regarding working remotely. Both at the managerial level and between coworkers. There's a real fear that staying remote for too long will eventually lead to nobody really knowing what's going on, and thus the organizatio...
Read more
Read more
September 24, 2021
Stimulus 3 + Turbo 7 = Hotwire 1.0
For so long, it felt like I could only tell half the story of how we make software for the web at Basecamp. Too many of the chapters about our front-end approach were missing key pages. Sure, we had some of it out there. Turbolinks, for example, hark back to 2012, when I was inspired by Chris Wanstrath's ideas in pjax, and took them fu...
Read more
Read more
September 20, 2021
Conceptual compression is lossy (and loss hurts)
To make things simpler, you have to take something away. That means giving up something of real value to get something else of greater value still. You can't counter complexity without being willing to sacrifice. That is the nature of conceptual compression. It's why it's so hard to do. People become attached to the choices and advanta...
Read more
Read more
September 16, 2021
Your likes, hearts, and flattering comments are bad for my brain
I’ve been publishing controversial thoughts, essays, books and software for half my life. It has endowed me with a thick skin to repel the haters, and kept me going whatever they said. But after close to two decades of having my work often judged favorably, I’m still no better at dealing with gestures of adoration. In fact, I think it’...
Read more
Read more
September 14, 2021
Apple's forced IAP is either dead, a joke, or illegal
I can understand Epic's disappointment with the verdict in their trial against Apple. They sought to have the iPhone recognized as the pocket computer it is. One where consumers should have the right to install the applications of their choice, like with any other general-purpose computer, and where developers should be free from extor...
Read more
Read more
September 6, 2021
Rails 7 will have three great answers to JavaScript in 2021+
Rails has been unapologetically full stack since the beginning. We've continuously sought to include ever-more default answers to all the major infrastructure questions posed by modern web development. From talking to a database, to sending and receiving emails, to connecting web sockets, to rendering HTML, to integrating with JavaScri...
Read more
Read more
September 3, 2021
No one wants to be a code monkey
So many software companies these days are stuck on a ticket treadmill, working a never-ending backlog. When those companies look at Basecamp, they think "this can't work for software development?!", because it's not a ticket feeder. Heads explode when I tell them we do everything in Basecamp. That's the challenge of selling software ou...
Read more
Read more
September 2, 2021
Japan bends Apple another inch on the App Store
Is there a country anywhere in the world without an open investigation into Apple's monopoly abuses with the App Store? It seems like we can barely go a month, let alone a week, between announcements of new inquiries, new laws, new settlements, new scrutiny. Change comes slowly, then all at once, eh? Now it's Japan's turn. The Japanese...
Read more
Read more
August 31, 2021
South Korea just killed the 30% app-store cut
Apple and Google knew from the start of this fight that they couldn't afford to lose even once. That's why they pulled out all the stops stops to intimidate the Senate in North Dakota. That's why they spared no expense on the backroom deal to kill the Arizona bill. But now they've finally met a legislature they couldn't bully or buy: T...
Read more
Read more
August 27, 2021
Apple's new settlement is a corrupt joke
There's this iconic scene in the movie Fight Club where Edward Norton's character is sitting together with his boss, and they're negotiating some enterprise software sales deal on a dreary Monday morning. The boss is being dazzled with the usual, trite spiel that enterprise sales people lay on middle managers, like "waste is a thief". ...
Read more
Read more
August 12, 2021
Modern web apps without JavaScript bundling or transpiling
I didn't much care for vanilla JavaScript prior to ES6. Through all of the 2000s, I chased different approaches to avoid writing too much of it. First there was RJS (Ruby-to-JavaScript). Then there was CoffeeScript. Both transpiling approaches that turned more enjoyable-to-write source code into the kind of JavaScript that browsers wou...
Read more
Read more
See more posts »