Earth rising over the lunar horizon, photographed from Apollo 11

There was no choice but to be pioneers. No time to be beginners.

August 17, 1936 – September 30, 2026

Margaret Hamilton

Black-and-white portrait of Margaret Hamilton in 1995, hair down, against a dark background

Margaret Hamilton, 2009

  1. 1936

    Born in Paoli, Indiana.

  2. 1958

    Graduates in mathematics.

  3. 1959

    Joins MIT to program weather prediction software for Edward Lorenz, of butterfly effect fame.

  4. 1961

    At SAGE, the air defense system, she gets the program nobody could make work, commented in Greek and Latin. She makes it work.

  5. 1965

    The first programmer hired for the Apollo project.

  6. 1968

    Leads the team programming the command module.

Margaret Hamilton, smiling, lying in the seat of the Apollo command module simulator, one hand on the switch panel

At MIT, Margaret tested the software in the command module simulator.

Sometimes she brought her young daughter, Lauren, to the lab.

Playing, Lauren launched P01, the prelaunch program, in the middle of a simulated flight. Everything crashed.

Margaret wanted to protect the software against that mistake. She was overruled: astronauts were trained never to make it.

December 1968. Apollo 8, on its way to the Moon. Jim Lovell launches P01 by mistake. The navigation data is wiped.

It was recovered from the ground. And her protection went into the software.Today we call it defensive programming.

Margaret Hamilton in 1969, smiling, next to a stack of printed code listings almost as tall as she is

Before GitHub, code was printed.

MIT, 1969.

These are the listings of the lunar module and command module flight software. Written by the teams she led.

Printed on fanfold paper and stacked, almost as tall as she was.

A black and white LEGO minifigure of Margaret Hamilton next to a tower of LEGO books and a blackboard, recreating the 1969 photo

In 2017, this photo became a LEGO figure.

Model and photo: Maia Weinstock, creator of the Women of NASA set
The Apollo 11 Saturn V rocket lifting off in flames
The lunar module Eagle, gold with its legs deployed, in orbit against the black of space
Mission Control in Houston, with consoles and screens, during Apollo 11

July 16, 1969. Apollo 11 lifts off.

Four days later, Eagle descends toward the Moon.

102:38:26Program alarm.Neil Armstrong
102:38:30It’s a 1202.Neil Armstrong

The computer was being given more work than it could handle.

It didn’t crash. Margaret’s software knew what mattered: it dropped the less important work and kept guiding the descent.

102:38:53We’re Go on that alarm.Charlie Duke, from Houston. They trusted the software.

A 16 mm camera filmed it all from Buzz Aldrin’s window.

102:45:40Contact light.Buzz Aldrin
102:45:58The Eagle has landed.Neil Armstrong
A core rope memory module from the Apollo computer: hundreds of ferrite cores threaded with copper wire
The Apollo Guidance Computer, a closed metal case, next to its DSKY keyboard

Software wasn’t installed.

It was woven.

A wire through a core is a 1. A wire around it, a 0.

This wire spells 1202, the alarm code, in binary.

It was woven by hand, mostly by women, at a Raytheon factory.

Once woven, it couldn’t be changed. It had to be right the first time.

The Apollo 11 code is on GitHub. And it has a sense of humor.

LUMINARY 099THE_LUNAR_LANDING.agc

239P63SPOT3 CA BIT6 # IS THE LR ANTENNA IN POSITION 1 YET240 EXTEND241 RAND CHAN33242 EXTEND243 BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1244 245 CAF CODE500 # ASTRONAUT: PLEASE CRANK THE246 TC BANKCALL # SILLY THING AROUND247 CADR GOPERF1248 TCF GOTOPOOH # TERMINATE249 TCF P63SPOT3 # PROCEED SEE IF HE'S LYING250 251P63SPOT4 TC BANKCALL # ENTER INITIALIZE LANDING RADAR252 CADR SETPOS1253 254 TC POSTJUMP # OFF TO SEE THE WIZARD...255 CADR BURNBABY

LUMINARY 099BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc

45# BURN, BABY, BURN -- MASTER IGNITION ROUTINE46 47 BANK 3648 SETLOC P40S49 BANK50 EBANK= WHICH51 COUNT* $$/P4064# THE MASTER IGNITION ROUTINE WAS CONCEIVED AND EXECUTED, AND (NOTA BENE) IS MAINTAINED BY ADLER AND EYLES.65#66# HONI SOIT QUI MAL Y PENSE

LUMINARY 099LUNAR_LANDING_GUIDANCE_EQUATIONS.agc

174VRTSTART TS WCHVERT176 CAF TWO # WCHPHASE = 2 ---> VERTICAL: P65,P66,P67177 TS WCHPHOLD178 TS WCHPHASE179 TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE180 CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE181 TC DOWNFLAG # PERMIT X-AXIS OVERRIDE

LUMINARY 099PINBALL_GAME_BUTTONS_AND_LIGHTS.agc

216# THE FOLLOWING QUOTATION IS PROVIDED THROUGH THE COURTESY OF THE AUTHORS.217#218# ::IT WILL BE PROVED TO THY FACE THAT THOU HAST MEN ABOUT THEE THAT219# USUALLY TALK OF A NOUN AND A VERB, AND SUCH ABOMINABLE WORDS AS NO221# CHRISTIAN EAR CAN ENDURE TO HEAR.::222# HENRY 6, ACT 2, SCENE 4

