Margaret Hamilton entrò al MIT per lavorare a progetti di software (tra cui il software meteorologico per Edward Lorenz, padre della teoria del caos, e il software del sistema SAGE che cercava gli aerei nemici) prima di approdare al contratto MIT/NASA come programmatore capo dell’Apollo Guidance Computer. Ha lavorato a tutte le missioni Apollo con equipaggio e a molte missioni senza equipaggio. Per le missioni con equipaggio, Hamilton ha guidato il team che ha sviluppato il software di volo a bordo per i moduli di comando e lunari. Era la direttrice della divisione di ingegneria del software presso il laboratorio di strumentazione del MIT.
Il codice sviluppato da Hamilton era il software che i due computer delle navicelle Apollo avrebbero usato e sarebbe stato la base di quella che oggi è un’industria di ingegneri del software che devono la loro carriera alla Hamilton e al suo team. Il software di volo a bordo fu costruito per essere asincrono. Ad ogni lavoro nel software veniva assegnata una priorità unica dai membri del team. Hamilton ha sviluppato un software per rilevare gli errori del sistema e recuperare da essi in tempo reale. Questo includeva le sue routine man-in-the-loop priority-display-interface-routines che davano al software la capacità di comunicare asincronicamente in tempo reale con gli astronauti─il software e gli astronauti in esecuzione in parallelo─in un ambiente di sistema distribuito. Con questo come sfondo, i display prioritari avvertivano gli astronauti in caso di emergenza interrompendo i normali display di missione degli astronauti e sostituendoli con display di allarme prioritari, fornendo loro opzioni di emergenza da selezionare. Questo fu il caso dell’Apollo 11 poco prima dell’atterraggio sulla luna, quando il computer, a causa dell’interruttore del radar di rendez-vous lasciato nella posizione sbagliata, si sovraccaricò. I display di allarme di priorità erano un promemoria per gli astronauti per rimettere l’interruttore del radar al suo posto. Quando i display di priorità davano loro la scelta: “atterrare” o “non atterrare”, a causa della loro (e del controllo missione) fiducia nell’integrità del software di volo di bordo, sceglievano di atterrare.
Hamilton portava spesso sua figlia, Lauren, al lavoro durante le ore libere. Una volta, mentre alcuni del team stavano eseguendo scenari di missione sul computer di simulazione ibrida, Lauren andò in esplorazione e cominciò a selezionare i tasti DSKY in modo “fuori nominale”. Ha avviato uno scenario di missione e ha fatto fallire la missione selezionando P01 (pre-lancio) a metà percorso. Hamilton ha chiesto, “cosa succederebbe se P01 fosse inavvertitamente selezionato da un vero astronauta durante il midcourse in una missione reale? Questo sarebbe un grosso problema, perché cancellerebbe i dati di navigazione. Non potendo aggiungere codice per evitare che l’astronauta commettesse questo errore, Hamilton aggiunse una nota di programma al software, “non selezionare P01 durante il volo”. Nella missione successiva, Apollo 8, l’astronauta fece lo stesso errore; Hamilton e il suo team furono in grado di aiutare gli astronauti a ricaricare i dati di navigazione per sostituire i dati distrutti. Ora aveva l’approvazione per aggiungere un software per evitare che questo problema si verificasse nelle future missioni Apollo.
“Hamilton è la persona che ha avuto l’idea di nominare la disciplina, l’ingegneria del software, come un modo per darle legittimità”. Ha condotto uno studio empirico su Apollo e sugli sforzi successivi, che ha portato alla sua teoria dei sistemi di controllo. Dai suoi assiomi, il linguaggio universale dei sistemi è stato derivato insieme al suo paradigma di automazione e prevenzione. Hamilton è CEO di Hamilton Technologies Inc. Ha ricevuto il premio Exceptional Space Act della NASA (2003) e la Medaglia presidenziale della libertà dal presidente Barack Obama (2016). Ha ricevuto il proprio Lego nel set Women of NASA Lego.