That isn't to say they haven't been doing interesting things from a technical perspective (they're landing rockets on barges, after all), but the real secret to their success has been taking proven technology and doing it better/more efficiently (for instance, the fundamental design of their rocket engine, the Merlin, dates back to 50's).
Unless they accomplished a miracle by building a world-class engineering team from zero, there must have been a catalyst.
Just a couple examples would include Tom Mueller, who was responsible for most of the design of the propulsion systems SpaceX currently uses (including the Merlin and Draco engines), and Gwynne Shotwell, SpaceX's President and COO. SpaceX absolutely owes its existence to Shotwell, both its commercial success, and the fact that it didn't die (a number of times) are directly due to her.
From an outsider's perspective (_very_ outside), it seems like it's really the "synergy" of Elon and Gwynne that have made SpaceX what it is today.
There is - having visionary, charismatic founder(s). This pattern has been successful at Apple, Microsoft, Amazon, Facebook, Netflix, Tesla\SpaceX, Google.
Is there really a competition for this much price difference?
I don’t expect seing rust code in the shuttle, but maybe formal proof with custom functionnal languages...
However on the SpaceX software side I think they’re fairly conservative and “boring”, so I’d guess C and similar guidelines to what you’ve mentioned.
[0] https://www.reddit.com/r/IAmA/comments/1853ap/we_are_spacex_...
Linux used to run as a non-privileged process in hard real-time kernel, which taken together was guaranteeing responses in nanoseconds range.
If this is still the case (along with what Wikipedia states) , the whole system is by definition hard real-time.
In any case, SpaceX doesn't use Linux for hard realtime systems.
> They do not have hard realtime requirements
https://lwn.net/Articles/540368/
And I probably wouldn't use the RTLinux for a real hard realtime system if I were making the choice. Putting all of the realtime code in the same memory domain as the rest of the Linux kernel is a huge surface area for corruption. I'd probably use sel4 with a virtualized Linux to get the same semantics.