Jul 4th 2016 by pennstatephil • 22 Questions • 255 Points
My short bio: I was a space nerd growing up, and my 2nd assignment out of undergraduate was a dream come true: working on the fault protection systems for the Juno and GRAIL spacecraft (which were being developed simultaneously). I also worked on testing the software for the missions once development was complete.
Today, almost 5 years after I watched in awe of my work roaring away from a launch pad in Florida, Juno has finally arrived at Jupiter and is ready to begin its mission! Watch JOI (Jupiter Orbit Insertion) coverage on NASA TV.
If I can't answer your question (especially if it's about the science-y stuff), JPL has a great press kit containing lots of detailed information about the mission and the science it'll be doing. A couple flight engineers also did an AMA a few days ago, and your question may have been asked and answered there.
My Proof: http://imgur.com/a/ilZ9D - note some of the proof is GRAIL related.
- 8:42 Eastern - gonna take a break for dinner and enjoy some of the holiday with friends, but I'll be back later to answer more questions. I'm having a great time, and thank you all for the questions and being excited about space!
- 10:20 Eastern - I'm back-- less than an hour to go to JOI! IT'S HAPPENING!
- 11:55 Eastern - BURN COMPLETE! WE DID IT! I am extremely happy/relieved. I'm going to have an adult beverage or three to celebrate. Thanks for participating, everyone. I'm happy to keep answering questions, but I'm gonna call it a night for the AMA.
What software and coding languages do you primarily work with? I'm attending college to become a software engineer right now and would love to work for NASA or spacex one day
Great question! We developed the flight software in C++, and the drivers in C. The flight software was well established and flown on multiple missions before Juno/GRAIL, so it was more customizing the existing system for our mission. If you're looking to work on embedded systems, C++ is a great place to start. I also have done a lot of work in Java since. I sincerely believe that as long as you learn good fundamentals, you can learn any syntax.
Hi! I'm currently finishing my degrees in Comp Sci and Mathematics and I was wondering: how much domain knowledge do you need to get into an industry? If I wanted to work for nasa or spacex, would I need any sort of degree in physics?
Nope. Code is code. You learn the business as you're in the industry. If you're passionate about it, all the better, but you certainly don't need a degree in astrophysics to work on a spacecraft.
I'm at psu as well (Mech Eng '17). I will be interning at nasa's JSC this fall. Could you go into the pros/cons of working for NASA vs. one of their contractors?
Thanks for doing this AMA. Good luck tonight.
Unfortunately, I can't, really. I've only ever worked as a government contractor, so I'm not really sure what the differences are. I think probably the main advantage is you're less constrained by all the lovely government workplace regulations that are in place.
Enjoy the internship, and I'm always happy to help out fellow PSUers-- PM me if I can help!
Thanks for doing this AMA! I have a question about bugs.
I'm a web developer, and I create bugs all the time. My code isn't bad, but I work fast and refactor later, etc etc.
Is there a concept of "tech debt" in your line of work? How extensive is the testing? Do things just take a really, really long time to build?
Now, things may have changed in the past 5 years, but when I was there it was very much waterfall. Requirements->Design->Code->Test. Every requirement had to have a test verifying it. We would also discover more bugs in integration, and fix those. It was very VERY well documented. And yes, things generally just take a really long time to build :)
SWE here as well (I don't work on space stuff though). This is awesome. Can you say more about what the testing frameworks were like? I'd imagine unit/integration testing is really insanely important to you guys.
What is the flight software stack like? What platform are the drivers written for? How do you do software updates above the cloud?
How do you deal with communication delay to the spacecraft? Do you have to keep a tmux session open like we do here on earth when our wifi gets shitty?
Okay, that last one was a joke. Mostly.
Every piece of code was unit tested, then we integration tested the spacecraft in many different scenarios. Every requirement is verified by a test.
The FSW has many subsystems (thermal, communications, fault protection, etc), and they all work in congress together. Software updates are sent as patches, which are loaded, checked for validity, applied, and then the spacecraft restarts.
The spacecraft is very autonomous, so we tend to be pretty "hands off" when trying to drive the spacecraft. We send very broad commands, and the spacecraft knows how to do the rest :)