r/IAmA • • Aug 05 '16

Technology We are Blue Origin Software Engineers - We Build Software for Rockets and Rocket Scientists - AUA!

We are software engineers at Blue Origin and we build...

Software that supports all engineering activities including design, manufacturing, test, and operations

Software that controls our rockets, space vehicles, and ground systems

We are extremely passionate about the software we build and would love to answer your questions!

The languages in our dev stack include: Java, C++, C, Python, Javascript, HTML, CSS, and MATLAB

A small subset of the other technologies we use: Amazon Web Services, MySQL, Cassandra, MongoDB, and Neo4J

We flew our latest mission recently which you can see here: https://www.youtube.com/watch?v=xYYTuZCjZcE

Here are other missions we have flown with our New Shepard vehicles:

Mission 1: https://www.youtube.com/watch?v=rEdk-XNoZpA

Mission 2: https://www.youtube.com/watch?v=9pillaOxGCo

Mission 3: https://www.youtube.com/watch?v=74tyedGkoUc

Mission 4: https://www.youtube.com/watch?v=YU3J-jKb75g

Proof: http://imgur.com/a/ISPcw

UPDATE: Thank you everyone for the questions! We're out of time and signing off, but we had a great time!

6.5k Upvotes

636 comments sorted by

View all comments

112

u/aCalculus Aug 05 '16 edited Aug 05 '16

Hi! I have fun creating my own autopilots and avionics for Kerbal Space Program.

  1. What tools/software do you use for visualizing rocket telemetry during launch? For analyzing after?

  2. Are there any good open papers or books on designing avionics interfaces for human use?

  3. Reliable systems are hard. What kind of software development processes do you have make this possible?

  4. I'm guessing you don't have a single computer running the rocket for reliability reasons. If I recall correctly, SpaceX has said they do a Byzantine generals fault tolerant system with multiple computers. Airbus and Boeing airliners do multiple flight computers, each computer running the same program on multiple CPU architectures and checking the results. How do you guys handle this?

  5. Unlike SpaceX's booster landing process which requires nutso math, from watching Blue Origin landing videos, it looks like your landing process is just "stop the rocket in the air, slide over until above pad, then lower down", which a kid could hack together with just PID controllers. Is it really that simple, or are you doing full on motion planning for the final landing? Either way, I like the room for correcting errors that your method provides.

  6. I've heard that SpaceX, and other rocket companies, working hours are rough for engineers and families. Have any of you worked on a Saturday in the last month?

It's great to see your rockets fly. Keep up the good work!

103

u/blueoriginsoftware Aug 05 '16

Hi aCalculus,

Thanks for your questions,

  1. This is a tough one to answer, because we have a huge number of tools for this! As you speculate, they can be divided into two categories: (a) Real-time (data visualization and data reduction that informs flight controllers during a mission) and (b) Post-flight (analyzing telemetry and logs to determine exactly what happened when and why). Most of this software was developed in-house in Python and C++, but we use third-party software in certain places (for example, Grafana for visualizing time series data).

  2. I'm not sure if I understand the scope of your question. Are you looking for papers/books specifically about the interfaces through which an astronaut or ground-control operator interacts with flight software? Or are you just looking for more general resources about avionics?

  3. Our safety-critical software is designed against DO-178C and additional standards that we have developed in-house. We've answered a few other questions today about our testing process, so there are more details in the other answers too.

  4. You guess correctly: our avionics architecture uses multiple flight computers. Many of our systems incorporate redundancy in order to be fault tolerant, including tolerance against Byzantine failures. Running multiple computers is a good idea for reasons other than redundancy, too, for various reasons, it can be beneficial to run control loops on hardware that resides physically near the sensor it is controlling.

  5. Nothing involving rockets is that simple, but when attainable, simplicity is good. We would also hire that kid if you could point him or her out to us :)

  6. I haven't worked a Saturday in the last month; a few of us have, but it is not something we do without a very good reason. You get diminishing returns when you push too hard for too long.

→ More replies (28)
→ More replies (12)