David Heinemeier Hansson, also known by his initials DHH, is a Danish programmer, writer, entrepreneur, and racing driver. He is the creator of Ruby on Rails, a web framework written in Ruby. He also created Omarchy, a pre-configured version of Arch Linux catered towards developers. He is also a partner and chief technology officer at the web-based software development firm 37signals.

Hansson co-wrote Agile Web Development with Rails with Dave Thomas in 2005 as part of The Facets of Ruby Series. He also co-wrote Getting Real: The Smarter, Faster Easier Way to build a Web Application, Rework, Remote: Office Not Required, and It Doesn't Have to Be Crazy at Work with Jason Fried.

Programming career

Hansson learned PHP in high school while creating gaming review sites. Although he initially did not intend to become a programmer, his interest in expanding his sites' features led him to pursue programming professionally. After attracting the attention of Jason Fried by offering him help with PHP coding, Hansson was hired by Fried to build a web-based project management tool, which ultimately became 37signals' Basecamp software as a service product. To aid the development process, Hansson used the then-relatively obscure Ruby programming language to develop a custom web framework. He released the framework separately from the project management tool in 2004 as the open source project Ruby on Rails. In 2005, Hansson was recognized by Google and O'Reilly with the "Hacker of the Year" award for his creation of Ruby on Rails. After graduating from the Copenhagen Business School and receiving his bachelor's degree in Computer Science and Business Administration, Hansson moved from Denmark to Chicago, Illinois, U.S. in November 2005.

Racing career

Heinemeier Hansson lists photography and race car driving amongst his many hobbies. He took part in the 2012 24 Hours of Le Mans driving for OAK Racing. He also drove a Morgan-Nissan P2 car for Conquest Racing in the American Le Mans Series (ALMS), winning two races in the season. Heinemeier Hansson joined OAK Racing full-time in 2013, taking five second-place finishes to finish second in the Trophy for LMP2 Drivers. During the 2017 24 Hours of Le Mans post-race technical checks, certain irregularities were detected on the Vaillante Rebellion team's No. 13 Oreca 07-Gibson, resulting in the car's disqualification.

In July 2010, it was revealed that Heinemeier Hansson was the person that had commissioned the one-off Pagani Zonda HH supercar. He also commissioned the Koenigsegg Agera HH, which was sold in 2022 to Houston Crosta, a YouTube video creator in Las Vegas. It has now been sold to car spotting YouTuber, "TheStradman". Heinemeier Hansson also purchased an Aston Martin Valkyrie.

24 Hours of Le Mans results

thumb|right|Heinemeier Hansson's No. 22 car at the 2025 24 Hours of Le Mans

{| class="wikitable" style="text-align:center; font-size:90%"

|-

! Year

! Team

! Co-Drivers

! Car

! Class

! Laps

!

!

|-

!

|align="left"| OAK Racing

|align="left"| Bas Leinders<br> Maxime Martin

|align="left"| Morgan LMP2-Nissan

| LMP2

| 341

| 14th

| 7th

|-

!

|align="left"| OAK Racing

|align="left"| Olivier Pla<br> Alex Brundle

|align="left"| Morgan LMP2-Nissan

| LMP2

| 328

| 8th

| style="background:#dfdfdf;"| 2nd

|-

!

|align="left"| Aston Martin Racing

|align="left"| Kristian Poulsen<br> Nicki Thiim

|align="left"nowrap| Aston Martin Vantage GTE

| GTE<br>Am

| 334

| 17th

| style="background:#ffffbf;"| 1st

|-

!

|align="left" nowrap| Extreme Speed Motorsports

|align="left"| Scott Sharp<br> Ryan Dalziel

|align="left"| Ligier JS P2-Honda

| LMP2

| 329

| 28th

| 10th

|-

!

|align="left"| Abu Dhabi-Proton Racing

|align="left" nowrap| Khaled Al Qubaisi<br> Patrick Long

|align="left"| Porsche 911 RSR

| GTE<br>Am

| 330

| 28th

|style="background:#ffdf9f;"| 3rd

|-

!

|align="left"| Vaillante Rebellion

|align="left"| Nelson Piquet Jr.<br> Mathias Beche

|align="left"| Oreca 07-Gibson

| LMP2

| 364

| style="background:#000000; color:white"| DSQ

| style="background:#000000; color:white"| DSQ

|-

!

|align="left"| Jackie Chan DC Racing

|align="left"| Ricky Taylor<br> Côme Ledogar

|align="left"| Ligier JS P217-Gibson

| LMP2

| 195

| DNF

| DNF

|-

!

|align="left"| Jackie Chan DC Racing

|align="left"| Ricky Taylor<br> Jordan King

|align="left"| Oreca 07-Gibson

| LMP2

| 199

| DNF

| DNF

|-

!

|align="left"| Inter Europol Competition

|align="left"| Pietro Fittipaldi<br> Fabio Scherer

|align="left"| Oreca 07-Gibson

| LMP2

| 364

| 18th

| 14th

|-

!

|align="left"| Jota

|align="left"| Pietro Fittipaldi<br /> Oliver Rasmussen

| align="left"| Oreca 07-Gibson

| LMP2

| 316

| 24th

| 13th

|-

!

|align="left"| Nielsen Racing

|align="left"| Fabio Scherer<br /> Kyffin Simpson

|align="left"| Oreca 07-Gibson

| LMP2

| 291

| 25th

| 11th

|-

!

| align="left" | United Autosports

| align="left" | Pietro Fittipaldi<br /> Renger van der Zande

| align="left" | Oreca 07-Gibson

| LMP2

| 364

| 24th

| 7th

|-

! colspan="8" |

|}