LUMINARY 099BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc

904P40AUTO TC MAKECADR # HELLO THERE.905 TS TEMPR60 # FOR GENERALIZED RETURN TO OTHER BANKS.906P40A/P TC BANKCALL # SUBROUTINE TO CHECK PGNCS CONTROL924GOBACK CA TEMPR60925 TC BANKJUMP # GOODBYE. COME AGAIN SOON.
  1. If the landing radar antenna isn’t in position, the computer asks the astronaut to “crank the silly thing around”.

    See it on GitHub
  2. Then it checks again. In case he’s lying.

    See it on GitHub
  3. If all is well, it’s “off to see the wizard”: it jumps to the routine that fires the engine.

    See it on GitHub
  4. That routine is called “Burn, baby, burn”, after the catchphrase a 1960s DJ shouted while spinning records.

    See it on GitHub
  5. Signed by its authors, Adler and Eyles. With a motto in French: “shame on anyone who thinks evil of it”.

    See it on GitHub
  6. “Temporary, I hope hope hope.” This quick fix landed on the Moon.

    See it on GitHub
  7. The keyboard program, the one behind the DSKY’s VERB and NOUN, is called “pinball game”. And it opens by quoting Shakespeare.

    See it on GitHub
  8. Polite to the end: “hello” on the way in, “goodbye, come again soon” on the way out.

    See it on GitHub

It was written for two computers, the command module’s and the lunar module’s. Today anyone can read it.

And in the README, her signature: “Submitted by Margaret H. Hamilton, Colossus Programming Leader.” March 28, 1969.

72,633 people have starred it.

Read the code on GitHub
The chrislgarry/Apollo-11 repository on GitHub: the Comanche055 and Luminary099 folders and, in the README, the approvals table with Margaret H. Hamilton as submitterCommand moduleLunar module
LUMINARY 099WAITLIST.agcThe specification and code of WAITLIST, the task scheduler of the Apollo 11 lunar module.

Software engineering

Margaret started calling her work that. For a long time, it was a joke.

Until it wasn’t.

Today it’s the name of our profession.

“Software eventually and necessarily gained the same respect as any other discipline.”

Margaret Hamilton, to El País, 2018
Margaret Hamilton in 1969Margaret Hamilton in 1989

Margaret Hamilton She/Her

Director of Software Engineering at MIT · ApolloCo-founder & CEO at Higher Order SoftwareFounder & CEO at Hamilton Technologies · Creator of the Universal Systems Language

Cambridge, Massachusetts, United States · Contact info

Experience

  • Founder & CEO

    Hamilton Technologies, Inc.

    Mar 1986 – Present

    Cambridge, Massachusetts

    I created the Universal Systems Language and the 001 Tool Suite: preventing errors before they exist.

  • Co-founder & CEO

    Higher Order Software

    1976 – Present1976 – 1984

    Cambridge, Massachusetts

    With Saydean Zeldin, to take what Apollo taught us to other projects: preventing errors and tolerating faults.

  • Director, Software Engineering Division

    MIT Instrumentation Laboratory

    1965 – Present1965 – 1976

    Cambridge, Massachusetts

    Flight software for Apollo and Skylab, with a team of over 400 people. We took humanity to the Moon.

  • Programmer · SAGE project

    MIT Lincoln Laboratory

    1961 – 1963

    Lexington, Massachusetts

    They gave me the program nobody could get working, commented in Greek and Latin. It worked.

  • Programmer

    MIT · Department of Meteorology

    1959 – 1961

    Cambridge, Massachusetts

    Weather prediction software for Edward Lorenz. Yes, the butterfly effect one.

  • Math and French teacher

    Public high school

    1958

    Boston, Indiana

    Boston, Indiana. The other Boston came later.

Education

Earlham College

BA, Mathematics · Minor in Philosophy

1958

Skills

  • Software engineering

    She coined the term

  • Defensive programming

    Endorsed by Lauren Hamilton and Jim Lovell

  • Real-time priority scheduling

    Endorsed by Neil Armstrong and Buzz Aldrin, 33,500 feet above the Moon

Honors & awards

  • Presidential Medal of Freedom

    Issued by President Barack Obama · Nov 2016

    The highest civilian honor in the United States.

  • NASA Exceptional Space Act Award

    Issued by NASA · 2003

    $37,200, the largest award NASA had ever given to an individual.

  • Augusta Ada Lovelace Award

    Issued by the Association for Women in Computing · 1986

    Named after the first programmer in history.

Languages

  • English

    Native or bilingual proficiency

  • French

    Full professional proficiency

  • AGC assembly

    Native or bilingual proficiency

Barack Obama places the Presidential Medal of Freedom on Margaret Hamilton, to applause

Had LinkedIn existed in 1976, her profile would never have stopped changing.

She leaves MIT and co-founds her own company with Saydean Zeldin: Higher Order Software.

Later she founds Hamilton Technologies and creates the Universal Systems Language.

Her skills, endorsed by the people who knew them best.

NASA gives her the Exceptional Space Act Award.

Barack Obama awards her the Presidential Medal of Freedom.

“Hamilton defined new forms of software engineering and helped launch an industry that would forever change human history.”

Presidential Medal of Freedom citation
Earth rising over the lunar horizon, photographed from Apollo 11

Thank you, Margaret.

August 17, 1936 – September 30, 2026