I applied online. The process took 6 weeks. I interviewed at SpaceX in Feb 2016
Interview
I heard back from them a month after applying.
The first step is an online C/C++ quiz where you look at snippets of code and try to determine if there is a problem (off by one, infinite loops, etc) or if the code is good.
After that you get a phone interview from someone who is likely not a programmer. They have a list of questions and want to hear maybe a 2 sentence answer to write down. This person is not interested in hearing examples or thinking process. It's essentially a pop quiz that gets passed to an engineer afterwards for grading. Unfortunately this method provides little to no feedback. During other interviews with companies, I'd be talking to an engineer and so if I struggled a bit we would work through it together. Here you'll just get stuck and likely fail.
If you pass that, which I didn't, the next step is a 1 hour phone interview with an engineer.
After that, a 6 hour coding challenge in a screensharing environment so that an engineer can watch you code. This is presumably so that you can't blatantly copy and paste stuff from github or stack overflow.
Then there's the onsite interview.
Interview questions [3]
Question 1
List all of the sorting algorithms you know and their complexities.
Recruiting Call -> Several rounds of technical interview: very fundamental questions that probe your conceptual understanding. Make sure to study / review first principles as it gets theorectical. Quick 30 minute phone calls
Interview questions [1]
Question 1
Tell me about one project to showcase engineering skills
I applied for Software Engineer Data position. It was fine. 1 hour leetcode style interview on codility. The difficulty was medium. I had an alright experience. Was able to get brute force but not optimized solution.
Recruiter screen was a lot of trivia, very basic trivia that any software engineer should know so make sure to read up on some python syntax etc. to be able to answer the trivia questions. can be tricky given time limit
Interview questions [1]
Question 1
What are some basic python methods used in machine learning