David Heinemeier Hansson

Creator of Ruby on Rails, Founder & CTO at Basecamp, NYT Best-selling author of REWORK and REMOTE and Le Mans class-winning racing driver

THIS CHAT HAPPENED ON February 12, 2016
Thank David Heinemeier Hansson on Twitter

Discussion

M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
Hey, I'm David Heinemeier Hansson. I created Basecamp with Jason Fried back in 2003 and extracted the popular web-framework Ruby on Rails from that. I continue to run those adventures. I'm also the co-author of REWORK and REMOTE. And I'm a gentleman racer who's won his class at the 24 hours of Le Mans. Feel free to ask me anything about technology, startups, business, life, happiness, or whatever!
jaequery
@jaequery · CTO, Processing.com
As I truly admire how your mind works when it comes to "simplicity" and "elegance", I really wanted to hear your opinion on the React front-end framework craze going on right now. How do you feel about it?
M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
@jaequery I like the basic philosophy a bunch: Just blow away all view state and rerender the world. Reminds me a lot about the glorious simplicity of regular request/response, before ajax, before client-side MVC. But that's about when the love affair stops for me. I'm not a fan of marrying templates, view logic, and going components turtles down. Perhaps that's just because the type of web UIs I generally work on don't need that stuff, but I also generally just have an aversion to that level of complexity. When you get into multiple nested components, with states and props, and flowing stuff back through the Flux architecture. Aye caramba! That's when I want to get off the train. Turbolinks is my preferred client-side approach. It's similar in its intent to "rerender the world" but it does so from the server-side, just wrapped in a persistent process for JS and CSS, so the speed is there (for most things). But hey, whatever floats your boat. Rails API will work great with React or any other client-side MVC framework. I'd just rather that most people interrogate whether they really need such a big honking setup. I've seen some terribly simple apps get awfully complicated by this.
jaequery
@jaequery · CTO, Processing.com
@dhh Loved your response. Thanks!
Jason Gamblen
@jasongamblen · Co-Founder, InnerSpace
My question is a practical one about starting up without the biblical "angel funding"... In the early days of 37 Signals when you were building the product and revenue was similarly immature, how did you support yourself and your team financially? If you could pass along advice to founders who don't want to take the path most travelled and build the business at the pace of your customers, how do you recommend they feed themselves?
M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
@jasongamblen 37signals got started in 1999 by three partners each putting in $10,000. Then it was a web design client-services business for the next five years until 2004 when we launched Basecamp. We continued to do web design for a year following the launch of Basecamp to pay for salaries until Basecamp was doing well enough to pay for itself. I think that's a great strategy, if you can swing it. Get something, ANYTHING, going to pay the bills. Then work on a larger vision on the side. Use customers to bootstrap.
jack rometty
@rometty_ · student
Hey! I'm a huge fan of RoR, can't wait for 5.0! :) What do you look for when deciding if you want to work with someone? This doesn't have to be Basecamp.
M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
@rometty_ I'm a sucker for competence. It's not the only thing that matters, by far, but working with someone who's just really good at what they do is invigorating. Next best thing is to have an aptitude for learning. The only form of teaching that I really enjoy is the one where I have to say things only once, or at the most a few times. People who are great listeners and eager to learn can be (almost) as rewarding to work with. So bottomline: Be good at what you do or be good at becoming good at what you do.
Hey DHH, big fan of yours. I really enjoy all your work and mindset . I would like to know what you do in a normal day?
M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
@diogomartf Depends on where I am. I'm in Spain at the moment, so my day starts around 8:30am. Get up, eat breakfast with the family, play with my 3 year-old boy for an hour or so, then take him to school. Have another hour or so hanging out with the family or doing things around the house, then work starts, currently, at around 11am. I work until around 7pm, with breaks in between to again hangout with the family, go get lunch, whatever. Then dinner, maybe a bit more work afterwards, and otherwise chilling with the wife for a few hours. Perhaps watching a show. That's it! ~8 hours of work, family time, show time, reading time. Great day :D
Nisanth Chunduru
@nisanth074
Hey @DHH, to add to Diogo's question, how do you structure your typical day? How did it change from the early days of Basecamp (when you were most likely spending a significant part of your time writing Ruby) to today? Thank you.
Mike Taylor
@sea_local · web developer
Do you look back on any decision in your work and career and wonder if you should have made a different decision at that time? If so, what was the decision?
M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
@sea_local It's funny to think about where things might have gone if instead of pursuing Basecamp I would have pursued that master's degree from Copenhagen Business School. That would have been a pretty poor life choice, probably :D. But generally I don't really care much to think about woulda-coulda-shoulda. I got to where I am from the road I took here. Very pleased with the general outcome of that.
Jure Žove
@jurezove · Programmer
Hey David! To spice this up a bit, I'd like to know how your dream garage would look like if money was no object (besides the two blue rockets that are in it right now). Also, what were the main reasons you decided to order both the Zonda and the Agera? Thanks!
M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
@jurezove I pretty much have my dream garage, even though money was an object :D. Only a couple of cars I really lust for: Aventador J. McLaren SLR Stirling Moss. Lamborghini Miura. Zonda and Agera are both expressions of the same idea: One man's life long dream fulfilled by a small team that beat the giants at their own game. They get there very differently, though. Love both to bits.
Jason Hänschell
@jasonhanschell
Hey David, big fan of your principles on software and life design. As you now have two young kids how do you see your time spent in different countries as they grow up? How do you view these coming years for their education and activities. Is homeschooling an option? My wife and I recently welcomed a child as well so we are interested.
M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
@jasonhanschell I don't believe moving around as much as we do now works once the kids have to go to school. So we're likely to settle in California for the next 15 years once school season kicks in. Then I'm sure we'll be back to roaming the world after that.
Jason Hänschell
@jasonhanschell
@dhh Thanks David!
⚡️ 
Mike Coutermarsh
@mscccc · Code @ Product Hunt
Hi @DHH 😀. When building a new feature for basecamp, what process does it go through to get from an idea to production?
M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
@mscccc It usually starts with a desire to have something. Then a quick paper or ipad sketch. Then some HTML to flush it out. Then making it real as a feature in the app. Then playing with it and revising it. Then pushing it live. The shorter the better from start to finish.
Bob Sheth
@bobsheth · marketingnotes.com
Hi @dhh - i'm new to writing software. With the help of ruby, rails and the os community I've been able to get my first commercial web app launched. I want to now give back to the community but don't know where to start. Should I write a gem? Is there a way to help with the rails core software development? Confused but want to help. Any advice would be much appreciated.
M
DHH
@dhh · Creator, Rails | Founder/CTO, Basecamp
@bobsheth Thanks Bob! It's a great feeling to give back to a community that's helped you get off the ground. I had the same feeling with Rails after building on top of Ruby, MySQL, Apache, Linux, etc. Helping out with better documentation is a great way to start. Most open source work has documentation that could need help, including Rails. Second would be to help work on fixing some of the many outstanding bugs that most successful projects have. Third, if you do have a good library or framework to extract, by all means!