I applied online. The process took 2 weeks. I interviewed at SpaceX (Redmond, WA) in Dec 2016
Interview
The process has 5 phases. First there is a short debugging quiz. This test asks you to look for simple bugs in relatively short functions. Next is a technical phone screen with a recruiter. It seems like the recruiter has a list of questions with expected answers and grades you based on that. The third phase is a phone interview with an engineer who asks you standard questions about your background and experience as well as more in-depth technical questions related to the job.
The fourth phase is a 6-hour programming challenge. I can't go into the details of it, but I can say that it seemed like an appropriate level of difficulty considering the role I was applying for and my experience level. Unfortunately I did not have enough time to finish the project to their standards (mostly due to poor time management; I was close) and I did not advance to the final phase, which is an on-site interview.
Interview questions [1]
Question 1
What is the difference between a reference and a pointer?
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.
Recruiter screens usually hit: time/space complexity of common operations, why O(log n) beats O(n), array vs hash map vs linked list tradeoffs, and Big-O of sorting. Want me to drill you on these?
Interview questions [1]
Question 1
recruiter called, they has a few big O questions and basic DSA