Unless you call yourself a rocket scientist, you probably don’t think your daily routine has much in common with flight software engineering. But you would be wrong.
Flight software engineers write computer code for NASA spacecraft, which is complicated because—hello—flying spacecraft into space is complicated.
Flight software runs the instruments and sensors that operate thermal control, spin stabilization on all three axes, uplink and downlink to communicate with spacecraft, data collection and handling, a cruise phase, a descent phase and sometimes a “landing on the surface of a planet” phase. And some of this happens simultaneously. (And I thought feeding the cat and dog at the same time was rough.)
If the spacecraft is far away, like, dude, on Mars or beyond, there’s no controlling it from the ground with a joystick, so the software has to be written to allow the spacecraft to run autonomously.
But the experiences of a flight-software-engineering person* are actually the same as the experiences of a regular-person person, from planning a family reunion, to cleaning the garage, to simply shopping for tonight’s dinner. If you skip the bits about the flying, disregard the software and pay no attention to the engineering, then what you’re left with is some amazingly useful life lessons: