We are software engineers at SpaceX. We work on:

  • Code that goes on rockets and spacecraft.
  • Code that supports the design and manufacturing process of rockets and spacecraft.

We work on everything from large-scale web applications to tiny embedded computing platforms. We build tech stacks on C#/MVC4/EF/MSSQL via REST to Javascript/Knockout/Handlebars/LESS, C++/Embedded Linux, Python, LabVIEW… which all together enables us to build, launch, and monitor stuff that goes to space.

Some videos of our recent work:

http://youtu.be/B4PEXLODw9c

http://youtu.be/tRTYh71D9P0

http://youtu.be/dQw4w9WgXcQ

Proof:

http://imgur.com/bl8dlZ2

Edit: Poor Dan, everyone knows he was photo-shopped. Don't close your eyes next time!

Edit 2 : We've been getting a lot of questions about how C#/MVC/etc have to do with rockets. They don't. At SpaceX we have 4 separate software teams:

  1. The Flight Software team is about 35 people. We write all the code for Falcon 9, Grasshopper, and Dragon applications; and do the core platform work, also on those vehicles; we also write simulation software; test the flight code; write the communications and analysis software, deployed in our ground stations. We also work in Mission Control to support active missions.

  2. The Enterprise Information Systems team builds the internal software systems that makes spacex run. We wear many hats, but the flagship product we develop and release is an internal web application that nearly every person in the company uses. This includes the people that are creating purchase orders and filling our part inventory, engineers creating designs and work orders with those parts, technicians on the floor clocking in and seeing what today's work will be per those designs...and literally everything in between. There are commercially available products that do this but ours kicks major ass! SpaceX is transforming from a research and engineering company into a manufacturing one - which is critical to our success - and our team is on the forefront of making that happen. We leverage C#/MVC4/EF/SQL; Javascript/Knockout/Handlebars/LESS/etc and a super sexy REST API.

  3. The Ground Software team is about 9 people. We primarily code in LabVIEW. We develop the GUIs used in Mission and Launch control, for engineers and operators to monitor vehicle telemetry and command the rocket, spacecraft, and pad support equipment. We are pushing high bandwidth data around a highly distributed system and implementing complex user interfaces with strict requirements to ensure operators can control and evaluate spacecraft in a timely manner.

  4. The Avionics Test team works with the avionics hardware designers to write software for testing. We catch problems with the hardware early; when it's time for integration and testing with flight software it better be a working unit. The main objective is to write very comprehensive and robust software to be able to automate finding issues with the hardware at high volume. The software usually runs during mechanical environmental tests.

Edit 3: Yes, we are doing a ton of hiring for these software positions that we have been talking about today. Interns and New Grads too!

Edit 4: Thank you so much everyone! This is ending but most of the group will be back at 2:00pmPST to answer more questions.

Edit 5: ...and we're back! Engineers from each of our engineering teams are present. Let us catch up a bit and start swering again (probably be about 5 minutes).

For all open software related positions, please go to http://www.spacex.com/software.php

Edit 6: Thank you so much Reddit! This was a ton of fun. To all those asking about internships and employment, our suggestion is to apply online. Your resume will definitely get read. To all the students out there, GL with your midterms coming up and stick at it. Try and work on some side projects and get as much practical experience coding as possible before graduating. Happy Friday everyone!

http://tinyurl.com/cf93j9w

Comments: 2295 • Responses: 50  • Date: 

TheRealFroman841 karma

I'd love to know when I can start packing my bags for mars ;)

spacexdevtty1640 karma

Give us 5-10 years.

FloridaBobbert326 karma

That's what NASA said in the 70's.

spacexdevtty634 karma

Would you want to bet against Elon?

stom493 karma

Thanks for doing this AMA!

First question: do any of you guys play Kerbal Space Program?

Secondly, in case you can answer, I'd like to ask a question about the MCT and shielding. Elon talked about it a while back and said that to avoid excess weight it might be possible to have water as shielding, only directly between the crew-module and the sun like a column, instead of an all-encompassing ball. How does this cater for dispersed radiation incoming from the sides?

spacexdevtty770 karma

First question: do any of you guys play Kerbal Space Program?

Are you kidding? That’s how we design our rockets!

Secondly, in case you can answer, I'd like to ask a question about the MCT and shielding. Elon talked about it a while back and said that to avoid excess weight it might be possible to have water as shielding, only directly between the crew-module and the sun like a column, instead of an all-encompassing ball. How does this cater for dispersed radiation incoming from the sides?

Elon may have something to say about this topic soon...

DJ_Thundercock380 karma

Who the fuck is downvoting every question?

spacexdevtty1809 karma

North Korea

akosednar327 karma

  • How big is your current code base for your bigest project?
  • Is it a hassle to maintain?
  • What was the most challenging project that you had to take on and why?
  • What do you feel most accomplished about?
  • How do you like your job?

~ Aerospace Engineering Student & Programer who loves SpaceX too much

spacexdevtty549 karma

How big is your current code base for your bigest project?

The vehicle code is on the order of a couple hundred k lines.

Is it a hassle to maintain?

It's not a hassle to maintain, it's our job! We're actually very happy with our code base. It's a labor of love.

What was the most challenging project that you had to take on and why?

Dragon berthing w/ the ISS was a major challenge. Lots of new code had to be developed.

What do you feel most accomplished about?

Dragon berthing w/ the ISS.

How do you like your job?

Did we mention Dragon berthing w/ the ISS?

thebeefytaco322 karma

How many ITAR violations are you committing right now?

spacexdevtty462 karma

None! We have our President Gwynne Shotwell in the room!

phil_jp1235 karma

What kind of operating systems you use in your navigation/propulsion control systems?

spacexdevtty462 karma

Dragon and Falcon 9 use a version of Linux.

akira31490 karma

Did you mount Labview onto the Linux environment, and are you using Matlab as well?

spacexdevtty167 karma

We run LabVIEW on Windows.

We use Matlab on the ground as an analysis tool.

wakanooms235 karma

Hello! I have several questions for you guys, I am currently studying for a degree in Astrophysics so what you guys do definitely applies to me! :)

  • For the space industry, what do you guys find to be the most used/useful programming language, and also which language is best to begin learning in order to progress to others? (I have very very little programming experience and am very interested in getting started as every aspect of the industry/research seems to require a basic understanding in some form of programming)

  • What are you currently working on? Any exciting projects coming up? (I imagine they're all pretty exciting to be honest)

  • How did you get into the industry, and was getting a job difficult? Did you gain experience whilst studying?

  • What is it like working with such a prominent company in the space industry just now?

I probably have many more, but I'm sure this is enough to keep you going just now. Sorry for using the word 'industry' so frequently, I'm not quite sure how else to describe it.

spacexdevtty263 karma

For all software engineers (not space related) C is a great language to get started. It forces you to learn about how the CPU works, how memory works, etc., but high enough you’re not writing assembly. Once you’ve mastered C take a look at C++.

We have so much going on right now--one of the coolest project is probably Grasshopper. This is a development vehicle we’re using to test the engineering necessary to not just send rockets up, but to bring them back--something that’s never been done before. You can see some of those tests on YouTube http://www.youtube.com/watch?v=B4PEXLODw9c and we’ve got more tests coming up later this year.

We’re also working on getting Dragon ready to take people to station. Right now Dragon just carries cargo, but it was always designed to take people. We’re working with NASA to make the final mods necessary--basically seats, environments and pretty bad-ass launch escape system--and we’re looking to start crew trials as early as 2015.

All of us came from a pretty diverse set of backgrounds, there’s no one particular path we all followed to get here. Speaking for me personally the best experience I got in school was working on my own personal programming projects on the side. There’s a lot of opportunity these days on the web and the app stores to complete a product and get your work out there to be seen.

It’s really surreal to get Popular Mechanics and see SpaceX on the front cover. It’s great to be part of this industry, we’re all very excited to be here.

RememberThisFaceX217 karma

How is the work/life balance?

I have heard it is pretty easy to burn out at SpaceX. Do you guys struggle at all?

spacexdevtty507 karma

SpaceX embodies the small business mentality. We are all invested in SpaceX and its success. That being said, we do work longer hours. At the end of the day, it boils down to what is important in your life. We of course deal with burnout, thats what vacation days are there for ;).

Speaking as one person, most days I don’t even notice that I have been at work for 12-14 hours. I take a look at the clock and think “where did the time go?”. I think that’s a testament to how excited we can get about our projects. When you really enjoy what you are doing, it doesn’t feel so much like work. (That being said, a vacation every now and then is still necessary to maintain sanity)

