Margaret Hamilton: Spaceship Programmer and Software Pioneer

4 min readAug 21, 2019

Without the work of the lead Apollo flight software designer, Margaret Hamilton, the Eagle would not have landed on the Moon.

Margaret Hamilton in 1989. Image copyright of NASA.

Margaret Heafield Hamilton (17 August 1936-present) was born in Paoli, Indiana. After finishing high school she studied mathematics at the University of Michigan and graduated with a BA in mathematics and a minor in philosophy from Earlham College, Richmond, Indiana in 1958. The following year she began work in the meteorology department at the Massachusetts Institute of Technology (MIT) for Professor Edward N. Lorenz, the pioneer of chaos theory, programming early computers to predict weather. She had to learn her trade hands-on as no taught software courses existed and among her credits, she promoted the term “software engineering” to provide legitimacy to the science and set it on a par with other types of engineering (Cameron 2018).

Between 1961 and 1963 Hamilton worked as a programmer on the US Semi-Automatic Ground Environment (SAGE) air defence system at MIT’s Lincoln Lab (Mindell 2008) and this is where she became interested in and learned about the reliability of software (Spicer 2017), being able to make a previously inoperative radar system actually work. As Hamilton said: “I was and still am very interested in what causes errors and how to avoid them throughout. That was one of my very first experiences in this regard… from day one, it’s been a fascination — the subject of errors…” (Hamilton 2001).

Image of Margaret and her navigation software. Copyright free image from Wikipedia.

It was this fascination and her expertise in systems programming that later made Hamilton the perfect candidate for the position of lead Apollo flight software designer. Rather than return to study for her PhD at Brandeis University, Massachusetts, she joined MIT’s Instrumentation Lab (now the Charles Stark Draper Laboratory), which was at that point working on the Apollo space mission, and in the summer of 1968 she began writing software for the program.

Her programming skills led to her promotion to head of the Apollo Software Engineering Division, where she and her colleagues wrote and developed code for the guidance and control systems of the in-flight command and lunar modules of the Apollo missions. In the process, Hamilton and her team established the nuts and bolts of modern software engineering, resulting in the creation of what she termed “ultra-reliable software” for the Apollo 11 mission. This included priority displays in emergency situations, where the software alerted the astronauts and allowed them to reconfigure systems in realtime.

Hamilton also set up firm constraints on components and subsystems engineering, debugged and tested everything before assembly and ran systems level simulations of every imaginable condition to identify potential problems; only then would she release the code.

Hamilton focussed on system error detection and data recovery in a computer crash at a time when it was very difficult and laborious to identify and fix errors. Her work was crucial as it turned out: just minutes before touchdown of Apollo 11 on July 20 1969, a documentation error resulted in computer overload. Hamilton’s software recognised the error situation and rejected extraneous tasks to re-establish its priority — landing Eagle on the Sea of Tranquillity. Hamilton had already fought hard (and lost) to include user-error-checking in the code, an omission that almost led to the failure of Apollo 8.

Margaret in the Apollo Command Module (NASA). Copyright free image from Wikipedia.

Hamilton worked on the software for all the Apollo manned and a few of the unmanned missions, Skylab on-board flight software and initial system software requirements for the Space Shuttle. Her rigorous work during the Apollo missions that resulted in the creation of the foundations of modern software engineering were to become the bases for her Universal Systems Language (001AXES) and Development Before the Fact (DBTF) formal systems theory.

In 1976 Hamilton co-founded Higher Order Software where she applied her skilled methodology to defence projects. In 1986, she left HOS to found Hamilton Technologies, to accelerate the evolution software technology and to direct her advanced systems to complex projects for commercial and defence purposes.

Hamilton has published over 130 papers, proceedings and reports and has been involved in 60 projects and in 6 major programmes. She has been the recipient of numerous awards and fellowships for her outstanding achievements. In a conference presentation in 2004, Hamilton said of software engineering: “Apollo was and still continues to be the catalyst for how it got started and how it continues to evolve.”

Dr Sandi Cayless is a freelance author of science fiction and a science writer. She has carried out research at and has degrees from Imperial College, London (PhD); Stirling University (MSc; BSc); and, Glasgow Caledonian University (BSc).

This article was originally published on OpenLearn and can be viewed here.

If you liked this article, please ‘applaud’ it with the clapping hands icon below to spread the word and help others find it.

Subscribe to our newsletter for more free courses, articles, games and videos.




The home of free learning from The Open University.