I was able to meet her, and others who worked at the MIT Instrumentation/Draper Lab, as a start-up I was with received funding from a VC firm founded by other Draper Lab members from the Apollo era. I was totally out of my league talking with them. This was thirty years ago and I remember her talking about formalized control systems. It was fascinating but went totally over my head. My startup was a fairly silly multimedia CD-ROM company and I was just happy to be in the room.
Thanks for sharing this story from this point of view so genuinely. I really enjoyed it more than I thought I would enjoy any comments under this sad news.
I think projects like Apollo are important in a way that they let extraordinary people to use their capabilities.
I feel from personal experiences as well as from many close people that often the corporate world really struggles on dealing with talent. And I don't mean autistic savants doing obscure things but relatively normal but very competent people doing actual well based comprehensive business helping work - but you have to do something in a very dumbed down way because the organization is built in a way to only accept small changes to the state of the art.
It's not just "can these organizations produce brilliant output?" but "can they produce quality output?" I think you can take a lot of pride in doing ordinary things properly and giving people good experiences.
I stayed at a major chain hotel this weekend and it was a fine stay, the staff was great, but... there were just numerous little tech problems. Like the USB chargers had bad connections so I plugged in my phone overnight and it didn't charge and the next morning I found I had to twist the connector to get it to work. And then when I tried to connect to the WiFi with a Steam Deck [1] it wanted my personal info to join their rewards program, but the complicated Javascript-based dropdown menu to pick a state barely worked and after a minute of screwing with it I was able to pick the wrong state but not pick my real state so I looked up a zip code in that state and entered it.
When I got home I got an email from "no-reply@thathotelchainfoundedbyparishiltonsgreatgrandfather.com" gushing about how they want me to have the perfect experience and how badly they want to hear from me. Like yeah, they want me to call their 800 number and give me a piece of my mind.
It bugs me because I spend my day fixing problems with Javascript apps and I know all about those overcomplicated dropdowns. I get the feeling that if a staff member screwed up they'd be held accountable but people act like technology problems are like the weather and there is nothing we can do about it.
[1] granted an unusual device BUT... I don't travel with a laptop anymore, don't need to connect my phone with WiFi in 5G country and may or may not connect my iPhone. They could have just used the <select> that comes with HTML and it would have "just worked" and today you have so many options to style those with CSS
Yeah, something like the Apollo project has an exciting and profound enough destination/vision that it acts like a forcing function that herds all the cats.
The thing I've taken away most from my multidecade career is that the hardest part is getting any group of people all marching in the same direction, of their own volition. Everyone's motivations always differ. And leadership that just tries to force one direction almost always fails to consider enough viewpoints. And the alternatives, a deliberate rhizomatic chaos, or cutthroat competition,
can be entirely demoralizing.
I always take time to look at those photos when I see them making the rounds.
Such a brilliant person, such an incredible body of work. And yet she indulges in a fun and silly photo shoot. It's a wonderful moment of humanity, and a reminder that the history of computer science is fundamentally about people.
She did! A few years ago I actually tracked down the source of that, which was an interview done for an obscure textbook and republished it on my blog if you are interested in learning more: https://catskull.net/interview-with-margaret-h-hamilton.html
And gate-kept by just as many. I wonder what she'd take more issue with. My understanding is she wanted to elevate people who work on software, not draw a line around it.
If I had the option I would prefer the term "engineer" be gatekept.
Terminology can help elevate something that's often overlooked, but if every programmer gets called a "software engineer" there's no way to distinguish the special stuff.
It is not a protected title in the U.S., China, or India, and yet you could say those are three countries most responsible for writing the software that the rest of the world uses. I would argue there is some connection.
It is easy to see how gatekeeping is particularly valuable for those with the means to distinguish themselves. But for the rest of us, people who want to work on or consume a product, does a field benefit more from having an open gate or closed?
If the title is backed by professional standards, standards by which someone can lose the title and be held legally liable, then I can see the gatekeeping as valuable. If it is used to restrict who can write software, then I would see it as detrimental.
That seems like the best way to parse the issue. To push back on my earlier point, some kind of standards enforcing mechanism doesn't have to be exclusionary as long as the path to earning the credential is open to everyone. It is probably more important now than it has ever been, since anyone can produce code now without understanding it.
The use of engineer as a title is endemic in some industries that don’t involve software. A mechanical superintendent at a drilling company I worked for like to refer to (drilling) mud “engineers” as mud salesmen because they were always trying to sell you more product.
You only need a P.E license if you are going to perform certain specific tasks. For example, in some jurisdiction, plans for a building above a certain height or floor size must be signed by a licensed P.E.
Not all engineering disciplines are covered by a P.E exam.
> I believe in some European countries you’re not allowed to call yourself any kind of “Engineer” without being a member of a professional body?
> So ironically if that was the case Margaret Hamilton would not have been allowed to coin the term
Had she been in Europe, she would not have been a part of the Apollo project, something so cutting edge it required new disciplines to be invented like Software Engineering, for the term to be coined in the first place.
At the time it was mostly hardware engineers who did this, along with people with math background (especially discreete math). Most of the cutting edge applications for computers were in numerical simulation for engineering, so most software engineers would have been electrical/electronics engineers.
There have been accredited Software Engineering programs in Canada for more than 20 years now.
So are you okay with actual engineers having a problem with the term used in software since you support gatekeeping? Engineer is a term that was used far before software was a thing. So if you support gatekeeping, you should let engineering refer to "actual work" not "code" and find a new term that doesn't engulfs the "original meaning".
Or just accept terms change as society and technology does.
> Engineer is a term that was used far before software was a thing. So if you support gatekeeping, you should let engineering refer to "actual work" not "code"
This is so jumbled. You mean to say that before software, all work was physical? Nah, engineers spent and spend a lot of time at the drawing board, too. It's just that they're not sitting at the plastic table with a sticker of a dog with a toolbox on it.
If you don't follow rules and practices that are external to you and your employer, as you might in aviation or nuclear reactor software, there's not even a chance it's engineering. It can be "software engineering", sure, just the same way "software architect" is not an "architect".
> NCEES will discontinue the Principles and Practice of Engineering (PE) Software Engineering exam after the April 2019 exam administration. Since the original offering in 2013, the exam has been administered five times, with a total population of 81 candidates.
If you don't want the same rigor, if you can't handle the same rigor, you don't get the same respect. Because you don't deserve it.
>> NCEES will discontinue the Principles and Practice of Engineering (PE) Software Engineering exam after the April 2019 exam administration. Since the original offering in 2013, the exam has been administered five times, with a total population of 81 candidates.
>
> If you don't want the same rigor, if you can't handle the same rigor, you don't get the same respect. Because you don't deserve it.
It's an interesting opinion, but the reason nobody took the exam is that, unlike other PE disciplines, there are no jurisdictions with legal requirement to hold a PE license to write software.
For example, here for a building to be constructed, the plans need to be approved by a licensed PE if it's above a certain height and footprint. Note that you only need one PE to approve, not that all engineers working on the design have to hold PE licenses.
That's just your opinion. If you support gatekeeping, you support retaining the original meaning of words. The original meaning of engineering did not include software.
So it is a contradiction if you support gatekeeping but also only when its convinient to you.
It doesn't have to be that binary. The important part of the meaning is the rigor and responsibility, not the field. Actual engineering has expanded to new fields multiple times.
And if the "convenient to you" point is also supposed to apply to me, nope not at all. My programming would not qualify.
> A professional engineer is competent by virtue of his/her fundamental education and training to apply the scientific method and outlook to the analysis and solution of engineering problems. He/she is able to assume personal responsibility for the development and application of engineering science and knowledge, notably in research, design, construction, manufacturing, superintending, managing, and in the education of the engineer. His/her work is predominantly intellectual and varied and not of a routine mental or physical character.
[..]
> His/her education will have been such as to make him/her capable of closely and continuously following progress in his/her branch of engineering science by consulting newly published works on a worldwide basis, assimilating such information, and applying it independently. He/she is thus placed in a position to make contributions to the development of engineering science or its applications. His/her education and training will have been such that he/she will have acquired a broad and general appreciation of the engineering sciences as well as thorough insight into the special features of his/her own branch.
If programmers can't be bothered, if their employers don't want that, either (if not even less), and yet you say times just magically change, so now people who don't fit that description get called engineers -- how do you call those who do fit that description, who still do those things? "Real engineers"? "Classic engineers?" I don't even care, but you gotta have something, you can't just pretend the real, practical, night and day difference between these things doesn't exist.
> There are several places where the use of engineer is often used improperly. They include:
> Software or data engineer: In most provinces*, unless someone is licensed with a provincial or territorial engineering regulator, they cannot use the title engineer, or any variation. This applies even if the title is assigned by the employer. Alternative titles can include:
> Data analyst, Data scientist, Software specialist, Software technician, Data technologist, Data manager, Data technical expert.
As for Missouri:
> [..] any person using the word "engineer", "engineers", or "engineering", alone or preceded by any word, or in combination with any words, may do so without being subject to disciplinary action by the board so long as such use is reflective of that person's profession or vocation and is clearly not indicating or implying that such person is holding himself or herself out as being a professional engineer or is willing or able to practice engineering as defined in this section
So I say the title "software engineer", in the slop hallucination sense it's too often used, where the sources either don't exist or say the opposite when you look stuff up, carries no information, other that a person is dishonest, or got fooled into repeating something dishonest. They may or may not be a programmer, they may be a man or a woman, but they're a charlatan or victim of charlatans for sure. And furthermore, the petty and stupid way people react to this fact being pointed out means they either have bad motives or Stockholm syndrome. I don't care which is which, since both are wrong.
> During the early days of Apollo, software was not taken as seriously as other engineering disciplines. Though in fact we had a complex system of systems, we weren’t getting credit for what was a legitimate field. It was out of desperation I came up with the term, to say: “Hey, we’re engineering too.” It was an ongoing joke for a long time. Then one day in a meeting, one of the most respected hardware gurus explained to everyone that he agreed with me. The process of building software should also be considered an engineering discipline, just like with hardware. It was a memorable moment.
The idea that it was believed you could build a reliable and deterministic system without proper engineering methods, today, would get a laugh out of most people in the industry. Interesting how the times have changed.
... an audacious choice of words according to the Austrian association of (real) engineers that get all red-faced and jittery even thinking about it! These peasants, bah, they can't even...
In Levy's "Hackers" there is a story about late night hacking on the TX-0 that fouled-up some weather simulation code an academic user of the computer was running. After hearing this oral history I believe Margaret was the programmer and the code was for Prof. Edward Lorenz.
A fascinating potential link between the two famous popular books on early computing and mathematics, 'Hackers', and 'Chaos' by James Gleick (two books that shaped my teenage years fwiw).
Is the link to Edward Lorenz just a guess based on the name and subject matter of the project given in the Hackers extract? Or do you have information from some other source that Margaret Hamilton wrote code for Lorenz?
Her story and her work is so inspiring. And I feel a bit sad reading about it...
When I started working on this field I dreamt of working on things like that. Not sending anything to the moon, but code that would achieve difficult stuff, challenging tasks, things I would be proud of.
Today I mostly do silly APIs, and with AI is worse and worse... I wonder if there are still jobs where you have to do novel stuff, new algorithms, more like a scientific approach to the code, instead of just deploy the same thing every other company has already done.
I would suggest to go work for Hardware startups and deep-tech. Think quantum computing, advanced robotics, fusion/nuclear, new space. Most of the algorithms ran there are constrained and new, and having a physical system with limited computation/speed makes for a interesting challenge, while still "achieving difficult stuff".
Yes, there are still jobs where you have to do novel and interesting things. It is hard to compare these to the work the Draper Lab did, but that was an exceptional moment in time that an exceptional group of people were able to do because they were at the right place at the right time.
Much of the interesting stuff I was able to do in the past was a result of being at the right place at the right time, but others were because I took some wild chances. I realize it can be a privilege to take wild chances and it isn’t an option for many.
When I read this site, or the media in general, AI exuberance and/or doom and gloom is everywhere. I also felt like the opportunities you are thinking about are vanishing. My current job is actually pretty exciting to me; building a new distributed audio software and hardware solution. The hardware element makes it very real; there are no endless cloud compute resources to help out. I guess what I am saying there still seems to be interesting and challenging tasks out there, but the green fields do seem to be vanishing.
Some people hate palantir, but that is their philosophy. That smart people should be helping to solve problems for the government rather than just working on selling more ads.
Hamilton invented the idea of error handling in software, and that error handling in the Apollo computer is why Buzz Aldrin was able to handle the error 1201/1202 in the minutes before the Eagle landed on the moon, instead of having to abort the mission.
Certainly that could be described as "error handling", but I would describe what saved the landing as priority scheduling combined with restart protection.
At the dawning of the technological age that would change the word in some many ways. Like the quote infers, everything they did was something nobody had before.
You think of the immense advantages we have now whereas back then, they had none. Which makes her contributions as a scientist that much heavier and important.
Oh, at least since the industrial revolution, any given year has had the dawning of some technology or other. Most technological revolutions don't look like much when they're small. I don't think that most people at the time of the moon landing thought much of software. Maybe of computers the hardware, but not software.
First thing I thought of, too. "Who? ...Wait, not the cool book chick!"
Tangential: the software documented in the books next to her were likely developed with a level of rigor that consumer software can only dream of, per the seminal article on similar matters: https://www.eng.auburn.edu/~kchang/comp6710/readings/They%20...
The term she coined for it was "man-rated". Meaning that it had been tested rigorously enough to be trusted to keep humans alive.
During the Apollo 11 descent to the lunar surface, Buzz Aldarin pressed a button to display altitude and position during the landing sequence. As it turns out, this was the 8th task the Apollo 11 lander's guidance computer was asked to run, and it was only capable of running 7 tasks in real-time. Thanks to Hamilton and her team's priority scheduler, the guidance computer threw an alarm, killed the lowest priority task, and then resumed the execution of the other 7. If that hadn't been programmed to rescue itself like that, the computer would have crashed, and the Apollo 11 lander would not likely not have been the success that it was.
That story is easy to understand and thus catchy, but it is not true. The cause of those 1201 and 1202 alarms is a lot more complex, but well worth taking the time to understand if you are into the topic. Wikipedia offers a short description [1] to get you started.
That does not seem like particularly notable example of foresight & robustness, given that it’s such a low number of maximum tasks, and such a fundamental & frequently used element of its operation.
Like it wouldn’t even be describable as a “rescue itself” if the response was simply “No. Too many jobs running. Please kill one to continue”
> “No. Too many jobs running. Please kill one to continue”
A thing no other computer had ever done before, so, they had to come up with the idea in the first place - a brand new idea. But it was not only that - IIRC, the alarm happened when the OS (a tiny sliver of software not many computers even had at the time) skipped a less important task so it could run the more important ones before their configured deadlines.
The Apollo Guidance Computer had 4KB of RAM and 16KB of ROM. Can you write a scheduler that would execute 8 programs related to landing on the moon in 4KB?
An asynchronous scheduler with task priority, interrupts, and real-time response. That goes on a spaceship with less than 70 Watts of power available for the computer. That weighed about 70 pounds. When there has never been that sort of a multi-tasking computer controlled avionics before.
At a time when the contemporary computer systems that used asynchronous, priority-scheduled multitasking operating systems were things like IBM OS/360 mainframes and DEC PDP-6/PDP-10 minicomputers.
It was like having an Apple II in mid 1960s with double the word size.
And with a ROM that had to be hand sewn. No flash updates, just "little old ladies" working in a former bra factory for a defense contractor (and huge tax payer expense if any mistakes needed to be debugged).
Every 1970s videogame has some sort of scheduler that moves actors, draws the screen, and play sound. Depending on the computer, it might be very easy (some could interrupt when the VDP got to a specific spot) or require you to count cycles. If, for instance, your game is for an Apple II and you have background music, you need to hit the speaker at the frequency of the currently playing note WHILE you move things, do physics, and redraw the screen. And you need to count cycles, because there is no reliable counter you could use (I remember how awesome it'd be if I could write 0 to a memory location and read it later to know how many clock cycled passed, or one I could read to get which scan line of the image the video hardware was outputting).
I mean, the implementation can be incomprehensibly impressive, but as an example of “man-rated” — being sufficiently robust — rejecting the request would be sufficient and I suspect this was an obvious place to have some kind of handling for. If there were no handler of any kind in this position, it’d be unforgivable in modern, far less robust software.
The kind of example for man-rated I was expecting would be dealing with really nutty edge cases (perhaps like correctly operating under arbitrary bitflips) or the LISP recovery system from Deep Space 1.
Handling an expected error condition under normal operation is not, in my mind, a good example of man-rated robustness. It might be a good example of other things.
You make it robust by making it simple. Simple to implement, simple to reason about, and simple to debug. They were not only programming an existing computer, they were also more or less defining the computer and this allows some hardware-software co-evolution. In cases like these, the hardware is frozen well before the software is close to ready, so you might need to do some workarounds.
> Handling an expected error condition under normal operation
Nothing in the Apollo program was "normal operation" by any standard. The thing is the alarm elegantly - and correctly - handled a situation that should never have happened in the operation, that only happened because the simulators the procedures were developed against did not accurately account for the workload of having both docking and landing radars on at the same time (IIRC, this was the issue).
This kind of robustness in the face of unexpected misuse is required if you want to qualify your hardware as "man-rated".
That’s the missing bit in the original post; if exactly 7 tasks was intended to ever be possible to run (as in, it logically doesn’t make sense for an 8th to exist), and they tossed in a scheduler anyways, then that’s man-rated thinking.
I had read the setup as the 8th task being user error (you have 20 things to do, I can only run 7 at a time, and it’s an user error to submit the 8th task while the 7 are running)
That is an excellent article and I’d like to read more. Are there other resources about the shuttle software development or projects with a similar level of software engineering?
> The pic here is often people's first intro to her
Why link to an article instead of an actual picture?
The page you linked failed to show any image without JS enabled (although my ad blocker might share some of the blame, there are a handful of trackers on that site) and the article doesn't link directly to it either. I'm guessing you mean the pic here: https://www.thetechoutlook.com/wp-content/uploads/2023/01/Ma...
Yeah, when I first saw the headline, I was momentarily confused because I thought she was already dead and didn’t know that she had a career beyond acting but then anything is possible. https://en.wikipedia.org/wiki/Hedy_Lamarr
I feel very sad. I always wished I could meet her and have a little talk. She'll be forever remembered thanks to that coolest badass picture of her. Om shanti!
If anyone wants to get a deeper understanding of the Apollo Guidance Computer I can recommend the book "Digital Apollo" by David A. Mindell. It puts the AGC into the context of the fly-by-wire efforts that started with airplanes and moved on to spacecraft.
The book "The Apollo Guidance Computer: Architecture and Operation" by Frank O'Brien is also good and goes into more technical detail. I'm told he gets a few things wrong, but it's a generally good treatment. There are several videos on YouTube that discuss the AGC at various levels of detail, including the excellent series by CuriousMarc where he and his team restore an AGC into working order, an astonishing accomplishment.
I am extremely sorry to hear of Ms. Hamilton's passing. I will be sure to tell my daughters in the morning. I told them a bit about her. They found the life size cardboard cutout at the Computer History Museum in Roswell, GA, very interesting. They love the Apollo section of the exhibit.
I don't usually correct this, but in her iconic photo she's standing next to printed output of an Apollo simulator run, not the actual source code for the AGC or lunar module.
Edit: this may or may not be true. From what I can find it's probably a combination of both.
IIRC she was running the simulation side of the lab that produced the AGC and LEM guidance software at the time of Apollo 11, then the AGC side, then the unified lab when it was reorganized in 1970.
A link has been removed from other comments which argues with primary sources that she did not participate in the moon landing project to the extent suggested here. Her rise in popularity coincided with a Wikipedia effort to identify "overlooked heroes" in math and science.
I was talking about timing of the HN comment, not the tweet.
As you can easily see from the HN thread, yes, it is false that she was (as claimed in the tweet) hired for an entry level role in 1968. See https://news.ycombinator.com/item?id=50002873
Who she was married to is neither here nor there, and you are doing your case no favors by fixating on that.
That's already in the comment that I linked to. There are records of her contributing to the codebase as early as 1966, and she's cced in the minutes of a senior management meeting in 1967, so the claim in the tweet that she was hired for an entry-level role in 1968 is clearly false. As is the claim that "her name does not appear [on the command module software] until 1969".
Correction accepted. She was hired earlier than the tweet said. The outstanding information is that she became the manager in the last 3 months before the event. In other words, the vast majority of development did not occur under her “lead”. The comment you’re holding up also acknowledges this overstatement.
Now I don’t know about you, but I think she still has a pretty cool job and did cool things. Why do we need to exaggerate?
>The outstanding information is that she became the manager in the last 3 months before the event
No, this is not outstanding. The comment I linked to already pointed out that Hamilton is shown as the head of CSM programming in the following org chart dating 9/30/68. Apollo 11 launched July 1969.
That org chart of course gives the latest possible date of her appointment. The general consensus appears to be that she was appointed to this position in late 1967 (see footnote 102 of https://www.ibiblio.org/apollo/Documents/Birth%20of%20Softwa...) And we know from the source code that her overall involvement in the project dates to before 1967.
As for overstatements and exaggerations: by all means say what you like about Margaret Hamilton if it's true and you've checked that it's true. However, the claims that you keep repeating from the tweet aren't true, which is why the comment containing it got flagged. If you want to post a considered comment about how some aspects of Hamilton's role have been exaggerated, then go do that, rather than flogging the dead horse of this trashy tweet.
Not really. Here's what you claimed in your comment:
>A link [...] argues [...] that she did not participate in the moon landing project to the extent suggested here [i.e. in the article]
And what do we find in the article? A statement of exactly the facts we've tediously established above:
> Hamilton worked first on the software for the uncrewed Apollo missions and then was promoted into leading the team developing the on-board flight software for the crewed missions. By 1968 she was assistant director in charge of the Command and Service Module team, and more than 400 people were working on Apollo’s software.
> In the early days of this project, software was treated like an adopted child and not taken as seriously as other engineering disciplines, such as hardware engineering, and was thought of as art and magic, not science. I have always believed that art and science were involved in its creation, but at the time most people thought otherwise. Knowing this, I fought to legitimize software so that both software engineering and those who built it would receive the respect they deserved, so I began using the term “software engineering” to differentiate it from hardware and other forms of engineering. When I first started using these words, they were considered funny. It was a running joke for a long time. They liked to make fun of my radical ideas. Software eventually earned the same respect as any other discipline.
> During the early days of Apollo, software was not taken as seriously as other engineering disciplines. Though in fact we had a complex system of systems, we weren’t getting credit for what was a legitimate field. It was out of desperation I came up with the term, to say: “Hey, we’re engineering too.” It was an ongoing joke for a long time. Then one day in a meeting, one of the most respected hardware gurus explained to everyone that he agreed with me. The process of building software should also be considered an engineering discipline, just like with hardware. It was a memorable moment.
Not a direct answer to your question per se, but I would wholeheartedly recommend Frank O'Brien's "The Apollo Guidance Computer: Architecture and Operation" (ISBN 978-1-4419-0876-6).
It reads like a lead engineer walking a new hire through the codebase.
There are a number of hobbyists who specialize in restoring components of the Apollo computer systems. They do some very impressive work and there are lots of cool demo videos on Youtube.
I've talked a lot about PRIDE, Milt Bryce's information-systems methodology that was perhaps the first commercially available, rigorous methodology for developing software and the first serious attempt to transform information systems development in the commercial sector from an arcane art into a proven, repeatable science. It really has few forbears.
But... Margaret Hamilton was one of those forbears. She got the ideas out there; PRIDE just commercialized them and made them palatable to business IT shops.
It's very telling of this website and the quality of the mainstream disinformation that most people here fall for this absolutely manufactured character backstory. Guys, read original source material! She was just some random unimportant manager with negligible technical contributions.
> Original Apollo 11 guidance computer (AGC) source code for Command Module (Comanche055) and Lunar Module (Luminary099). Digitized by the folks at Virtual AGC and MIT Museum.
- They probably should have landed that payload gently on the moon in order to not collapse any existing cave systems in order to develop competency to land the ISS on the moon.
- There is a new orbital deceleration and landing approach for the moon;
Margaret, along with Ada Lovelace and Grace Hopper, was such a huge inspiration to me as a young engineer. I'm honored to be in a field pioneered by women such as them, even if it's turned into a male-dominated field today. Rest in peace to a real legend.
Fun Fact: "Computer" was a profession before it was a thing. Computers did math on complex systems, often with the help of sin/cos/tan tables and the like. And they were usually women.
For years, I took piano lessons from an incredible teacher in Seattle who actually happens to be Margaret Hamilton’s sister. Looking back, I had no idea just how deeply she would impact both me and my family.
I was able to meet her, and others who worked at the MIT Instrumentation/Draper Lab, as a start-up I was with received funding from a VC firm founded by other Draper Lab members from the Apollo era. I was totally out of my league talking with them. This was thirty years ago and I remember her talking about formalized control systems. It was fascinating but went totally over my head. My startup was a fairly silly multimedia CD-ROM company and I was just happy to be in the room.
Thanks for sharing this story from this point of view so genuinely. I really enjoyed it more than I thought I would enjoy any comments under this sad news.
I think projects like Apollo are important in a way that they let extraordinary people to use their capabilities.
I feel from personal experiences as well as from many close people that often the corporate world really struggles on dealing with talent. And I don't mean autistic savants doing obscure things but relatively normal but very competent people doing actual well based comprehensive business helping work - but you have to do something in a very dumbed down way because the organization is built in a way to only accept small changes to the state of the art.
It's not just "can these organizations produce brilliant output?" but "can they produce quality output?" I think you can take a lot of pride in doing ordinary things properly and giving people good experiences.
I stayed at a major chain hotel this weekend and it was a fine stay, the staff was great, but... there were just numerous little tech problems. Like the USB chargers had bad connections so I plugged in my phone overnight and it didn't charge and the next morning I found I had to twist the connector to get it to work. And then when I tried to connect to the WiFi with a Steam Deck [1] it wanted my personal info to join their rewards program, but the complicated Javascript-based dropdown menu to pick a state barely worked and after a minute of screwing with it I was able to pick the wrong state but not pick my real state so I looked up a zip code in that state and entered it.
When I got home I got an email from "no-reply@thathotelchainfoundedbyparishiltonsgreatgrandfather.com" gushing about how they want me to have the perfect experience and how badly they want to hear from me. Like yeah, they want me to call their 800 number and give me a piece of my mind.
It bugs me because I spend my day fixing problems with Javascript apps and I know all about those overcomplicated dropdowns. I get the feeling that if a staff member screwed up they'd be held accountable but people act like technology problems are like the weather and there is nothing we can do about it.
[1] granted an unusual device BUT... I don't travel with a laptop anymore, don't need to connect my phone with WiFi in 5G country and may or may not connect my iPhone. They could have just used the <select> that comes with HTML and it would have "just worked" and today you have so many options to style those with CSS
Yeah, something like the Apollo project has an exciting and profound enough destination/vision that it acts like a forcing function that herds all the cats.
The thing I've taken away most from my multidecade career is that the hardest part is getting any group of people all marching in the same direction, of their own volition. Everyone's motivations always differ. And leadership that just tries to force one direction almost always fails to consider enough viewpoints. And the alternatives, a deliberate rhizomatic chaos, or cutthroat competition, can be entirely demoralizing.
Related:
Margaret Hamilton Led the NASA Software Team That Landed Astronauts on the Moon - https://news.ycombinator.com/item?id=36720448 - July 2023 (32 comments)
Margaret Hamilton oral history (2017) - https://news.ycombinator.com/item?id=30668338 - March 2022 (7 comments)
An interview with Margaret Hamilton - https://news.ycombinator.com/item?id=20453737 - July 2019 (12 comments)
Grace Hopper and Margaret Hamilton Awarded Presidential Medal of Freedom - https://news.ycombinator.com/item?id=12991524 - Nov 2016 (70 comments)
Profile of Margaret Hamilton, programmer of the Apollo software - https://news.ycombinator.com/item?id=10379904 - Oct 2015 (58 comments)
Margaret Hamilton, lead software engineer, Project Apollo - https://news.ycombinator.com/item?id=8735912 - Dec 2014 (94 comments)
I will forever keep the image in my mind of her standing next to the Apollo program code books.
https://news.mit.edu/2016/scene-at-mit-margaret-hamilton-apo...
I always take time to look at those photos when I see them making the rounds.
Such a brilliant person, such an incredible body of work. And yet she indulges in a fun and silly photo shoot. It's a wonderful moment of humanity, and a reminder that the history of computer science is fundamentally about people.
Thanks for sharing, something incredibly beautiful about her surfaces through these photos.
icon
Margaret Hamilton actually coined the term "software engineer" IIRC. Rest in peace
She did! A few years ago I actually tracked down the source of that, which was an interview done for an obscure textbook and republished it on my blog if you are interested in learning more: https://catskull.net/interview-with-margaret-h-hamilton.html
out of curiosity, how'd you get your hands on the textbook?
This is incredible, thanks a lot for making it available for us.
Little did she know, the term would be co-opted by guys changing the color of a button on a web site.
And gate-kept by just as many. I wonder what she'd take more issue with. My understanding is she wanted to elevate people who work on software, not draw a line around it.
If I had the option I would prefer the term "engineer" be gatekept.
Terminology can help elevate something that's often overlooked, but if every programmer gets called a "software engineer" there's no way to distinguish the special stuff.
It is a protected title in some countries but not the UK (and I don’t think the US either?).
I believe in some European countries you’re not allowed to call yourself any kind of “Engineer” without being a member of a professional body?
So ironically if that was the case Margaret Hamilton would not have been allowed to coin the term
It is not a protected title in the U.S., China, or India, and yet you could say those are three countries most responsible for writing the software that the rest of the world uses. I would argue there is some connection.
It is easy to see how gatekeeping is particularly valuable for those with the means to distinguish themselves. But for the rest of us, people who want to work on or consume a product, does a field benefit more from having an open gate or closed?
If the title is backed by professional standards, standards by which someone can lose the title and be held legally liable, then I can see the gatekeeping as valuable. If it is used to restrict who can write software, then I would see it as detrimental.
That seems like the best way to parse the issue. To push back on my earlier point, some kind of standards enforcing mechanism doesn't have to be exclusionary as long as the path to earning the credential is open to everyone. It is probably more important now than it has ever been, since anyone can produce code now without understanding it.
The use of engineer as a title is endemic in some industries that don’t involve software. A mechanical superintendent at a drilling company I worked for like to refer to (drilling) mud “engineers” as mud salesmen because they were always trying to sell you more product.
> I don’t think the US either?
"Engineer" isn't in the US. P.E is.
You only need a P.E license if you are going to perform certain specific tasks. For example, in some jurisdiction, plans for a building above a certain height or floor size must be signed by a licensed P.E.
Not all engineering disciplines are covered by a P.E exam.
> I believe in some European countries you’re not allowed to call yourself any kind of “Engineer” without being a member of a professional body? > So ironically if that was the case Margaret Hamilton would not have been allowed to coin the term
Had she been in Europe, she would not have been a part of the Apollo project, something so cutting edge it required new disciplines to be invented like Software Engineering, for the term to be coined in the first place.
In France it's not about being a member of a professional body, but you need to have an engineer degree to be called an engineer.
It's a master's degree but not all masters are engineer degrees. It's from the "Grandes Ecoles".
And yes, most software engineers in France have an engineer degree.
I believe it is protected in some states. https://ij.org/press-release/oregon-engineer-wins-traffic-li...
The UK does have professional bodies and memberships of those but the terms are more specific, such as "Chartered Engineer".
It is protected in Canada as well.
In Canada, I was once hired as a Data Engineering Specialist because they couldn't use the term Data Engineer.
The college course I did was Software Engineering Technology because they could not use Software Engineering.
Engineering courses are regulated and regularly audited because engineering programs are accredited.
One of the requirements to become licensed (if one desires to) is to graduate from an accredited programs.
Several programs have been accredited for software engineering for 20+ years now.
https://engineerscanada.ca/accreditation/accredited-programs...
Well, there couldn't be a school to become a software engineer if she was the one coining the term.
At the time it was mostly hardware engineers who did this, along with people with math background (especially discreete math). Most of the cutting edge applications for computers were in numerical simulation for engineering, so most software engineers would have been electrical/electronics engineers.
There have been accredited Software Engineering programs in Canada for more than 20 years now.
https://engineerscanada.ca/accreditation/accredited-programs...
How useful is that to this woman who would have needed one in 1950?
True, I'll edit the first part of my comment
Post-AI, the debate feels academic at this point.
Sure?
How would you feel about flying in a plane done with AI without the involvement of any engineers?
today, bad. tomorrow, better than if a human built it
And when is this tomorrow?
So are you okay with actual engineers having a problem with the term used in software since you support gatekeeping? Engineer is a term that was used far before software was a thing. So if you support gatekeeping, you should let engineering refer to "actual work" not "code" and find a new term that doesn't engulfs the "original meaning".
Or just accept terms change as society and technology does.
> Engineer is a term that was used far before software was a thing. So if you support gatekeeping, you should let engineering refer to "actual work" not "code"
This is so jumbled. You mean to say that before software, all work was physical? Nah, engineers spent and spend a lot of time at the drawing board, too. It's just that they're not sitting at the plastic table with a sticker of a dog with a toolbox on it.
If you don't follow rules and practices that are external to you and your employer, as you might in aviation or nuclear reactor software, there's not even a chance it's engineering. It can be "software engineering", sure, just the same way "software architect" is not an "architect".
https://ncees.org/wp-content/uploads/Software-Engineering-ex...
> NCEES will discontinue the Principles and Practice of Engineering (PE) Software Engineering exam after the April 2019 exam administration. Since the original offering in 2013, the exam has been administered five times, with a total population of 81 candidates.
If you don't want the same rigor, if you can't handle the same rigor, you don't get the same respect. Because you don't deserve it.
>> NCEES will discontinue the Principles and Practice of Engineering (PE) Software Engineering exam after the April 2019 exam administration. Since the original offering in 2013, the exam has been administered five times, with a total population of 81 candidates.
>
> If you don't want the same rigor, if you can't handle the same rigor, you don't get the same respect. Because you don't deserve it.
It's an interesting opinion, but the reason nobody took the exam is that, unlike other PE disciplines, there are no jurisdictions with legal requirement to hold a PE license to write software.
For example, here for a building to be constructed, the plans need to be approved by a licensed PE if it's above a certain height and footprint. Note that you only need one PE to approve, not that all engineers working on the design have to hold PE licenses.
And if people called themselves "software doctors" who just happen to be bound by nothing because it's never come up, it would be every bit as bogus.
That's just your opinion. If you support gatekeeping, you support retaining the original meaning of words. The original meaning of engineering did not include software.
So it is a contradiction if you support gatekeeping but also only when its convinient to you.
That is the point I am making.
It doesn't have to be that binary. The important part of the meaning is the rigor and responsibility, not the field. Actual engineering has expanded to new fields multiple times.
And if the "convenient to you" point is also supposed to apply to me, nope not at all. My programming would not qualify.
check this out: https://en.wikipedia.org/wiki/Engineer
> A professional engineer is competent by virtue of his/her fundamental education and training to apply the scientific method and outlook to the analysis and solution of engineering problems. He/she is able to assume personal responsibility for the development and application of engineering science and knowledge, notably in research, design, construction, manufacturing, superintending, managing, and in the education of the engineer. His/her work is predominantly intellectual and varied and not of a routine mental or physical character.
[..]
> His/her education will have been such as to make him/her capable of closely and continuously following progress in his/her branch of engineering science by consulting newly published works on a worldwide basis, assimilating such information, and applying it independently. He/she is thus placed in a position to make contributions to the development of engineering science or its applications. His/her education and training will have been such that he/she will have acquired a broad and general appreciation of the engineering sciences as well as thorough insight into the special features of his/her own branch.
If programmers can't be bothered, if their employers don't want that, either (if not even less), and yet you say times just magically change, so now people who don't fit that description get called engineers -- how do you call those who do fit that description, who still do those things? "Real engineers"? "Classic engineers?" I don't even care, but you gotta have something, you can't just pretend the real, practical, night and day difference between these things doesn't exist.
A deceptive and lazy link.
That's a quote from the 1961 Conference of Engineering Societies of Western Europe and the United States of America, not a dictionary definition.
Canada uses a different definition. The state of Missouri uses another.
About Canada
https://engineerscanada.ca/become-an-engineer/use-of-profess...
> Misuse of the title engineer
[..]
> Areas of concern
> There are several places where the use of engineer is often used improperly. They include:
> Software or data engineer: In most provinces*, unless someone is licensed with a provincial or territorial engineering regulator, they cannot use the title engineer, or any variation. This applies even if the title is assigned by the employer. Alternative titles can include:
> Data analyst, Data scientist, Software specialist, Software technician, Data technologist, Data manager, Data technical expert.
As for Missouri:
> [..] any person using the word "engineer", "engineers", or "engineering", alone or preceded by any word, or in combination with any words, may do so without being subject to disciplinary action by the board so long as such use is reflective of that person's profession or vocation and is clearly not indicating or implying that such person is holding himself or herself out as being a professional engineer or is willing or able to practice engineering as defined in this section
https://revisor.mo.gov/main/OneSection.aspx?section=327.181
So I say the title "software engineer", in the slop hallucination sense it's too often used, where the sources either don't exist or say the opposite when you look stuff up, carries no information, other that a person is dishonest, or got fooled into repeating something dishonest. They may or may not be a programmer, they may be a man or a woman, but they're a charlatan or victim of charlatans for sure. And furthermore, the petty and stupid way people react to this fact being pointed out means they either have bad motives or Stockholm syndrome. I don't care which is which, since both are wrong.
I linked the source, how is that deceptive? You complain about it not being a dictionary definition, but then don't provide one either.
"One who is trained or professionally engaged in a branch of engineering. "
Gains you nothing.
> Canada uses a different definition. The state of Missouri uses another.
So? Are you lazily and deceptively suggesting that makes a difference? Or are you even imagining they are using dictionary definitions?
And then other guys made frontend dev tooling so complicated that it does actually require a software engineer to change the color of a button.
> https://www.theguardian.com/technology/2019/jul/13/margaret-...
>
> During the early days of Apollo, software was not taken as seriously as other engineering disciplines. Though in fact we had a complex system of systems, we weren’t getting credit for what was a legitimate field. It was out of desperation I came up with the term, to say: “Hey, we’re engineering too.” It was an ongoing joke for a long time. Then one day in a meeting, one of the most respected hardware gurus explained to everyone that he agreed with me. The process of building software should also be considered an engineering discipline, just like with hardware. It was a memorable moment.
The idea that it was believed you could build a reliable and deterministic system without proper engineering methods, today, would get a laugh out of most people in the industry. Interesting how the times have changed.
... an audacious choice of words according to the Austrian association of (real) engineers that get all red-faced and jittery even thinking about it! These peasants, bah, they can't even...
There is a very nice oral history the Computer History Museum produced: https://computerhistory.org/blog/margaret-hamilton-in-her-ow...
In Levy's "Hackers" there is a story about late night hacking on the TX-0 that fouled-up some weather simulation code an academic user of the computer was running. After hearing this oral history I believe Margaret was the programmer and the code was for Prof. Edward Lorenz.
A fascinating potential link between the two famous popular books on early computing and mathematics, 'Hackers', and 'Chaos' by James Gleick (two books that shaped my teenage years fwiw).
Is the link to Edward Lorenz just a guess based on the name and subject matter of the project given in the Hackers extract? Or do you have information from some other source that Margaret Hamilton wrote code for Lorenz?
Check out starting on page 10: https://archive.computerhistory.org/resources/access/text/20...
Edit; It looks like I misremembered the machine. Seems like it was the PDP 1.
It's fascinating she was at the intersection of so many foundational points.
Thanks! Truth really is stranger than fiction.
And it seems like she reflected on it quite light-heartedly.
Wow-- I'd forgotten that Levy called Margaret out by name in the book. I also got the machine wrong-- it was the PDP-1, not the TX-0.
Her story and her work is so inspiring. And I feel a bit sad reading about it...
When I started working on this field I dreamt of working on things like that. Not sending anything to the moon, but code that would achieve difficult stuff, challenging tasks, things I would be proud of.
Today I mostly do silly APIs, and with AI is worse and worse... I wonder if there are still jobs where you have to do novel stuff, new algorithms, more like a scientific approach to the code, instead of just deploy the same thing every other company has already done.
I would suggest to go work for Hardware startups and deep-tech. Think quantum computing, advanced robotics, fusion/nuclear, new space. Most of the algorithms ran there are constrained and new, and having a physical system with limited computation/speed makes for a interesting challenge, while still "achieving difficult stuff".
Yes, there are still jobs where you have to do novel and interesting things. It is hard to compare these to the work the Draper Lab did, but that was an exceptional moment in time that an exceptional group of people were able to do because they were at the right place at the right time.
Much of the interesting stuff I was able to do in the past was a result of being at the right place at the right time, but others were because I took some wild chances. I realize it can be a privilege to take wild chances and it isn’t an option for many.
When I read this site, or the media in general, AI exuberance and/or doom and gloom is everywhere. I also felt like the opportunities you are thinking about are vanishing. My current job is actually pretty exciting to me; building a new distributed audio software and hardware solution. The hardware element makes it very real; there are no endless cloud compute resources to help out. I guess what I am saying there still seems to be interesting and challenging tasks out there, but the green fields do seem to be vanishing.
Some people hate palantir, but that is their philosophy. That smart people should be helping to solve problems for the government rather than just working on selling more ads.
May I recommend Caleb Hearth's Don't get distracted ?
https://calebhearth.com/dont-get-distracted
Not everyone is a pacifist.
Unfortunately often the problem seems to be how a government can do more evil.
I mean there are better ways to help society if you are smart and like challenging software projects.
Hamilton invented the idea of error handling in software, and that error handling in the Apollo computer is why Buzz Aldrin was able to handle the error 1201/1202 in the minutes before the Eagle landed on the moon, instead of having to abort the mission.
Certainly that could be described as "error handling", but I would describe what saved the landing as priority scheduling combined with restart protection.
I wonder if that was just an outgrowth of NASA's "plan for failure" ethos.
But, I also wonder if that ethos was apart of early NASA before they had failures to learn from... Hmm...
You are misremembering something you read. Software written in 1950s already had error handling in it.
The mythology is getting out of hand guys
Dang. She was a remarkable stand-out, in fields full of remarkable people.
The pic here is often people's first intro to her https://news.mit.edu/2016/scene-at-mit-margaret-hamilton-apo...
“There was no choice but to be pioneers” is a great line.
At the dawning of the technological age that would change the word in some many ways. Like the quote infers, everything they did was something nobody had before.
You think of the immense advantages we have now whereas back then, they had none. Which makes her contributions as a scientist that much heavier and important.
Oh, at least since the industrial revolution, any given year has had the dawning of some technology or other. Most technological revolutions don't look like much when they're small. I don't think that most people at the time of the moon landing thought much of software. Maybe of computers the hardware, but not software.
They were standing on the shoulders of giants too.
First thing I thought of, too. "Who? ...Wait, not the cool book chick!"
Tangential: the software documented in the books next to her were likely developed with a level of rigor that consumer software can only dream of, per the seminal article on similar matters: https://www.eng.auburn.edu/~kchang/comp6710/readings/They%20...
The term she coined for it was "man-rated". Meaning that it had been tested rigorously enough to be trusted to keep humans alive.
During the Apollo 11 descent to the lunar surface, Buzz Aldarin pressed a button to display altitude and position during the landing sequence. As it turns out, this was the 8th task the Apollo 11 lander's guidance computer was asked to run, and it was only capable of running 7 tasks in real-time. Thanks to Hamilton and her team's priority scheduler, the guidance computer threw an alarm, killed the lowest priority task, and then resumed the execution of the other 7. If that hadn't been programmed to rescue itself like that, the computer would have crashed, and the Apollo 11 lander would not likely not have been the success that it was.
That story is easy to understand and thus catchy, but it is not true. The cause of those 1201 and 1202 alarms is a lot more complex, but well worth taking the time to understand if you are into the topic. Wikipedia offers a short description [1] to get you started.
[1] https://en.wikipedia.org/wiki/Apollo_Guidance_Computer#1201_...
That does not seem like particularly notable example of foresight & robustness, given that it’s such a low number of maximum tasks, and such a fundamental & frequently used element of its operation.
Like it wouldn’t even be describable as a “rescue itself” if the response was simply “No. Too many jobs running. Please kill one to continue”
At that time running that many concurrent tasks on such anemic hardware was a small miracle. This wasn't your average linux kernel.
It is infinitely harder to be first. Once it is known that viable path exists, the task becomes a lot easier
> “No. Too many jobs running. Please kill one to continue”
A thing no other computer had ever done before, so, they had to come up with the idea in the first place - a brand new idea. But it was not only that - IIRC, the alarm happened when the OS (a tiny sliver of software not many computers even had at the time) skipped a less important task so it could run the more important ones before their configured deadlines.
You’re forgetting this had never been done before.
The Apollo Guidance Computer had 4KB of RAM and 16KB of ROM. Can you write a scheduler that would execute 8 programs related to landing on the moon in 4KB?
An asynchronous scheduler with task priority, interrupts, and real-time response. That goes on a spaceship with less than 70 Watts of power available for the computer. That weighed about 70 pounds. When there has never been that sort of a multi-tasking computer controlled avionics before.
At a time when the contemporary computer systems that used asynchronous, priority-scheduled multitasking operating systems were things like IBM OS/360 mainframes and DEC PDP-6/PDP-10 minicomputers.
It was like having an Apple II in mid 1960s with double the word size.
I used san RTOS written in assembly for the Atmel AVR. AvrX (by John Barello)
You can look at the code here.
https://github.com/kororos/AvrX
Compiles down under 2k.
The thing is while actually doing that isn't crazy hard, they did that with hardly any existing examples to go by. And without modern tools.
And with a ROM that had to be hand sewn. No flash updates, just "little old ladies" working in a former bra factory for a defense contractor (and huge tax payer expense if any mistakes needed to be debugged).
Yes.
Every 1970s videogame has some sort of scheduler that moves actors, draws the screen, and play sound. Depending on the computer, it might be very easy (some could interrupt when the VDP got to a specific spot) or require you to count cycles. If, for instance, your game is for an Apple II and you have background music, you need to hit the speaker at the frequency of the currently playing note WHILE you move things, do physics, and redraw the screen. And you need to count cycles, because there is no reliable counter you could use (I remember how awesome it'd be if I could write 0 to a memory location and read it later to know how many clock cycled passed, or one I could read to get which scan line of the image the video hardware was outputting).
And it ran at 0.043 MIPS. Each task would get maybe 5000 instructions per second, minus scheduler overhead.
I mean, the implementation can be incomprehensibly impressive, but as an example of “man-rated” — being sufficiently robust — rejecting the request would be sufficient and I suspect this was an obvious place to have some kind of handling for. If there were no handler of any kind in this position, it’d be unforgivable in modern, far less robust software.
The kind of example for man-rated I was expecting would be dealing with really nutty edge cases (perhaps like correctly operating under arbitrary bitflips) or the LISP recovery system from Deep Space 1.
Handling an expected error condition under normal operation is not, in my mind, a good example of man-rated robustness. It might be a good example of other things.
You make it robust by making it simple. Simple to implement, simple to reason about, and simple to debug. They were not only programming an existing computer, they were also more or less defining the computer and this allows some hardware-software co-evolution. In cases like these, the hardware is frozen well before the software is close to ready, so you might need to do some workarounds.
> Handling an expected error condition under normal operation
Nothing in the Apollo program was "normal operation" by any standard. The thing is the alarm elegantly - and correctly - handled a situation that should never have happened in the operation, that only happened because the simulators the procedures were developed against did not accurately account for the workload of having both docking and landing radars on at the same time (IIRC, this was the issue).
This kind of robustness in the face of unexpected misuse is required if you want to qualify your hardware as "man-rated".
That’s the missing bit in the original post; if exactly 7 tasks was intended to ever be possible to run (as in, it logically doesn’t make sense for an 8th to exist), and they tossed in a scheduler anyways, then that’s man-rated thinking.
I had read the setup as the 8th task being user error (you have 20 things to do, I can only run 7 at a time, and it’s an user error to submit the 8th task while the 7 are running)
That is an excellent article and I’d like to read more. Are there other resources about the shuttle software development or projects with a similar level of software engineering?
she was a straight up fox too, and I can't imagine she'd be offended by that, I mean call me a fox I promise I won't be offended.
also, she should not be confused with the other Margaret Hamilton you might recall
https://facts.net/wp-content/uploads/2024/11/35-facts-about-...
Yeah, no wonder she married her Apollo boss who promoted her into the famed software lead position.
[flagged]
> The pic here is often people's first intro to her
Why link to an article instead of an actual picture?
The page you linked failed to show any image without JS enabled (although my ad blocker might share some of the blame, there are a handful of trackers on that site) and the article doesn't link directly to it either. I'm guessing you mean the pic here: https://www.thetechoutlook.com/wp-content/uploads/2023/01/Ma...
This picture is the service image in the carousel at the top of tfa.
I previously made a short comic about Margaret Hamilton and her work on the Apollo flight software: https://fosscomics.com/posts/5.%20The%20Beginning%20of%20Sof... Sharing it again in her memory. May she rest in peace.
I like it, thanks for sharing!
Also the name of the actress who played Wicked Witch of the West in Wizard of Oz, who died in 1985.
https://en.wikipedia.org/wiki/Margaret_Hamilton_(actress)
I am pleased to have now learned more about the Margaret Hamilton of "software engineering."
Yeah, when I first saw the headline, I was momentarily confused because I thought she was already dead and didn’t know that she had a career beyond acting but then anything is possible. https://en.wikipedia.org/wiki/Hedy_Lamarr
I feel very sad. I always wished I could meet her and have a little talk. She'll be forever remembered thanks to that coolest badass picture of her. Om shanti!
If anyone wants to get a deeper understanding of the Apollo Guidance Computer I can recommend the book "Digital Apollo" by David A. Mindell. It puts the AGC into the context of the fly-by-wire efforts that started with airplanes and moved on to spacecraft.
The book "The Apollo Guidance Computer: Architecture and Operation" by Frank O'Brien is also good and goes into more technical detail. I'm told he gets a few things wrong, but it's a generally good treatment. There are several videos on YouTube that discuss the AGC at various levels of detail, including the excellent series by CuriousMarc where he and his team restore an AGC into working order, an astonishing accomplishment.
I am extremely sorry to hear of Ms. Hamilton's passing. I will be sure to tell my daughters in the morning. I told them a bit about her. They found the life size cardboard cutout at the Computer History Museum in Roswell, GA, very interesting. They love the Apollo section of the exhibit.
"Because software was a mystery, a black box, upper management gave us total freedom and trust."
If only!
her pic with the stack of printed code will always be iconic.
rest well pioneer.
I don't usually correct this, but in her iconic photo she's standing next to printed output of an Apollo simulator run, not the actual source code for the AGC or lunar module.
Edit: this may or may not be true. From what I can find it's probably a combination of both.
IIRC she was running the simulation side of the lab that produced the AGC and LEM guidance software at the time of Apollo 11, then the AGC side, then the unified lab when it was reorganized in 1970.
These computers didn't have much program or data storage space. The source code can be found on GitHub: https://github.com/chrislgarry/apollo-11
thanks for the correction. learnt something new.
RIP. I'll always remember her iconic pic with the stack of printed code
May her memory be a blessing
Weird, I was thinking about her monumental achievement just a few hours ago.
A link has been removed from other comments which argues with primary sources that she did not participate in the moon landing project to the extent suggested here. Her rise in popularity coincided with a Wikipedia effort to identify "overlooked heroes" in math and science.
The link hasn't been removed; the comment is just flagged and dead. If you have showdead enabled on your account, you can see it here:
https://news.ycombinator.com/item?id=50000624
AFAICT the comment is spreading false claims about Margaret Hamilton at about the worst possible moment, so no surprises that it's been flagged.
So it is false that she married the manager? Is it false that she entered the role after the moon landing project was mostly finished?
> at about the worst possible moment,
The tweet was made in 2023
I was talking about timing of the HN comment, not the tweet.
As you can easily see from the HN thread, yes, it is false that she was (as claimed in the tweet) hired for an entry level role in 1968. See https://news.ycombinator.com/item?id=50002873
Who she was married to is neither here nor there, and you are doing your case no favors by fixating on that.
> you are doing your case no favors by fixating on that.
If it doesn’t matter then surely you have no concerned with sharing it? (with the corrected manager title date)
I think you may have a personal bias on this topic.
That's already in the comment that I linked to. There are records of her contributing to the codebase as early as 1966, and she's cced in the minutes of a senior management meeting in 1967, so the claim in the tweet that she was hired for an entry-level role in 1968 is clearly false. As is the claim that "her name does not appear [on the command module software] until 1969".
Correction accepted. She was hired earlier than the tweet said. The outstanding information is that she became the manager in the last 3 months before the event. In other words, the vast majority of development did not occur under her “lead”. The comment you’re holding up also acknowledges this overstatement.
Now I don’t know about you, but I think she still has a pretty cool job and did cool things. Why do we need to exaggerate?
>The outstanding information is that she became the manager in the last 3 months before the event
No, this is not outstanding. The comment I linked to already pointed out that Hamilton is shown as the head of CSM programming in the following org chart dating 9/30/68. Apollo 11 launched July 1969.
https://www.ibiblio.org/apollo/Documents/ApolloOrg-Group-23B...
That org chart of course gives the latest possible date of her appointment. The general consensus appears to be that she was appointed to this position in late 1967 (see footnote 102 of https://www.ibiblio.org/apollo/Documents/Birth%20of%20Softwa...) And we know from the source code that her overall involvement in the project dates to before 1967.
As for overstatements and exaggerations: by all means say what you like about Margaret Hamilton if it's true and you've checked that it's true. However, the claims that you keep repeating from the tweet aren't true, which is why the comment containing it got flagged. If you want to post a considered comment about how some aspects of Hamilton's role have been exaggerated, then go do that, rather than flogging the dead horse of this trashy tweet.
If you are correct and the real answer is late 1967, then my comment still stands. She wasn’t the manager for even 40% (20%?) of the schedule.
Not really. Here's what you claimed in your comment:
>A link [...] argues [...] that she did not participate in the moon landing project to the extent suggested here [i.e. in the article]
And what do we find in the article? A statement of exactly the facts we've tediously established above:
> Hamilton worked first on the software for the uncrewed Apollo missions and then was promoted into leading the team developing the on-board flight software for the crewed missions. By 1968 she was assistant director in charge of the Command and Service Module team, and more than 400 people were working on Apollo’s software.
Can you explain what is false?
The NYT obituary, for instance, notes that she married her boss. That lines up with many of the complaints in the twitter feed.
There’s already several comments in that thread explaining that the linked X post makes some glaring factual errors.
There is exactly one comment about the post and it only disputes her title at a date. It does not address any of the other information.
https://news.ycombinator.com/item?id=50002873
As I described. Unfortunately neither pieces of information are available for others to read and evaluate.
An absolute titan, a true pioneer. RIP.
According to Wikiquote, she coined the phrase "software engineering": https://en.wikiquote.org/wiki/Margaret_Hamilton
> In the early days of this project, software was treated like an adopted child and not taken as seriously as other engineering disciplines, such as hardware engineering, and was thought of as art and magic, not science. I have always believed that art and science were involved in its creation, but at the time most people thought otherwise. Knowing this, I fought to legitimize software so that both software engineering and those who built it would receive the respect they deserved, so I began using the term “software engineering” to differentiate it from hardware and other forms of engineering. When I first started using these words, they were considered funny. It was a running joke for a long time. They liked to make fun of my radical ideas. Software eventually earned the same respect as any other discipline.
found another retelling: https://www.theguardian.com/technology/2019/jul/13/margaret-...
> During the early days of Apollo, software was not taken as seriously as other engineering disciplines. Though in fact we had a complex system of systems, we weren’t getting credit for what was a legitimate field. It was out of desperation I came up with the term, to say: “Hey, we’re engineering too.” It was an ongoing joke for a long time. Then one day in a meeting, one of the most respected hardware gurus explained to everyone that he agreed with me. The process of building software should also be considered an engineering discipline, just like with hardware. It was a memorable moment.
Is any of the original Apollo code available to read?
https://github.com/chrislgarry/apollo-11
thank you!
Not a direct answer to your question per se, but I would wholeheartedly recommend Frank O'Brien's "The Apollo Guidance Computer: Architecture and Operation" (ISBN 978-1-4419-0876-6).
It reads like a lead engineer walking a new hire through the codebase.
This is a great recommendation. And considering the code base is in assembly, I'll gladly welcome a walkthrough.
Also see this great presentation by Robert Wills on the AGC - https://www.youtube.com/watch?v=B1J2RMorJXM
timmg's video explaining how the AGC worked is one of the better ones I've seen, if you actually want to understand in detail.
There are a number of hobbyists who specialize in restoring components of the Apollo computer systems. They do some very impressive work and there are lots of cool demo videos on Youtube.
Vale.
One of the founders of our industry.
Hamilton didn’t waste her shot
RIP legend.
Noting Ada Lovelace Day was a few days ago also https://findingada.com/.
I've talked a lot about PRIDE, Milt Bryce's information-systems methodology that was perhaps the first commercially available, rigorous methodology for developing software and the first serious attempt to transform information systems development in the commercial sector from an arcane art into a proven, repeatable science. It really has few forbears.
But... Margaret Hamilton was one of those forbears. She got the ideas out there; PRIDE just commercialized them and made them palatable to business IT shops.
mission critical software: plan for the impossible to keep the possible running smoothly
It's very telling of this website and the quality of the mainstream disinformation that most people here fall for this absolutely manufactured character backstory. Guys, read original source material! She was just some random unimportant manager with negligible technical contributions.
This feels like a black bar event. RIP Margaret Hamilton.
Definitely worthy of a black bar. She was a pioneer of making software quality into a formal discipline.
Absolutley does
Came here to say this.
RIP
Why didn't they add her most famous photo in the article!
Rest in peace, Ma'am.
RIP, what a fantastic person she was.
https://github.com/chrislgarry/Apollo-11 :
> Original Apollo 11 guidance computer (AGC) source code for Command Module (Comanche055) and Lunar Module (Luminary099). Digitized by the folks at Virtual AGC and MIT Museum.
Other Moon things of note:
- There are various open RL approaches for lunar-lander the computer game. GitHub topic lunar-lander: https://github.com/topics/lunar-lander?o=desc&s=stars
- They probably should have landed that payload gently on the moon in order to not collapse any existing cave systems in order to develop competency to land the ISS on the moon.
- There is a new orbital deceleration and landing approach for the moon;
- "A rough guide for going back to the Moon" (2026) https://news.ycombinator.com/item?id=49755912 :
> "Earth–Moon transfer via the L1 Lagrangian point using the theory of functional connections" (2026) https://link.springer.com/article/10.1007/s42064-025-0297-x
Rest in peace, Margaret.
Oh so that's were Hamiltonian graph are coming from?
I think that's named after https://en.wikipedia.org/wiki/William_Rowan_Hamilton
Margaret, along with Ada Lovelace and Grace Hopper, was such a huge inspiration to me as a young engineer. I'm honored to be in a field pioneered by women such as them, even if it's turned into a male-dominated field today. Rest in peace to a real legend.
Fun Fact: "Computer" was a profession before it was a thing. Computers did math on complex systems, often with the help of sin/cos/tan tables and the like. And they were usually women.
Rip legend
Sad!
It is Dr. Margaret Hamilton, she has earned it.
NYT obit: https://www.nytimes.com/2026/10/07/obituaries/margaret-hamil...
NXVI
The word legend is used too much. She absolutely qualifies.
congrats on being the 50M HN item, probably not legendary though
https://news.ycombinator.com/item?id=50000000
Huh. Wow. My comically (physically) large check is on the way I hope!
https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_en...
Threads:
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
This definitely asks for a black ribbon on top of HN.
What a loss!
100%
Tangent: Her LEGO minifig next to the Apollo code is one of my, and my daughter’s, favorites.
https://www.lego.com/en-us/product/women-of-nasa-21312
Direct image link for those that don't want to have to click multiple modals:
https://www.lego.com/cdn/cs/set/assets/blt75c3f3f6b4cb0e7c/2...
This feels like the top honor.
It's my favorite set I own, more than any of the big NASA builds. We've lost a real legend, there will never be another Margaret Hamilton.
Yes please, This is absolutely necessary
Cannot agree more! What a loss for all CS!
Good Lord yes
For years, I took piano lessons from an incredible teacher in Seattle who actually happens to be Margaret Hamilton’s sister. Looking back, I had no idea just how deeply she would impact both me and my family.
[flagged]
We've banned this account for repeatedly posting trollish comments like this.
While the Margaret Hamilton story is essentially fake, I still like telling it to my daughters. shrug
Totally fake. sigh