Margaret Hamilton: The First Software Engineer

 

Last Updated: December 19, 2021

Margaret Hamilton Employee CardImage Courtesy: NASA

Margaret Hamilton Employee Card

Image Courtesy: NASA

Early life

Hamilton (née Heafield) was born in Paoli, Indiana in 1936. 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.

Apollo Space Mission

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 the software for identifying enemy aircrafts. 

She later joined MIT’s Instrumentation Laboratory as a computer scientist where she led a team to develop the software used for guidance and control systems for the in-flight command and lunar modules of the Apollo mission. Her 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 ApoloImage Courtesy: wehackthemoon.com

Margret Hamilton with her code she wrote for Apollo

Image Courtesy: wehackthemoon.com

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 code that should be added to prevent future crashes from occurring, but her superiors 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.

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 designerImage Courtesy: NASA

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

Image Courtesy: NASA

Post NASA career

After Hamilton’s time in NASA, she went on to set up her own software company and is the current CEO of Hamilton Technologies Inc (HTI). She also received multiple awards for her services such as the Augusta Ada Lovelace Award (1986) and the NASA Exceptional Space Act Award (2003). In 2016, she received the Presidential Medal of Freedom, the highest civilian honor in the USA. Margaret Hamilton is widely known to be the first person to coin the term ‘Software Engineering’.

 
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’