Margaret Hamilton is the O.G. software engineer. And when I say the O.G., I mean it. She coined the term during her time leading a team at MIT. In "Fluency With Information Technology, 7th Edition," she says, "They liked to kid me about my radical ideas. 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." Before Margaret's influence, computer science was not considered one of the academic sciences. She fought to legitimize it in the eyes of the stereotypical STEM fields at the time. That's what I find so fascinating about her career. She did groundbreaking work while setting the stage for a future generation of women in computer science.
Margaret's career was only part of moon landings and rocket flight. She got her start in 1959 in MIT's meteorology department. She primarily focused on writing software for DARPA's Project MAC. Project MAC led groundbreaking research on operating systems, artificial intelligence, and the theory of computation. After only two years, she moved to MIT's Lincoln Lab, where she worked on the SAGE project. The U.S. Air Force used this project to track enemy aircraft and predict intercept points for their planes. Her work at Lincoln Lab allowed her to lead the team on NASA's new guidance software.
During her time with the Apollo Program, Margaret led the team in building the guidance systems. These systems were responsible for the safe navigation to and from the moon, landing the lunar module on the surface, and returning the astronauts to the orbiting Apollo spacecraft. She pioneered systems for fault tolerance and error handling and new techniques in systems processing and priority processing of tasks in a computer system.
The Priority Display system developed by Margaret is responsible for saving the Apollo 11 landing. It took over valuable real estate on the cramped spaceship's control panel to surface faults and errors to the astronauts. It allowed the people in space and ground teams precious seconds to diagnose a problem before aborting. In the past, primitive flight computers would have auto-aborted with the most negligible unexpected errors.
During the final descent to the lunar surface, the guidance computer was overwhelmed by the number of jobs it needed to process. One of the astronauts had inadvertently left the spacecraft's rendezvous radar-powered. The build-up of extra jobs from that radar overwhelmed the guidance computer, causing it to fall back to asynchronous processing. Before the priority display, a fault like that during landing would have been an immediate abort. However, the priority display was able to surface the fault immediately to the astronauts and ground control. Because the ground engineers had those precious seconds, one recognized the issue and told the astronauts to proceed with the landing. This human interaction instructed the guidance computer to process only the most critical tasks about landing the spacecraft. And allowed humanity to take one giant leap onto the lunar regolith.
After Apollo in 1976, Margaret left MIT to found her own company, Higher Order Software. The company primarily worked on furthering her ideas in error handling and fault tolerance, which she developed while working on the Apollo Program. Their research would influence work at the U.S. Air Force and other government programs. She left HOS in 1985. The following year, she founded Hamilton Technologies, Inc., where she continued working on her Universal Systems Language.
Throughout her career, Margaret Hamilton helped set the stage for women in software engineering. She helped shape the field into what it is today. She confronted the old guard and demanded respect for her profession. Her software has saved lives with storm detection, landed humans on the moon, and changed modern operating systems. The groundwork she laid with her work in error handling and fault tolerance is still being used today at SpaceX, NASA, Boeing, and others, where the cost of an error isn't a Bugsnag email or possible support ticket but human life.