
We are the SpaceX software team, ask us anything - pvsukale3
https://www.reddit.com/r/spacex/comments/gxb7j1/we_are_the_spacex_software_team_ask_us_anything/
======
HALtheWise
To unbury the lede, this is happening at tomorrow, Saturday June 6 at noon PST

------
jve
Related: Software Engineering Within SpaceX
[https://news.ycombinator.com/item?id=23403800](https://news.ycombinator.com/item?id=23403800)

~~~
nsajko
Also "What computer and software is used by the Falcon 9? (2015)
(stackexchange.com)" from 5 days ago -
[https://news.ycombinator.com/item?id=23368109](https://news.ycombinator.com/item?id=23368109)

------
RedShift1
What kind of computing hardware is used inside the rockets? Off the shelf
Intel or AMD cpu's setup in some kind of redundancy or custom hardware? How
does the redundancy work, how many CPU's can fail before the rocket can't be
controlled anymore? Are they all located in the same place in the rocket,
why/why not?

~~~
ponker
No way. Anything that costs a lot of money runs industrial computing like the
RAD750.

~~~
mshook
There are some answers here:
[https://space.stackexchange.com/questions/9243/what-
computer...](https://space.stackexchange.com/questions/9243/what-computer-and-
software-is-used-by-the-falcon-9)

IIRC it was the same thing they said during the launch of the Dragon capsule
so yeah they don't use crazy RAD stuff:

SpaceX uses an Actor-Judge system to provide triple redundancy to its rockets
and spacecraft. The Falcon 9 has 3 dual core x86 processors running an
instance of linux on each core. The flight software is written in C/C++ and
runs in the x86 environment. For each calculation/decision, the "flight
string" compares the results from both cores. If there is a inconsistency, the
string is bad and doesn't send any commands. If both cores return the same
response, the string sends the command to the various microcontrollers on the
rocket that control things like the engines and grid fins.

The microcontrollers, running on PowerPC processors, received three commands
from the three flight strings. They act as a judge to choose the correct
course of actions. If all three strings are in agreement the microcontroller
executes the command, but if 1 of the 3 is bad, it will go with the strings
that have previously been correct. The Falcon 9 can successfully complete its
mission with a single flight string.

The triple redundancy gives the system radiation tolerance without the need
for expensive rad hardened components. SpaceX tests all flight software on
what can be called a table rocket. They lay out all the computers and flight
controllers on the Falcon 9 on a table and connect them like they would be on
the actual rocket. They then run a complete simulated flight on the
components, monitoring performance and potential failures.

SpaceX engineers perform what they call "Cutting the strings" where they
randomly shut off a flight computer mid simulation, to see how it responds.

Dragon uses a similar triple redundant system for its flight computers.

~~~
Nokinside
>Dragon capsule so yeah they don't use crazy RAD stuff:

Those PowerPC processors are RAD750's.

------
travisporter
Off topic, but is there a nitter/invidio.us equivalent to reddit? After HN, I
find reddit and old.reddit to be so cluttered I can't stand it

~~~
4rollingstock
Have you tried i.reddit? Its their old-school mobile website, super simple
interface.

[https://i.reddit.com/](https://i.reddit.com/)

~~~
travisporter
Love it! Thanks!!

------
jonnypotty
Do you have any tools to attempt prove correctness of critical code beyond
traditional testing?

~~~
hartator
You have to ask that on the Reddit.

~~~
jonnypotty
Oh. Oops.

------
jcun4128
Dang the influx of questions wonder how they decide what to answer.

~~~
adambyrtek
This is Reddit so probably by upvotes?

~~~
jcun4128
Yeah but I also wonder how many people filter/read new and vote vs. just
asking whatever... if they could average the questions that would be
interesting/frequency of mentions... anyway be curious what questions are
asked.

~600 comments under an hour? dang

edit: oh comments are randomly ordered interesting

~~~
pjscott
To expand on your edit:

1\. This comment thread shows comments in random order, so you're not seeing
the more upvoted questions bubble to the top the way they usually would, which
prevents winner-takes-all feedback loops in the voting.

2\. People browsing through the thread may upvote good questions, but
currently the scores are hidden in order to avoid bias.

3\. Once the thread has been up for a while, the people doing the AMA can just
re-sort to show the highest-voted comments first, which will give a good
starting point for which questions to answer.

~~~
jcun4128
Yeah I'm glad they did that. The score hidden thing is interesting, I see some
people do that at will, I'm a person affected by down votes haha like "oh no
someone disagreed with me" anyway... pretty cool.

------
unnouinceput
boy that thread at reddit took like 20 seconds to close my firefox tab that
was in it. Never seen a tab to take that much to close.

------
dmead
what happens if node has to garbage collect during launch?

------
jonathanaird
What language/framework is the GUI for the controls written in?

------
pinacarlos90
How do you go about organizing/prioritizing work, and executing?

1) what workflow methodology you use (e.g. scrum/sprint, Kanban, etc)

2) where does requirements come from?

3) how granular is your code-review process?

~~~
O_H_E
You gotta ask on Reddit.

------
thecleaner
Real jewel from the AMA

\- what "web technologies" did you use for the UI

But one great question

\- What practices did you use to ensure there are no bugs ?

~~~
nsajko
> Real jewel from the AMA

They _did_ use Chromium and Javascript for the UI at least a few years ago.
See the stackexchange posts.

EDIT: also see the old AMA:
[https://www.reddit.com/r/IAmA/comments/1853ap/we_are_spacex_...](https://www.reddit.com/r/IAmA/comments/1853ap/we_are_spacex_software_engineers_we_launch/)