Complete FIA World Endurance Championship results

{| class="wikitable" style="text-align:center; font-size:85%"

|-

! Year

! Entrant

! Class

! Car

! Engine

! 1

! 2

! 3

! 4

! 5

! 6

! 7

! 8

! 9

! Rank

! Points

|-

| 2013

!nowrap| OAK Racing

! LMP2

!nowrap| Morgan LMP2

!nowrap| Nissan VK45DE 4.5 L V8

| style="background:#dfdfdf;"| SIL<br/>

| style="background:#dfdfdf;"| SPA<br/>

| style="background:#dfdfdf;"| LMS<br/>

| style="background:#dfffdf;"| SÃO<br/>

| style="background:#dfffdf;"| COA<br/>

| style="background:#ffdf9f;"| FUJ<br/>

| style="background:#dfdfdf;"| SHA<br/>

| style="background:#dfdfdf;"| BHR<br/>

|

! style="background:#dfdfdf;"| 2nd

! style="background:#dfdfdf;"| 132.5

|-

| 2014

!nowrap|Aston Martin Racing

! LMGTE<br>Am

!nowrap| Aston Martin Vantage V8 GTE

!nowrap| Aston Martin 4.5 L V8

| style="background:#FFFFBF;"| SIL<br/>

| style="background:#dfdfdf;"| SPA<br/>

| style="background:#FFFFBF;"| LMS<br/>

| style="background:#dfdfdf;"| COA<br/>

| style="background:#FFFFBF;"| FUJ<br/>

| style="background:#dfdfdf;"| SHA<br/>

| style="background:#FFFFBF;"| BHR<br/>

| style="background:#dfdfdf;"| SÃO<br/>

|

! style="background:#FFFFBF;"| 1st

! style="background:#FFFFBF;"| 198

|-

| 2015

!nowrap| Extreme Speed Motorsports

! LMP2

!nowrap| HPD ARX-03b<br>Ligier JS P2

!nowrap| Honda HR28TT 2.8 L Turbo V6

| SIL

| style="background:#DFFFDF;"| SPA<br/>

| style="background:#DFFFDF;"| LMS<br/>

| style="background:#DFFFDF;"| NÜR<br/>

| style="background:#DFFFDF;"| COA<br/>

| style="background:#DFFFDF;"| FUJ<br/>

| style="background:#EFCFFF;"| SHA<br/>

| style="background:#DFFFDF;"| BHR<br/>

|

! 7th

! 62

|-

| 2016

!nowrap| Abu Dhabi-Proton Racing

! LMGTE<br>Am

!nowrap| Porsche 911 RSR

!nowrap| Porsche 4.0&nbsp;L Flat-6

|style="background:#DFFFDF;"| SIL<br />

|style="background:#DFFFDF;"| SPA<br />

|style="background:#dfdfdf;"| LMS<br />

|style="background:#DFFFDF;"| NÜR<br />

|style="background:#FFFFBF;"| MEX<br />

|style="background:#DFFFDF;"| COA<br />

|style="background:#DFFFDF;"| FUJ<br />

|style="background:#DFFFDF;"| SHA<br />

|style="background:#FFFFBF;"| BHR<br/>

!style="background:#dfdfdf;"| 2nd

!style="background:#dfdfdf;"| 151

|-

| 2017

!nowrap| Vaillante Rebellion

! LMP2

!nowrap| Oreca 07

!nowrap| Gibson GK-428 4.2 litre V8

|style="background:#DFFFDF;"| SIL<br />

|style="background:#DFFFDF;"| SPA<br />

|style="background:#000000; color:white| <span style="color:white;">LMS</span><br />

|style="background:#DFFFDF;"| NÜR<br />

|style="background:#DFFFDF;"| MEX<br />

|style="background:#dfdfdf;"| COA<br />

|style="background:#000000; color:white"| <span style="color:white;">FUJ</span><br />

|style="background:#ffdf9f;"| SHA<br />

|style="background:#ffdf9f;"| BHR<br />

! 8th

! 85

|-

|nowrap| 2018–19

!nowrap| Jackie Chan DC Racing

! LMP2

!nowrap| Oreca 07

!nowrap| Gibson GK428 4.2 L V8

| SPA

| LMS

| SIL

| FUJ

| SHA

|style="background:#FFFFBF;"| SEB<br />

|style="background:#DFFFDF;"| SPA<br />

|style="background:#EFCFFF;"| LMS<br />

|

! 11th

! 40

|-

|nowrap| 2019-20

!nowrap| Team Project 1

!nowrap| LMGTE AM

!nowrap| Porsche 911 RSR

!nowrap| Porsche 4.0L Flat 6

| SIL

| style="background:#DFFFDF;"| FUJ<br />

| style="background:#DFFFDF;"| SHA<br />

| style="background:#DFFFDF;"| BHR<br />

| COA

| SPA

| LMS

| BHR

|

! 23rd

! 20

|-

| 2022

!nowrap| Inter Europol Competition

! LMP2

!nowrap| Oreca 07

!nowrap| Gibson GK428 4.2 L V8

| SEB

| SPA

|style="background:#CFCFFF;"| LMS<br />

|style="background:#;"| MNZ<br />

|style="background:#;"| FUJ<br />

|style="background:#;"| BHR<br />

| colspan=3|

! NC†

! 0

|-

| 2023

!nowrap| Jota

! LMP2

!nowrap| Oreca 07

!nowrap| Gibson GK428 4.2 L V8

|style="background:#DFFFDF;"| SEB<br />

|style="background:#DFFFDF;"| PRT<br />

|style="background:#DFFFDF;"| SPA<br />

|style="background:#DFFFDF;"| LMS<br />

|style="background:#FFFFBF;"| MNZ<br />

|style="background:#DFFFDF;"| FUJ<br />

|style="background:#FFDF9F;"| BHR<br />

|

|

! 6th

! 84

|-

! colspan="16" |

|}