janderss215 karma

Technical question. Do you use optimization-based control in your vehicles. I'm thinking in particular on algorithms such as (nonlinear) model predictive control and (nonlinear) moving horizon estimation. If yes, please elaborate. Also, how to you do off-line optimization to e.g. calculate flight trajectories?

zombiecombat636 karma

Nice try North Korea.

rellim7153 karma

What experience/schooling does one need to get a job with spaceX? Or intern even?

spacexdevtty216 karma

We all come from a diverse background of companies and schools. Most of us are Computer Science students but we definitely have a good amount of EE, Physics, Math, Computer Engineering, and even some self-taught engineers here. For Flight Software, C++ and algorithm/data structure knowledge are very important. For Enterprise Information Systems, C# or Front End experience + great algorithm/data structure knowledge. For Launch Engineering (the team that uses LabVIEW), awesome LabVIEW + great algorithm/data structure knowledge. See the trend? Study math and know your sorting algorithms.

spacexdevtty40 karma

mariano81133 karma

Thanks for doing this!

  • Can you guys dazzle us geeks with some fascinating computer tech systems/specs/toys that you guys are using for your missions so we can feel envious?

  • I understand Apollo 11 didn't have much computer power on board when it went to the moon--how much computer power do you guys have in an SpaceX spacecraft?

Thanks for rocking us to space! \m/

spacexdevtty297 karma

Re computing power: a shit ton.

ShittyEverything123 karma

How do you test rocket software without blowing up rockets?

spacexdevtty165 karma

We test it on the ground before we fly it. We have flight-equivalent systems on the ground that we can run the code against. So cool seeing Falcon in-person on the launchpad!

cochico120 karma

wow, you all look really young. How old are you and how did you end up in that (awesome) job ?

spacexdevtty131 karma

We did a quick informal poll and we think the average software engineer age is about 30.

How did we get here? We applied through the website or were contacted by a recruiter. :)

Intensegoblin98 karma

So as rocket scientists, do you ever encounter brain surgeons and have awkwardness occur?

RedOktober183 karma

Nice one with the rick roll, I salute you!

Also, How long is a typical program that you write? and do any of you play Eve?

spacexdevtty108 karma

Each vehicle (Dragon/Falcon) is more than 100k and less than 500k... :) No more Eve players here any longer, sorry.

Astrocat1574 karma

Hi SpaceX engineers, appreciate you guys doing this AMA! How do you guys account for anything that goes wrong with the software when the rocket/spacecraft is already in space? Like what is the backup plan if there's suddenly a critical bug found when the spacecraft has already launched?

spacexdevtty117 karma

We have a lot more opportunity for controlling Dragon than Falcon 9 (Falcon 9 only takes about 10 minutes to get to orbit). We also have the ability to fix things should there be a critical software bug discovered (although we do a ton of testing on the ground before each flight so hopefully this won’t happen).

A recent example of an in-flight situation that required our intervention is on our first attempt at ISS rendezvous, getting very close and then discovering that due to an unanticipated lighting situation, Dragon had a hard time seeing its target! We were able to fix this from the ground and it all ended well.

KyleJohnstonNet53 karma

Was Dragon using machine vision to guide it's docking?

spacexdevtty108 karma

It uses LIDAR.

ken2723863 karma

  1. What was your "I can believe that this is my job!!!" moment?

  2. What is the main program language that you use on the rockets that ties everything together and makes it tick?

  3. How different is the coding process for a rocket that not only takes off but lands under its' own power?

spacexdevtty95 karma

Watching Dragon fly in within 10m of ISS was big moment for all of us. Years of effort went into that development.

We have these moments almost every day. It is amazing to come in to work and have part of your job be sitting in mission control and having live conversations with astronauts floating in microgravity onboard ISS (and watching them on our huge projector in realtime) to coordinate tests in preparation for sending them more supplies and helping them accomplish their missions.

Mine was the first time I watched the F9 leave the launchpad. The sheer adrenaline rush was unlike anything I’ve ever felt before. My goosebumps had goosebumps.

Mine was when I got hired and walked the factory checking out solar arrays and first stage towers. I kept thinking this isn’t like any software job I’ve had before!

spacexdevtty80 karma

The rocket is all C++

The rocket and spacecraft are all C++. On the ground, we use National Instruments LabVIEW extensively.

