Skip to Main Content

I'm David Heinemeier Hansson, Basecamp CTO, and This Is How I Work


The culture of Basecamp, the small company behind top-shelf project management software, is famously productive and unfrazzled. David Heinemeier Hansson, aka DHH, is the developer behind Basecamp’s eponymous flagship product. He’s also the creator of Ruby on Rails, the framework underlying sites like Hulu, Airbnb, GitHub, and early versions of Twitter. In his off hours, he’s an international race car driver. We asked him how he works.


Location: Right now, Malibu, California. But I also spend time in Marbella, Spain and Chicago.
Current gig: CTO @ Basecamp.
One word that best describes how you work: Effectively.
Current mobile device: iPhone X
Current computer: iMac 27" + MacBook 12"

First of all, tell us a little about your background and how you got to where you are today:

I got my first computer when I was 6. An Amstrad 646. But I was no child computer prodigy. I tried to learn how to program, but failed several times. Although I did end up typing in a few games from the back of magazines. But mostly, I just played other people’s games on computers.

Then as a teenager I ran a warez BBS for pirated Amiga software called Electronic Confusion. I learned all about modems, calling cards, and the fascinating scene of crackers and traders. Fond memories from having my tiny bedroom light up with US Robotics modems with some dude from Holland calling into my modem.

It was through this involvement with the Amiga scene that I befriended a bunch of programmers. They were all working in assembler or C to make demos or games, and watching them work, I convinced myself that this was not a profession for me. Pointer arithmetic and vector calculations was not my idea of fun.

Then the internet became a thing. I still liked games, so I ended up creating a number of websites for reviewing games. In high school, I started a console review mag called konsollen.dk that ended up having 10 freelance writers and we had thousands of readers. We couldn’t afford to buy all the games to review, and the distributors didn’t exactly return the calls of a 16-year-old asking for free games. But I ended up befriending a manager at a game store in Copenhagen and he let me borrow all the new games for a week at a time.

That lead to creating quake3.dk in anticipation of Quake 3. Ran that for years. And then finally I created dailyrush.dk, which dealt with both consoles and PC games. That was a real startup. Created in an incubator. No business plan. Funding. The works. This was in 2000-2001.

Working on all these projects forced me to learn PHP. Not because I wanted to become a programmer, but because I wanted new features for my websites. Then in 2001, I wrote Jason Fried of 37signals an email when he asked a PHP question on his blog. He decided to hire me rather than learn how to program.

And from there the story went to Basecamp and Ruby on Rails and here we are. Some 15 years later!

Take us through a recent workday.

It depends on where I’m based. But in Malibu, it means getting up around 7:45, then driving my oldest kid to preschool, then starting working around 9:30am.

I’m kind of a slow crank. The mornings are for dealing with inbound. All the emails, requests, PRs, chat rooms, blah, blah. Catching up, chiming in, and then, if I’m lucky, getting my own work started around noon or so.

That work varies widely. Some days it’s all about writing. Jason and I are currently writing a new book called The Calm Company. But if it’s not a book, then it’s often a new blog post. Or an idea for a talk. Or ideas for Basecamp. There’s a lot of writing in my work.

Other days it’s all about programming. That might be spiking out a new concept for Basecamp. Or it might be extracting code for inclusion in Ruby on Rails. Whatever it is, it’s a treat. I love programming.

But other days still it’s tickling the mechanics of running a company of some 56 people at Basecamp. We don’t have a lot of layers or support staff at Basecamp. There’s no CFO or COO. There are no dedicated managers. So there’s just a good amount of company stuff that keeps popping up. I try to solve what I can with as little effort as possible so I can get back to writing and programming. That usually works out for the better. Less policy scar tissue, no interest in endless meetings, no appetite for bulk.

What apps, gadgets, or tools can’t you live without?

My favorite software is all writing environments.

I helped Allan shape TextMate 1 way back in 2003, and it’s still my preferred text editor for code. You’ll have to pry it from my dead cold hands!

But I also like iA Writer. I do most of my prose writing in that. It’s beautiful, it’s simple, it’s free of distractions.

Then there’s OS X/iOS Notes. That’s where all those loose ideas for new blog posts, book essays, and talks go.

I also love photography. My favorite combination is a Leica M camera and a 50mm Summilux lens, and then processing the pictures using Adobe Lightroom and VSCO film presets. I’ve captured so many priceless memories with that combination. Especially after becoming a father. Kids are a great motivation to hone your photography craft.

Finally, I like mechanical watches. All sorts, but I have a particular weakness for vintage Daytonas. Looking at a mechanical watch that’s still ticking after 40 years is a great reminder to seek longevity. Building simpler things that last longer. Taking care of them. Making them go the distance.

What’s your workspace setup like?

Pretty sparse. My office has just a big white desk, a 27" iMac, a HiRise iPhone cradle, and a glass bottle for water. Yes, I’ve heard the bullshit about cluttered desks being the hallmark of a brilliant mind. But I like it neat. Clutter isn’t calm, and calm is how I click.

What’s your best time-saving shortcut or life hack?

Saying no. I’m always astonished by the tangled web of obligations most people manage to weave for themselves. I say no to almost everything. Then I can commit myself fully to the few things that I do truly choose to do.

I often get questions about how I’m able to juggle running Basecamp, programming Ruby on Rails, writing books, driving race cars, and bettering my photography. It’s always a slightly puzzling question, because there’s plenty of time for those things when you don’t fill your life with all sorts of other bullshit.

How do you keep track of what you have to do?

I don’t, really. I try not to have a backlog. I’m sorta obsessionally clearing out my inbox. Most emails can be answered as soon as they arrive if you just make a decision and write back briefly. Most people’s inbox are overflowing because they waver, so they defer, which just makes the anxiety ever greater. Just make the call, which in my case is mostly “no,” then move on.

The only tracking I generally do is of things that are outside of my control. Like, we just finished building a house. I had to have a system for keeping track of all the vendors, punch lists, and such. Basecamp fit perfectly for that, thankfully!

How do you recharge? What do you do when you want to forget about work?

I like work. Work is mostly programming and writing. Two of my favorite things to do in life. So I don’t need to “forget” about work.

But I do need to recharge. A great day’s work is 4–5 really focused hours that lead to major progress on a project or topic. Then that’s it. I’ve found squeezing the lemon of every last drop is a sour way to live.

So I race cars around the world in the World Endurance Championship. Love the feeling of total focus and flow I can tap into when behind the wheel. The exhilaration of speed, g-forces, and that tinge of danger. That’ll wipe the mind right clean!

I’m also a passionate photographer. It’s so satisfying to capture just that perfect moment. Just the right composition in the right light. Getting the colors just so. The expressions.

And finally, I love to travel with the family. Or well, maybe not the actual traveling part—I don’t know how many people love to drag kids onto airplanes—but the experiencing part. Discovering the world with my wife and kids is a real treat.

But hey, sometimes it’s also just spacing out in front of a show or Instagram.

What’s your favorite side project?

Does Ruby on Rails qualify as a side project? I suppose it does. So that would be it!

What are you currently reading, or what’s something you’d recommend?

Working my way through Debt: The First 5,000 Years. Fascinating history of money, debt, barter, slavery, morality, and all the connections between them.

What’s the best advice you’ve ever received?

Amor Fati.

This interview has been lightly edited.

The How I Work series asks heroes, experts, and flat-out productive people to share their shortcuts, workspaces, routines, and more. Have someone you want to see featured, or questions you think we should ask? Email Nick.