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...
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 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 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”
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).
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)
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).
> “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.
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.
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.
> 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...
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?
> 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.
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.
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.
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.
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.
>> 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.
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?
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.
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.
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.
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.
... 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...
> 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.
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.
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.
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.
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.
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 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!
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.
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.
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.
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.
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".
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 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.
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.
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.
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.
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, 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
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.
> 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;
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.
WarOnPrivacy | a day ago
The pic here is often people's first intro to her https://news.mit.edu/2016/scene-at-mit-margaret-hamilton-apo...
underlipton | 21 hours ago
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...
robbs | 21 hours ago
da_chicken | 21 hours ago
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.
setr | 20 hours ago
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”
jacquesm | 19 hours ago
coffeefirst | 19 hours ago
jonstewart | 19 hours ago
bronson | 19 hours ago
da_chicken | 18 hours ago
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.
Gibbon1 | 17 hours ago
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.
WorldMaker | 15 hours ago
setr | 15 hours ago
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.
rbanffy | 8 hours ago
> 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".
setr | 7 hours ago
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)
rbanffy | 8 hours ago
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).
delamon | 16 hours ago
rbanffy | 8 hours ago
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.
msl | 14 hours ago
[1] https://en.wikipedia.org/wiki/Apollo_Guidance_Computer#1201_...
el_benhameen | 21 hours ago
burningChrome | 19 hours ago
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.
globular-toast | 14 hours ago
ahartmetz | 11 hours ago
autoexec | 20 hours ago
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...
efreak | 23 minutes ago
fsckboy | 15 hours ago
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-...
swyx | 15 hours ago
xyzzyz | 9 hours ago
toomuchtodo | a day ago
Threads:
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
saulpw | a day ago
oliyoung | a day ago
EvanAnderson | a day ago
_doctor_love | 23 hours ago
EvanAnderson | a day ago
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.
delld16 | 11 hours ago
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?
EvanAnderson | 11 hours ago
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.
delld16 | 9 hours ago
And it seems like she reflected on it quite light-heartedly.
EvanAnderson | 7 hours ago
customguy | 23 hours ago
> 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.
bitwize | 23 hours ago
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.
markus_zhang | 23 hours ago
What a loss!
omnicognate | 23 hours ago
tarellel | 23 hours ago
mrexroad | 23 hours ago
Tangent: Her LEGO minifig next to the Apollo code is one of my, and my daughter’s, favorites.
abetusk | 23 hours ago
artisinal | 22 hours ago
https://www.lego.com/cdn/cs/set/assets/blt75c3f3f6b4cb0e7c/2...
quantified | 21 hours ago
soulofmischief | 11 hours ago
dlphii | 16 hours ago
muunbo | 23 hours ago
catskull | 22 hours ago
srcreigh | 22 hours ago
autoexec | 20 hours ago
penskymaterial | 22 hours ago
doginasuit | 21 hours ago
Dylan16807 | 17 hours ago
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.
altmanaltman | 17 hours ago
Or just accept terms change as society and technology does.
customguy | 16 hours ago
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.
altmanaltman | 14 hours ago
So it is a contradiction if you support gatekeeping but also only when its convinient to you.
That is the point I am making.
Dylan16807 | 14 hours ago
And if the "convenient to you" point is also supposed to apply to me, nope not at all. My programming would not qualify.
customguy | 13 hours ago
> 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.
IAmBroom | 9 hours ago
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.
customguy | 2 hours ago
"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?
EDC9599190 | 8 hours ago
>
> 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.
ifwinterco | 15 hours ago
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
doginasuit | 14 hours ago
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?
ghaff | 10 hours ago
II2II | 10 hours ago
doginasuit | 9 hours ago
gf000 | 14 hours ago
EDC9599190 | 6 hours ago
There have been accredited Software Engineering programs in Canada for more than 20 years now.
https://engineerscanada.ca/accreditation/accredited-programs...
mrguyorama | 6 hours ago
EDC9599190 | 6 hours ago
Wiles_7 | 14 hours ago
Lyngbakr | 11 hours ago
Wiles_7 | 8 hours ago
EDC9599190 | 6 hours ago
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...
eloisant | 9 hours ago
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.
cmpxchg8b | 9 hours ago
EDC9599190 | 8 hours ago
"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.
graemep | 8 hours ago
Andrex | 13 hours ago
croes | 11 hours ago
How would you feel about flying in a plane done with AI without the involvement of any engineers?
megabless123 | 9 hours ago
croes | 9 hours ago
onion2k | 20 hours ago
abcd_f | 10 hours ago
EDC9599190 | 6 hours ago
>
> 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.
diskzero | 23 hours ago
p4bl0 | 9 hours ago
jamiek88 | 23 hours ago
verdverm | 22 hours ago
https://news.ycombinator.com/item?id=50000000
jamiek88 | 8 hours ago
metadaemon | 22 hours ago
QuantumAtom | 22 hours ago
throw_m239339 | 22 hours ago
schaefer | 22 hours ago
dudewhocodes | 22 hours ago
schaefer | 22 hours ago
xtajv | 22 hours ago
It reads like a lead engineer walking a new hire through the codebase.
schaefer | 21 hours ago
rramadass | 17 hours ago
dzonga | 22 hours ago
rest well pioneer.
jshier | 22 hours ago
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.
dzonga | 22 hours ago
cbm-vic-20 | 9 hours ago
Kim_Bruning | 22 hours ago
zanderwohl | 15 hours ago
marcelo-earth | 21 hours ago
CyberMacGyver | 21 hours ago
xiphmont | 21 hours ago
leelasankhar | 21 hours ago
rietta | 20 hours ago
ChrisArchitect | 20 hours ago
Noting Ada Lovelace Day was a few days ago also https://findingada.com/.
groundzeros2015 | 20 hours ago
foldr | 8 hours ago
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.
xhkkffbf | 6 hours ago
The NYT obituary, for instance, notes that she married her boss. That lines up with many of the complaints in the twitter feed.
foldr | 6 hours ago
groundzeros2015 | 5 hours ago
foldr | 5 hours ago
groundzeros2015 | 4 hours ago
groundzeros2015 | 5 hours ago
> at about the worst possible moment,
The tweet was made in 2023
foldr | 5 hours ago
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.
groundzeros2015 | 4 hours ago
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.
foldr | 4 hours ago
groundzeros2015 | 4 hours ago
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?
foldr | 3 hours ago
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.
groundzeros2015 | 2 hours ago
foldr | 2 hours ago
>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.
shaunxcode | 20 hours ago
ChrisArchitect | 19 hours ago
sib | 19 hours ago
If only!
101008 | 19 hours ago
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.
diskzero | 18 hours ago
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.
MisterMunchkin | 14 hours ago
igleria | 14 hours ago
antihero | 12 hours ago
Lalabadie | 8 hours ago
https://calebhearth.com/dont-get-distracted
cdot2 | 8 hours ago
bandedetrappes | 14 hours ago
divbzero | 18 hours ago
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)
dadrian | 18 hours ago
Andrex | 13 hours ago
But, I also wonder if that ethos was apart of early NASA before they had failures to learn from... Hmm...
codewritinfool | 9 hours ago
xyzzyz | 9 hours ago
tonymet | 3 hours ago
joonehur | 16 hours ago
carra | 12 hours ago
jfsebastian | 15 hours ago
https://news.mit.edu/2016/scene-at-mit-margaret-hamilton-apo...
elmean | 7 hours ago
freediver | 5 hours ago
_russross | 5 hours ago
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.
rswail | 15 hours ago
One of the founders of our industry.
jeisc | 15 hours ago
drayfield | 14 hours ago
atoav | 14 hours ago
igleria | 14 hours ago
bsdooby | 14 hours ago
fHr | 11 hours ago
soulofmischief | 11 hours ago
IAmBroom | 8 hours ago
psychoslave | 11 hours ago
dxdm | 11 hours ago
mezod | 10 hours ago
Why didn't they add her most famous photo in the article!
Gravityloss | 9 hours ago
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.
cmrdporcupine | 8 hours ago
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.
PaulHoule | 8 hours ago
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
tanseydavid | 9 hours ago
https://en.wikipedia.org/wiki/Margaret_Hamilton_(actress)
I am pleased to have now learned more about the Margaret Hamilton of "software engineering."
dhosek | 8 hours ago
danielktdoranie | 8 hours ago
tomhow | 5 hours ago
rootbear | 7 hours ago
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.
westurner | 6 hours ago
> 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
aw4rzs | 5 hours ago
throwawayig77 | 3 hours ago
cardiffspaceman | 3 hours ago
throwawayig77 | 3 hours ago