I was initially contacted by a recruiter via LinkedIn. They set me up with an initial phone screening to ask personality and behavioral questions. This phone screen went really well, and I was quickly asked to schedule a technical interview which would take place over the phone and on Coder Pad. I studied algorithm design and whiteboard coding for about two months to prep for the interview to come. Interview day finally arrived, and I was called by a developer who told me that the interview would be based on my problem-solving skills, algorithm design, and it would be totally fine if I didn't know all of the language syntax because that would be absurd. First, I was asked basic questions about my programming language of choice (Swift). What is an optional? What are some ways we can unwrap optionals? What does the question mark do? What's the difference between a Class and a Struct? When would be an appropriate time to use one vs. the other? I was then asked the fairly popular, medium-level Merge Intervals leetcode question. It took me about ten minutes to walk through my process, code out my algorithm, and run through edge cases. The interviewer said that I had successfully solved the question, and moved on to the second step of the interview. This step required me to debug a faulty TableView. After making quick work of this step (I'm very familiar with TableViews - who isn't?), we moved on to the third and final coding question. I was asked to write a function that would run some task on a background thread asynchronously, and run a second task on the main thread after the async-task was complete. I wasn't exactly sure of the syntax for Grand Central Dispatch, and mentioned this to my interviewer. Regardless, I pushed on. I wrote out what I thought the syntax might be, explaining the difference between threads, the benefits/drawbacks of background vs. main, how GCD works in iOS. When I was done, I had something that, while syntactically incorrect, would run a completion block on the main thread after finishing the async-task. The interviewer kept repeatedly asking, "You don't know the syntax for this?" To which I continuously replied, "No, I usually have a custom function that handles this sort of stuff for me, but I know exactly how it works." And I would go on explaining exactly how GCD works and why. As you can probably already tell, I did not get the job. I was emailed by the recruiter two days later saying they had chosen to go with someone with a better understanding and memory of the syntax. I was shocked. Blown away. Not only do you constantly hear from recruiters, interview prep, and the Facebook tech community that syntax isn't super important during the process, but to have the interviewer explicitly state that it wouldn't matter, you would think they were telling the truth. Why would a "good" programmer memorize the syntax of everything? How is this really that important? When will there ever really be a time when I don't have code-complete during my job? I honestly loved the idea of working at Facebook. I still do, in fact, but working for people who don't realize or care how broken the interview process is, would get annoying real quick.