I work in the lab of Jeremy Purvis, where we do a lot of fluorescence microscopy for our research, and have dedicated computers for processing the resulting imaging data. We have a tradition of naming our computers after women computer scientists, including Ada Lovelace and Margaret Hamilton. Hamilton may not carry as much name-recognition as Ada, but very much earns the merit of recognition for her contributions to the NASA Apollo missions. In particular, she served as a brain behind the flight software that enabled us to step foot on the moon for the first time, and return safely.
Hamilton was born in 1936. She followed her mother’s footsteps to Earlham College where she graduated with a degree in mathematics, and was encouraged in her pursuits by the head of Earlham’s math department, Florence Long. Shortly after graduation, she married fellow classmate, James Cox Hamilton, and briefly taught high school math while he completed his collegiate education. The couple then moved to Boston, Massachusetts, where Hamiliton took a job at MIT’s meteorology department in the lab of Edward Lorenz, who pioneered the field of chaos theory. There, she learned the fundamentals of computers and programming. Computer science was a nascent field at the time with scarce documentation, so Hamilton learned on the job, which engendered a great affinity for the emerging field.
As Hamilton began to consider going to grad school, her husband informed her of a recent newspaper advertisement from MIT’s Lincoln Laboratory. The advertisement sought people to develop software to “send man to the moon” in fulfillment of a NASA contract for the Apollo mission. The idea of helping humanity ascend to the stars, as well as the novel use of her programming skills drew her into rerouting her career trajectory. She was first to apply for the position as well as the first woman hired by the lab. Her prior software development experience helped fill in a key niche for the project that the hardware engineers lacked. As time progressed, many began to appreciate the importance of not just building the computers on the Apollo spacecrafts, but the sophistication of the software needed to leverage their full potential and keep the astronauts safe during their voyage. The number of software engineers increased to around 100, with Hamilton leading them. Notably, Hamilton coined the term ‘software engineering’. Software development wasn’t seen as a valuable profession compared to established engineering disciplines (Hamilton would often joke “hey, we’re engineering, too”) , so Hamilton came up with the term “software engineering” to give the field more credibility.
In addition to leading a team of programmers, Hamilton also raised her daughter, Lauren, whom she would frequently take to work. Trying to imitate her mother programming, Lauren would often press random keys on the computer. One day, Lauren accidentally initiated a pre-launch program for a simulated flight to the Moon that erased navigation data mid-flight. This created an alarming epiphany for Hamilton, realizing “my God – this could inadvertently happen in a real mission.” Inspired by her daughter’s childish antics, she brought up suggested changes to finesse the software in order to prevent this from occurring in real life. However, her concerns were dismissed by her superiors at MIT and NASA, overconfident in the astronauts’ ability to evade such mistakes. In a subsequent Apollo 8 mission, however, one of the astronauts accidentally replicated Lauren’s random pressing (the “Lauren bug”, as Hamilton called it), which created a cascade of issues that required the mission to be reconfigured. After that prophetic incident, her superiors defaulted to Hamilton’s suggestion and let her implement the necessary changes. These changes had a level of sophistication that would prevent such accidents from occurring during the real flights, and brought attention to inflight emergencies. During the Apollo 11 mission to the Moon, the ship’s software detected a critical error that caused it to abort the landing program just three minutes before touchdown. This overloaded the computer on the ship, giving it multiple commands, similar to what Lauren had done. Thankfully, Hamilton’s software alerted her and mission control of the error, and had a command for the astronauts to bypass it. This savvy planning on her part saved the ship from crashing, and enabled one of humanity’s greatest achievements.
For her reliable software, Hamilton was nominated for a NASA Space Act Award. The nominating senior technologist, Paul Curto, called her work “the foundation of ultra-reliable software design.” Many decades later, she was honored by President Barack Obama with the Presidential Medal of Freedom–the United States’ highest civilian honor. As President Obama described the incident, “Our astronauts didn’t have much time, but thankfully they had Margaret Hamilton.”
In 1976, Hamilton made a career shift to entrepreneurship and founded two companies dedicated to efficient software design, one of which is still active today: Hamilton Technologies. Today, Hamilton has received increased recognition for her contributions to space flight, joining the ranks of several Hidden Figures, including the late Dr. Katherine Johnson. Now, as I write software to process data from my microscopy experiments on the computer named after her, I only hope that all who use the computer, myself included, can emulate her paragon of reliability and efficiency.
Edited by Sarah Godoy