I applied online. The process took 3 weeks. I interviewed at SpaceX (Seattle, WA) in May 2016
Interview
The full interview process has four stages: first a debugging quiz, then a phone screen, then a programming project, then an on-site interview.
The debugging quiz is looking for simple off by one errors, memory leaks, etc. They don't give you anything insanely complicated, just some 10-15 line functions. The phone screen is pretty typical, based on my experience they don't ask you for anything beyond what someone qualified for the job should know.
I got to the programming project which I can't say too much about because they make you sign an NDA. It was a 6 hour project which didn't involve any specialized knowledge, anyone with a programming degree or equivalent experience should be able to implement it. Whether or not you can implement in time however is another question, and unfortunately due to poor time management on my part I was not able to complete it.
Interview questions [1]
Question 1
What is the difference between a reference and a pointer?
coding assessment including DSP related topics, take home with test cases. full test had unknown test cases that were extensions of given tests. Also included phone technical interview, coding fundamentals and RF topics
Applied online has two round. First being an phone call with recruiter and the second being online with a team of engineer asked about my previous experience and then had a short coding leetcode style question
Interview questions [1]
Question 1
Explain a recent debugging problem and how you solved it.
Basic questions about python vs c++, am I authorized to work in the US, stack vs heap, projects and my experience mentioned in my resume, quick introduction about myself and why i wish to work at spacex.