Margaret Hamilton: The First Software Engineer

Margaret Hamilton Employee Card  Image Courtesy: NASA

Margaret Hamilton Employee Card

Image Courtesy: NASA

Margaret Hamilton (nee Heafield) was born in Paoli, Indiana in 1936 and she completed her bachelor’s in Mathematics at the University of Michigan and Earlham College in 1958. While her initial plan was to pursue graduate studies at Brandeis University, she instead took up a job at Massachusetts Institute of Technology (MIT) which ended up being the starting point of her journey to joining the National Aeronautics and Space Administration (NASA) team and playing a key role on the moon landing.

Hamilton’s first venture into programming was her development of software to predict weather patterns and her postgraduate work on meteorology. This led her to MIT’s Lincoln Laboratory where she worked on the Semi-Automatic Ground Environment (SAGE) project, the first US air defense system. Hamilton wrote software for identifying enemy aircraft. Next, she joined MIT’s Instrumentation Laboratory where she led a team to develop the software for guidance and control systems for the in-flight command and lunar modules of the Apollo mission. Hamilton’s dedicated work on software to detect system errors and information recovery in case of a computer crash, were crucial elements in the success of the Apollo 8 and Apollo 11 missions.

What they used to do when you came into this organization as a beginner, was to assign you this program which nobody was able to ever figure out or get to run. When I was the beginner, they gave it to me as well. And what had happened was it was tricky programming […] and I actually got it to work. […] I was the first one to get it to work
— Hamilton about project SAGE
Margret Hamilton with her code she wrote for Apolo  Image Courtesy:

Margret Hamilton with her code she wrote for Apolo

Image Courtesy:

Before the Apollo 8 mission, while Hamilton was working on the command module simulator, an accidental launching of a pre-launch program (P01) resulted in the system crashing. Hamilton suggested to her management code the should be added to prevent future crashes from occurring, but they maintained that the astronauts were trained to be perfect and would not make a mistake. As a precaution, Hamilton added a program note “Do not select P01 during flight”, despite insistence from management that this would never happen. However, that is exactly what happened and resulted in all the navigation data being erased, making it impossible for the Apollo computer to know how to get the team back home. After spending 9 hours going through program listings, the NASA team came up with a way to upload new navigational data to the Apollo computer and thanks to Hamilton, the team was brought home safely.

By the time of Apollo 11, Hamilton had begun winning technical arguments with her higher-ups, resulting in her saving the day once more. Just before touchdown in the Sea of Tranquility, Apollo 11 started displaying worrying error messages. However, the team in Houston was not worried due to the programming of Hamilton and her team. The computer’s unique asynchronous processing meant that it knew it was overwhelmed with unnecessary calculations and that it should focus on the task at hand, which was to land on the surface of the moon. This internal prioritization of the computer resulted in the first moon landing.

Hamilton in an Apollo Command Module during her time as lead Apollo flight software designer  Image Courtesy: NASA

Hamilton in an Apollo Command Module during her time as lead Apollo flight software designer

Image Courtesy: NASA

After Hamilton’s time in NASA, she went on to set up her own software companies and is the current CEO of Hamilton Technologies Inc (HTI). She has also received multiple awards for her services such as the Augusta Ada Lovelace Award (1986) and the NASA Exceptional Space Act Award (2003). In the 2016, she received the Presidential Medal of Freedom, the highest civilian honor in the USA. A fact known only to a few, Margaret Hamilton is known as the founder of the field of Software Engineering, a field largely dominated by men today.

When I first came up with the term, no one had heard of it before, at least in our world. It was an ongoing joke for a long time. […] It was a memorable day when one of the most respected hardware gurus explained to everyone in a meeting that he agreed with me that the process of building software should also be considered an engineering discipline, just like with hardware. […] We had earned his and the acceptance of the others in the room as being in an engineering field in its own right.
— Hamilton about coming up with the term ‘Software Engineering’
Tayyaba Qamar