wxrkbs63 karma

During a tour of SLC-40 before the STS-135 launch, I snapped this picture: http://flic.kr/p/a2La1Y. My question is this: Just what the heck is a "sponge log"?

spacexdevtty246 karma

We just misspelled Sponge Bob unfortunately.

Tee_Baggins57 karma

From the engineers present today; whats's the iPhone/Android/Other ratio?

spacexdevtty84 karma

We took a poll, looks about 50-50.

sircmpwn52 karma

What goes to space? Is it written in C? Do you follow JPL C standards?

Where does C#/MVC come in to play?

You mentioned embedded linux, does your space-grade tech run Linux?

EDIT: From other responses, I think I've gathered the answers:

What goes to space is written in C++.

C#/MVC is used internally within the company for project tracking and what have you.

What goes to space runs Linux.

spacexdevtty50 karma

We have edited the blurb above to answer a few questions like this. Let us know if you have any other follow ups and we'll try to get to it.

ccjj51 karma

PhD student of control engineering here. I am wondering what kind of controller architectures you are using for your rockets and spacecraft. I would guess you would use architectures similar to the ones used in aerospace engineering, and with regards to this do you do feedback linearization, or do you use an adaptive approach (e.g. L1, Lavretsky and Wise 2006).

spacexdevtty95 karma

Great question but not touching that one. Apply when you're done with your program.

SpaceXonMars47 karma

What percentage of the current mission code do you estimate will be part of the first manned missions to Mars?

spacexdevtty40 karma

As large as possible but pretty tough to say now

deepdowntherabbit46 karma

Hey all!

My question: Are any of you working on guided entry for Dragon (à la MSL)? Are we going to see some pinpoint landings over the next couple of years? Best of luck, and don't get totally burned out!

spacexdevtty117 karma

Definitely. One of the key goals of the company is to be able to return Falcon 9 and Dragon directly to the pad area and relaunch in a matter of hours, much along the lines of how aircraft are operated today. Stay tuned for progress on this...

Makuta44 karma

What is the average degree level for a SpaceX employee, do you need to have something more than a BS?

spacexdevtty49 karma

Average is probably around there. Nope, do not need a MS but it can help depending upon what experience you already have coming out of Undergrad.

massivedecibel43 karma

Thanks for doing this AMA!

I guess this is sort-of related, but why don't you hire international students for internships/FT positions? It said you were looking for permanent residents only.

spacexdevtty87 karma

Unfortunately, due to state department regulations, hiring internationally is extremely difficult, but not impossible with the appropriate controls in place.

benzyboy2224 karma

what about in space?

spacexdevtty51 karma

Now that would be nice. Maybe if we get to Mars in 5 to 10 years, then we can remote a few employees remote-in from our red friend?

adrianbedard41 karma

I'm studying computer engineering in college. What do I need to know before I can properly intern with SpaceX.

spacexdevtty53 karma

On the software side, actual coding experience (hobby or class projects) look great on your resume. We also love to see passion about space; feel free to dork out on your resume or interview. We use C++ a lot but there is also plenty of Python, C# and even some Matlab is used here. Some experience with lower-level systems such as the networking stack doesn’t hurt. Align yourself with a professor and attach yourself whatever he or she is working on. High altitude balloon projects are now relatively easy to get started with a few friends and can be very applicable.

DrKilory38 karma

I hear a lot of people working at spacex get burned out due to the large amount of hours worked. Is this true? Have you guys experienced working too much? How do the hours effect your work?

spacexdevtty51 karma

Yeah, the hours can definitely be crazy. But when you’re trying to change the future of human history, that’s to be expected :) Our CEO has said SpaceX is like Special Forces--we do the things that everyone else thinks is impossible. That means sometimes you’re going to work crazy hours. There are definitely way easier jobs than working at SpaceX. But you also get to experience things that you can’t find anywhere else at any other company. Its definitely a trade off--and for those of us here, totally worth it.

We are hiring a lot right now so the more people we add to the team, the better the workload and faster we get to Mars!

Salacious-36 karma

How do you see private space flight evolving in the next few decades?

spacexdevtty77 karma

It may start with suborbital but we are close on those heels!

