SpaceX software development chief discusses writing high-flying code

Businesses depend on software to survive and grow. For software developers and engineers, this simple fact of life can create tremendous professional pressure. If they don’t code something correctly, it could end up having a catastrophic impact on the business.

Then there’s SpaceX, where the pressure to develop well-built software reaches a whole new level: bad code could have a disastrous effect on a manned spacecraft. Astronauts depend on software to to survive.

Stack Overflow blog features a neat interview with Steven Gerding, the head of software development for SpaceX’s Dragon spacecraft, which can transport a human crew to the International Space Station. Gerding and other engineers rely on C ++ to create much of Dragon’s software, and his description of how the team approaches development is well worth anyone interested in writing software (especially software who put the “critic” in “mission critical.”).

Even with brilliant engineers building the Dragon’s software, there is always the possibility, perhaps the inevitability, of bugs. “We try to design the software in such a way that if it fails, the impact of that failure is minimal,” Gerding told Stack Overflow. “We always check for error codes and return values… We also have the option for operators or the team to override different aspects of the algorithm. “

Gerding previously worked at Google and provides insight into the differences between software development based on your business’s ultimate goals and risk tolerance. At Google, he said, “You would really want your process to fail if something wrong happened. It was one of thousands of similar processes that would then be restarted. “

With something like the Dragon spacecraft, however, a failed process is literally the last thing you want: “We just prefer to continue with the rest of the software that is actually unaffected by that failure. “

Head over to Stack Overflow for its other pointers, including the need to build verification and validation into the software development process. If you’re interested in a software development job at SpaceX, keep in mind that developers and engineers can earn quite a bit of compensation, just in case you’re looking for reasons to apply other than the freshness of helping out. launching and landing of spacecraft.

Besides C ++, what technical skills is SpaceX looking for? This is an excellent question. Fortunately, Burning Glass, which collects and analyzes millions of job postings across the country (including those generated by SpaceX) offers us an answer:

SpaceX officials want technologists proficient in popular programming languages ​​such as Python, C ++ and SQL. Familiarity with Linux is also essential for some roles. As Gerding’s interview makes clear, knowledge of software development processes is also essential, especially given the pressures that come with creating software that will safely transport humans into space (and back).

Gordon K. Morehouse