Margaret Heafield Hamilton was born in Paoli, Indiana, on August 17, 1936. She graduated high school in 1954 and from Earlham College, with a BA in mathematics, in 1958. From simple beginnings, she would go on to the lead computer software development for part of the US Apollo space program, probably still the most ambitious human project ever. Costing $142 billion (2017) and staffed with over 400,000 engineers, assembly line workers, astrophysicists, welders, truck drivers, astronauts, radar technicians, and program managers—nearly every technical specialty and walk of life possible—it was truly a national mission.
On her way to Apollo, after graduating from Earlham, Hamilton took a temporary position at Massachusetts Institute of Technology (MIT), where she developed weather prediction software for professor Edward N. Lorenz on the Librascope LGP-30 and DEC PDP-1 computers. Lorenz is the father of dynamical systems and chaos theory, and coiner of the concept of the “butterfly effect.” This idea is that small initial changes can have large effects. Lorenz used it in his models of global climate change to show, to ask, for example, “Does the flap of a butterfly’s wings in Brazil set off a tornado in Texas?”
From 1961–63, Hamilton worked on the massive US SAGE air defense system at Lincoln Laboratories, where she first began to take an interest in software reliability. SAGE, which stood for the nearly meaningless acronym “Semi-Automatic Ground Environment,” was a series of computers across the US (with one in North Bay, Canada) which connected to local radars and which could provide a picture of the airspace of the continental United States. The perceived threat was atom bomb carrying Russian bombers attacking from the north. While Hamilton worked on the prototype SAGE computer, whose military designation is AN-FSQ-7, she learned a great deal about the importance of writing reliable software.
When the computer crashed during the execution of your program, there was no hiding. Lights would be flashing, bells would be ringing and everyone, the developers and computer operators, would come running to find out whose program was doing something bad to the system.Margaret Hamilton
In the summer of 1968 in Cambridge, Massachusetts, 32-year-old Hamilton began writing software at the MIT Instrumentation Lab, home of the Apollo Guidance Computer (AGC). The AGC was a marvel of technological development: the reduction in size of a computer system for Apollo spacecraft from 7 refrigerator-size equipment racks to a 70 lb box measuring only 24 × 12.5 × 6.5 inches using the new technology of “integrated circuits.”
Proving herself to be an skilled programmer, Hamilton worked her way up to become head of the Apollo Software Engineering Division, writing and supervising code development for the AGC used in the Lunar Module, the Command Module, then eventually, all on-board flight software. Code was literally sewn into place—copper wires were threaded through magnetic rings to represent the 1’s and 0’s of the AGC’s code.
During the project, the pressure on everyone in the program was intense (“out of this world,” one might even say), with endless long days and nights spent working to put a man on the Moon. Hamilton was no exception. She was also raising a 4-year-old girl, daughter Lauren. One day Lauren, whom Hamilton often brought to work, happened to push a button on the DSKY and crashed the system. If this happened in space, the computer would lose its navigation data and the crew would be lost in space. (Fortunately, there are back up instruments but it would be riskier).
Sure enough, on Christmas Day 1968, with Apollo 8 in orbit at 2 p.m. Eastern time, astronaut and Command Module pilot Jim Lovell said, “Uh, oh. I think I just did something wrong.”
After spending nine hours poring through the 8-inch-thick program listing on the table in front of them, Hamilton and her coders arrived at what they thought was the best workable solution which involved entering hundreds of keystrokes into the AGC. If they make one mistake it could throw the navigation of the spacecraft off—meaning that they could either burn up on reentry to Earth—or skip off the atmosphere and be lost in space. After nine hours of painstaking troubleshooting and testing, the astronauts reboot the computer and begin their journey home.
A similar computer-related issue occurred during the Apollo 11 lunar descent. While some popular media accounts claimed the computer failed at a critical time, Hamilton recounts what really happened in a letter to industry periodical Datamation, March 1, 1971:
The computer (or rather the software in it) was smart enough to recognize that it was being asked to perform more tasks than it should be performing. It then sent out an alarm, which meant to the astronaut, I’m overloaded with more tasks than I should be doing at this time and I’m going to keep only the more important tasks; i.e., the ones needed for landing . . . Actually, the computer was programmed to do more than recognize error conditions. A complete set of recovery programs was incorporated into the software. The software’s action, in this case, was to eliminate lower priority tasks and re-establish the more important ones . . . If the computer hadn’t recognized this problem and taken recovery action, I doubt if Apollo 11 would have been the successful Moon landing it was.Margaret Hamilton
Hamilton continued working for NASA on its Skylab and Shuttle missions. From 1976 to 1984 she founded Higher Order Software where she employed the high reliability methods to defense projects. In 1986, she left HOS to found Hamilton Technologies, where she has worked since, applying advanced methods including her proprietary Universal Systems Language and 001 Tool Suite to complex software projects for commercial and defense customers.
This year, we honor Margaret Hamilton “for her leadership and work on software for DOD and NASA’s Apollo space missions and for fundamental contributions to software engineering.”