I didn't sign an NDA, but I didn't make it onsite either.
After submitting my resume, a technical recruiter called to assess where my best fit would be, why I want to work at Spacex, etc.
After that, I was emailed a take-home coding assignment and given two days to complete it. The recruiter said it must be completed within three hours but there is no real way for them to check that. Still, I did as told. The take-home assignment consisted of four sections of soft skill and coding problems.
Once submitted, the recruiter answered five days later that I had passed. A second recruiter scheduled a live coding interview round for seven days after that. Communication was great.
The live coding interview was 90 minutes. The interviewer was very nice and gave me the impression he loved his work. It was in three sections: First, Quick question and answers regarding programming (overloading vs overriding, references vs pointers, etc). Second, coding in google docs: The algorithm was a binary search, but to return an index value, and I quickly learned where a gap in my knowledge lay. Third was to write some SQL questions with joins, the interviewer expected MySQL, and I know Oracle SQL (which my resume listed), and so he just took what I did at face value. Not a good sign.
Either way, I bombed a simple programming 1 binary search and there was no saving this interview. Two days later I got the rejection email.
He told me he had worked there three years on a small team running "the brains of Spacex" and never met Elon Musk.