<sup>†</sup> As Heinemeier Hansson was a guest driver, he was ineligible for points.

Complete European Le Mans Series results

(Races in bold indicate pole position; results in italics indicate fastest lap)

{| class="wikitable" style="text-align:center; font-size:85%"

! Year

! Entrant

! Class

! Chassis

! Engine

! 1

! 2

! 3

! 4

! 5

! 6

! Rank

! Points

|-

| 2011

!nowrap| Lotus Jetalliance

!nowrap| GTE Pro

!nowrap| Lotus Evora GTE

!nowrap| Toyota-Cosworth 4.0&nbsp;L V6

| CAS

| SPA

| IMO

|style="background:#CFCFFF;"| SIL<br>

| EST

|

! NC

! 0

|-

| 2013

!nowrap| Jota Sport

! LMP2

!nowrap| Zytek Z11SN

!nowrap| Nissan VK45DE 4.5 L V8

| SIL

|style="background:#DFFFDF;"| IMO<br>

| RBR

| HUN

| LEC

|

! 17th

! 10

|-

| 2019

!nowrap| Team Project 1

! LMGTE

!nowrap| Porsche 911 RSR

!nowrap| Porsche 4.0&nbsp;L Flat-6

| LEC

| MNZ

|style="background:#DFFFDF;"| CAT<br>

| SIL

| SPA

| ALG

! 17th

! 10

|-

| 2022

!nowrap| Inter Europol Competition

! LMP2

!nowrap| Oreca 07

!nowrap| Gibson GK428 4.2 L V8

|style="background:#CFCFFF;"| LEC<br>

|style="background:#DFFFDF;"| IMO<br>

|style="background:#CFCFFF;"| MNZ<br>

|style="background:#CFCFFF;"| CAT<br>

|style="background:#DFDFDF;"| SPA<br>

|style="background:#DFFFDF;"| ALG<br>

! 10th

! 32

|-

| 2024

!nowrap| Nielsen Racing

! LMP2

!nowrap| Oreca 07

!nowrap| Gibson GK428 4.2 L V8

|style="background:#CFCFFF;"| CAT<br>

|style="background:#CFCFFF;"| LEC<br>

|style="background:#CFCFFF;"| IMO<br>

|style="background:#CFCFFF;"| SPA<br>

|style="background:#;"| MUG

|style="background:#;"| ALG

! 24th

! 0

|-

! colspan="13" |