Skip to content

Margaret Hamilton

Making flight software recover from trouble

Margaret Hamilton led Apollo flight software development at MIT. Her career connects weather forecasting, air defence and spacecraft with a sustained concern: how a program should behave when something goes wrong.

During Apollo 11’s descent, the guidance computer reported that it had run out of resources for scheduling work. The landing continued because the software could recover while preserving essential calculations. Margaret Hamilton led the MIT team responsible for Apollo’s onboard flight software. Understanding that achievement means looking at the recovery mechanisms and the people who built them. (Don Eyles, Tales from the Lunar Module Guidance Computer; MIT’s obituary.)

Before Apollo

Born in Indiana in 1936, Hamilton graduated from Earlham College in 1958. At MIT she programmed weather-prediction work associated with Edward Lorenz, then worked on the SAGE air-defence project at Lincoln Laboratory. These were programs whose answers mattered outside the computer room. MIT’s career account traces her growing interest in reliability through those jobs and into Apollo.

At the Instrumentation Laboratory, she rose to lead the teams developing flight software for the command and lunar modules. Guidance, navigation, displays and control had to share computers with limited memory and processing time. The work involved organising and testing interacting programs as well as writing individual routines. (MIT, “Early life and projects at MIT”.)

Work that could resume

Apollo programmer Don Eyles credits J. Halcombe Laning with designing the Executive, which organised jobs by priority, and the Waitlist system for timed tasks. Jobs could take different amounts of time; they did not all have to fit into fixed slots. Those mechanisms gave the flight programs a way to share the machine. (Eyles, Executive and restart sections.)

Restart protection addressed another problem. A calculation might be interrupted after changing some values but before completing its work. Programmers registered safe points from which important work could resume without accidentally applying a change twice. Work without restart protection could be discarded. This required care within the individual programs, not just a general restart command.

A schematic shows an important calculation recording a safe point, an interruption, and resumption from that point
A simplified view of restart protection, based on Eyles's account. The actual flight software had multiple jobs, priorities and recovery rules. Diagram by Code198x.

During Apollo 11, unnecessary rendezvous-radar activity consumed computer time. The Executive’s resource checks raised the 1201 and 1202 alarms and initiated recovery. Eyles describes both the successful protection and the changes made after the mission. The landing’s success did not mean that every overload problem had already been solved. (Eyles, alarm analysis and later modifications.)

Engineering beyond the mission

Hamilton continued pursuing error prevention after Apollo, co-founding Higher Order Software in 1976 and founding Hamilton Technologies in 1986. Her later work included the Universal Systems Language, a method for describing systems and their relationships. She also pressed for software development to receive recognition as engineering. She died on 30 September 2026. (MIT; AP’s independently reported obituary.)

Her career belongs alongside Barbara Liskov’s work on program organisation, though their methods differed. Both concern how people can build and reason about software larger than a single routine. The wider history of women’s contributions to computing places that work among other kinds of calculation, programming and design.

Sources

Checked. Verified against primary sources and signed off by a person.