As a company, our goal is see people living on other planets--and for our part, we’re doing everything we can to make that happen. Elon is driving to make this happen in 10 years. Right now, we’re working with NASA to make the final mods necessary to start taking people to station. And we’re working on making the world’s first fully reusable rocket--the single most important development necessary to start making space accessible for regular people. Whether it’s us or some other company that ultimately figures out the best way to get people on other planets, the future of private space flight today looks a lot more promising than it ever has.

otibom32 karma

Tabs or spaces ?

spacexdevtty60 karma

There is only one correct answer to that question.

dqhigh27 karma

What's it like working with Elon Musk and how involved is he with your current projects?

spacexdevtty45 karma

Elon is very hands-on, especially with software, given his previous experience with PayPal and Zip2.

PecanSoup26 karma

I keep seeing ads in indeed.com asking for aerospace welders. This seems like a really great company with really cool projects, and I would love to work on some new space craft. The problem is that all of the welding positions ask for 10 years of experience with exotic metals. Will there ever be any entry level welder positions? Or, what would be the best way for me to start working for SpaceX as a welder?

spacexdevtty54 karma

Will PM you

ergzay23 karma

You use fault tolerance in your system. How do you manage computers failing in flight without having the vehicle get confused about current program state? I know you had an incident on the most recent flight with a computer desync. What was that like?

spacexdevtty48 karma

We have a continuous barrage of high-energy cosmic radiation which wants to screw with our computers. For this reason, we have a "triple-string" architecture where we have three redundant flight computers, any one of which can take control of the vehicle at any time should the others not be in good health. On our last mission to the International Space Station, we took a radiation hit that temporarily knocked out one of the three flight computers, but the other two got us back home safely.

Our own John Muratore gave an interview where he talked about this incident and our flight computer architecture.

LlaughingLlama21 karma

What sort of computing power (CPU, RAM, Storage, etc.) do you have access to on board the rockets and capsules themselves? What's "smarter," the Falcon 9 or the Dragon?

spacexdevtty67 karma

100 Dragon sized Falcons or 1 Regular Sized Dragon

lowencia14 karma

Has spaceX decided where their new location will be? I knew they were looking at south padre island in Texas. Any decisions yet??

spacexdevtty16 karma

SpaceX is looking at a number of locations including Texas, Florida and Puerto Rico, but we’re still in the early stages of that process, no decisions just yet.

Codiddy13 karma

What's the next potential energy source after fossil fuels?

spacexdevtty30 karma

We only recognize one energy source: caffeine

DeceptiStang11 karma

when do you guys go public? is it after you find rare minerals on a mission? i want to invest

spacexdevtty22 karma

We intend to go public but no dates have been set yet.

SlightlyOTT10 karma

What is the most useful thing you have learnt from SpaceX in terms of how it can be applied elsewhere?

spacexdevtty8 karma

Attention to detail. The crowd here is pretty relentless when it comes to reviewing your code and that obsessive attention to detail tends to rub off on you. And once you've absorbed it yourself, you can't shake it.

kayotik10 karma

Would you rather fight one spacecraft-sized duck or 1000 duck-sized spacecrafts?

spacexdevtty36 karma

One Spacecraft sized duck would definitely be cool to see but scary to fight. If launching either is not an option, then we would probably go with the duck. Now that would be a worthy adversary.

Ruffys10 karma

Favorite restaurant in Waco

spacexdevtty19 karma

Shogun Japanese Restaurant - love that place!

everyusernamesgone10 karma

What source control software are you using with LabVIEW?

spacexdevtty18 karma

subversion

unglad7 karma

Cheese: your opinion?

HappyHappyHappyHappy5 karma

Hello. I'm interested in working at SpaceX, but I'm not sure if my current interest (Math) will be what SpaceX desires from a software side.

You said in a comment that besides CS majors, you have some people who did Math working with you. Is the work done by the Math employees any more math-focused than say the CS employees? For example, do the Math employees spend more time coding to numerically solve differential equations, or would you say that there is no substantial difference between the work done by the two employees?

spacexdevtty7 karma

Good question but generally there is no substantial difference between the two. Math helps with the fundamentals big time but the key to getting hired and doing well here at SpaceX is knowing a particular programming language (relevant to our stacks) inside and out.

schwoogie2 karma

Can you poke someone in the ribs and find out when they will be testing the falcon heavy at vandenberg?

spacexdevtty7 karma

We're looking to have hardware at the pad later this year.