Unsung Computing Heros, Margaret Hamilton

The software engineer that took us to the moon (and back)

Fly Me to the Moon - by code

It was great to see the succesful launch and docking of SpaceX Dragon Crew last week, marking the return to US manned space launch. That event got me thinking back to the Apollo programme and one of my favourite aspects the Apollo Guidance Computer (AGC)

When it comes to women who have influenced the world of computing and software, Ada Lovelace is often held up as one of the pioneers. However, in terms of modern computing and software I believe one of the most influential women is Margaret Hamilton. Margaret is most known as the Lead Software Architect on the Apollo Guidance and Navigation system - the code for the AGC.

The story of the AGC has always fascinated me and if you’re interested getting the detail I’d recommend Digital Apollo by David Mindell. I’d also recommend watching the video below that provides a really technical detailed walkthrough of the Apollo Guidance Computer.

Margaret’s story in software starts in 1959 with her getting a job at MIT working on weather prediction. At that time Margaret worked on both a LGT-30 and a PDP-1. She then went on to work on the US Air Force air defence programme SAGE. It was the experience on SAGE in particular that made Margaret an ideal candiate to lead the AGC software development.

The 1202 Alarm Incident

For “Tech Geeks” like me, one of the the most fascinating parts of the Apollo 11 mission was the 1202 Alarm. This was triggered by Buzz Aldrin leaving the orbiting Command Module facing radar switched on which, given the AGC limited processing power, caused an overflow exception. Potentially, in some system designs, this might of caused the AGC to crash aborting the landing - or worse, but it didn’t. The fact that this didn’t happen is down to Margaret’s focus on reliable systems design.

The benefits of taking your children to work

Margaret often took her daughter to work with her in the MIT labs. One evening her daughter was “playing” on the Lunar Lander simulator when she pressed a bunch of keys out of sequence which caused the AGC to crash. Margaret realised that the Astronauts could also make this mistake.

She proposed an asyncronous driven architecture to the AGC that ensured high priority critical tasks would always get their allocated CPU time. Also, if there was any critical failure in code execution, the design could recover where it left off. It was these key design decisions that ensured the solid reliability of the AGC to cope with unexpected scenarios, such as Buzz accidently leaving a radar telemetry feed running. For her work and foresight Margaret was given the NASA Space Act Award.

Margaret is credited with coining, and gaining acceptance, of the term and discipline of Software Engineering. In the early days of the AGC the focus was on the hardware and mainstream thinking in NASA at the time was the software was the easy bit.

Not that unsung

The title of this series is Unsung Computing Heros. Well, actually, Margaret Hamilton is definitely recognised today. In 2016 she was awarded the Presidential Medal of Freedom by Barack Obama and in 2019, on the 50th aniversary of the moon landing, Google reconfigured the mirrors at the Ivanpar solar plant in California to create amazing tribute to her achievements.