Margaret Hamilton, Apollo Engineer

Wait, what? There was a female engineer at NASA in the 1960’s? Yes there was, but not in the sense that you might think.


Margaret Hamilton was born in 1936, graduated from Hancock High School in 1954, and attended Earlham College in Indiana, where she earned her B.A. in mathematics and philosophy. She took a job as a math teacher while her husband finished his undergraduate degree, after which they moved to Boston, Massachusetts, where she took a job as a programmer at MIT in 1960. Computer science and software engineering were not yet professional disciplines, so all of her programming knowledge came from hands-on experience with the machines. She eventually went to work for the Charles Stark Draper Laboratory at MIT, and later the Software Engineering Division of the MIT Instrumentation Laboratory, becoming the director of software programming in 1965. It was in this capacity that she developed and oversaw the on-board guidance software for the Apollo lander that was required to navigate to and land on the moon. This code was later used in various missions with modifications as needed.

Margaret Hamilton standing next to the printout of the code used to land the Apollo 11 lunar lander. Source: NASA
Margaret Hamilton standing next to the printout of the code used to land the Apollo 11 lunar lander. Source: NASA.

The social atmosphere at the time erroneously and detrimentally assumed that men were better at the hard part of rocket science, e.g. calculating flight paths, payload capacities, fuel needs, etc. (Apparently they were forgetting the monumental contributions of women like Grace Hopper and Katherine Johnson, but that’s another story.) Once the “hard” part was done by the engineers and techs, the data was given to the crew of women that were there to just input the data into the machines for computation. Some of this work was to program the complex equations needed to get to the Moon and back, and some of it was for programming the code into the on-board computers that would assist the astronauts in their work. It all had to done by hand with punch cards, an antiquated technique used to automate machinery of all types, not just computers. This may seem like mundane, repetitive work, and it is, but what we don’t think about is that these women only had the requirements from the techs as to what the outcome should produce given a specific set of input data. They were given no direction as to how that would actually be carried out once the data was inside the machine. They had the difficult task of figuring out how to get the machine to do what they needed it to do.


Margaret Hamilton, in her capacity as director of software development, developed extremely versatile and robust code that could handle problems that the techs had never even dreamed of. As the Apollo 11 lander was three minutes away from the lunar surface, several computer alarms were triggered. Through an investigation, it was determined that the rendezvous radar system (used for in flight maneuvering and docking, not landing) was overloading the computer and stealing precious process cycles. The computer was trying to land the craft while the radar was dumping tons of non-important data into the system, but the software she wrote was smart enough to recognize that it was being asked to do more than it could, so it prioritized the most critical processes (landing) and eliminated the lower priority tasks it was being asked to perform (in-flight rendezvous).


       “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

Margaret Hamilton at work. Source: NASA
Margaret Hamilton at work. Source: NASA.

Priority encoding and interrupt handling are routine tasks that are common knowledge to any student of software engineering today, but at that time, it was what saved the day. If not for the foresight of Margaret Hamilton and her team, it’s possible that there would be a much darker chapter in manned spaceflight. Later in her career she developed the concepts of asynchronous software, which led to the powerful concept of parallel computing, and human-in-the-loop decision capability, which can be seen most often now in high-quality flight or driving simulators.


In 1977, she co-founded a company that developed software intended to catch system bugs before they happened, a design model known as Development Before The Fact (DBFT). In 1986, she founded Hamilton Technologies, Inc. in Cambridge Massachusetts. Ms. Hamilton is also credited with coining the term “software engineering”.

Leave a Reply

Your email address will not be published. Required fields are marked *