Margaret Hamilton oversaw the guidance software on the Apollo program. Thanks to sophisticated error-handling in that code, her engineering efforts prevented an abort of the Apollo 11 landing.
Three minutes before the Lunar lander reached the Moon’s surface, several computer alarms were triggered. The computer was overloaded with incoming data, because the rendezvous radar system (not necessary for landing) updated an involuntary counter in the computer, which stole cycles from the computer. Due to its robust architecture, the computer was able to keep running; the Apollo onboard flight software was developed using an asynchronous executive so that higher priority jobs (important for landing) could interrupt lower priority jobs.
This was on a 2 MHz machine with 1 MB of RAM. Even the term software engineering was coined by Hamilton, who also helped develop “concepts of asynchronous software, priority scheduling, end-to-end testing, and human-in-the-loop decision capability.”
A safe mantra to keep in mind with software is “all software has bugs,” which so often means “don’t expect too much.” Margaret Hamilton was instrumental in creating processes to ensure that software can systematically accommodate surprises and continue functioning as expected.