How Margaret Hamilton’s Brilliant Software Programming Brought America to the Moon and Beyond

How Margaret Hamilton’s Brilliant Software Programming Brought America to the Moon and Beyond
Margaret Hamilton, lead Apollo flight software engineer, in the Apollo Command Module. (Public domain)
12/17/2022
Updated:
12/17/2022
In 1969, the world watched the Apollo 11 mission with bated breath. For Margaret Hamilton and her team, the view was a little different; they watched the landing from the monitoring room at MIT. Moments before the module was supposed to land on the moon, the computer started flashing warning messages. Everyone’s heart stopped as the emergency registered. In an instant, however, it became clear that the problem was fixing itself and that Hamilton’s work had saved the mission. The software she wrote with her team was not only informing everyone about the problem, but actively compensating for it by restarting the program and focusing on the only thing that mattered: landing the module safely. Minutes later, Neil Armstrong reported that “The Eagle has landed.”

A New Field

Born in 1936 in Paoli, Indiana, Margaret Hamilton never imagined that she would become a computer scientist, much less one who would be remembered in American history. The modern computer wasn’t even built until seven years after her birth. Hamilton studied mathematics and philosophy at Earlham College in the 1950s, where she met her husband. Hamilton initially intended to teach high school mathematics, but her plans changed when she moved with her husband to Boston so that he could study law at Harvard. In order to support the family, Hamilton took a job for a project at MIT while her husband worked on his degree. The project, run by professor Edward Lorenz, involved creating a system to predict the weather. Lorenz had advertised specifically for math majors, and Hamilton fit the bill. Under his guidance, she learned what a computer was and took on the challenge of writing software. She learned on the job, and she was inspired by Lorenz to continue experimenting with software.

Fascinated by software programming and eager to experiment in such a new field, Hamilton went on to work for MIT’s Lincoln Laboratory in the early 1960s. Here, she continued to learn about and practice programming while working on the Semi-Automatic Ground Environment (SAGE) project, a system used to identify enemy aircraft. Hamilton’s experience with software programming made her a perfect candidate for the job on the Apollo 11 mission, and she was the first to apply after seeing it advertised in the newspaper.

Hamilton at the IBM 360/85 console of the National Security Agency on Jan. 18, 1971. (Public domain)
Hamilton at the IBM 360/85 console of the National Security Agency on Jan. 18, 1971. (Public domain)
Hamilton was chosen to lead the Software Engineering Division of MIT’s Instrumentation Lab working with NASA, a team that would eventually number over 400. Her team was responsible for all code and programming needed to send astronauts to the moon. The programming ended up being a lot more complex than anyone first thought. As this kind of work was so new, upper management gave the software team total freedom. The only stipulation was that the mission had to succeed.

Total Dedication

Hamilton and her team were wholly dedicated to the project, even working nights and weekends when necessary. In addition to leading the team, Hamilton took on the responsibility of writing code as well. She worked specifically on the guidance and control system code for the in-flight command and lunar modules. In addition, she focused on programming systems to detect errors and recover information in the event that the computers crashed. It was this program that saved the mission at that last moment before landing.

While writing this code, Hamilton discovered the necessity of accounting for human error. She had brought her daughter, Lauren, to the lab one evening while she was working. Lauren, while pretending to be an astronaut, accidentally hit buttons that ran the simulation out of order and erased the navigation data. Hamilton brought her concern to upper management, but she was told that astronauts are trained not to make mistakes. It was only after an astronaut made the same mistake while training that Hamilton was given permission to fix the “Lauren bug.”

Hamilton stands next to the navigation software that she and her MIT team produced for the Apollo Project, on Jan. 1, 1969. (Public domain)
Hamilton stands next to the navigation software that she and her MIT team produced for the Apollo Project, on Jan. 1, 1969. (Public domain)

After leaving MIT, Hamilton continued to work in software engineering throughout the 1970s and ’80s. She went on to start her own software company and develop Universal Systems Language (USL). Using the lessons she learned from Apollo 11, Hamilton designed a coding system to make programming easier and more efficient. She wanted a system that was reliable and could correct errors before they occurred. USL is still used today, mostly as the basis for other coding languages.

When Hamilton entered the world of software programming, it was a blank slate. Like inventors before her, she and her colleagues had to build programs from the ground up, and all problems had to be figured out and fixed from scratch. Their creative work in the new field had one mission: getting America to the moon. Hamilton took up that mission with dedication and innovated upon the work accomplished by those who came before her. In similar fashion, the work of Hamilton and her team helped pave the way for future software engineers and computer scientists, continuing the path of innovation and community that defines American advancement in science and technology. Today, there are about 4 million software engineers in the United States alone, all continuing the work first pioneered by Margaret Hamilton.

This article was originally published in American Essence magazine. 
Related Topics