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?
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
Phone call with a recruiter discussing SpaceX, its goals, my resume, professional experience, interest in the role, availability to work overtime, and ability to handle additional responsibilities when needed for the position.
Interview questions [1]
Question 1
They asked me to tell them about my professional experience.