David Heinemeier Hansson

Made Basecamp and HEY for the underdogs as co-owner and CTO of 37signals. Created Ruby on Rails. Wrote REWORK, It Doesn't Have to Be Crazy at Work, and REMOTE. Won at Le Mans as a racing driver. Fought the big tech monopolies as an antitrust advocate. Invested in Danish startups.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

See more posts »