Facebook’s Interview is So Disappointing

TL;DR:
Facebook’s software engineer interview is focusing too much on how fast you solve an algorithm question, just too much. And that is clearly not a healthy culture.

I interviewed at Facebook for a software engineer position recently, after a phone interview, a four-round onsite interview, and an additional phone interview, I got rejected.

I’m just nobody and I don’t have much experience in the industry. I admit that I might not qualified to be a software engineer at Facebook, but that is not the point for this post, I’m just saying that the overall experience is negative. Here are the reasons:

1, Two (or more) algorithm questions per 45 minutes?

Everybody practiced about the algorithm questions. Some questions are easy, and some takes time to solve. However Facebook is expecting you to solve as many questions as possible during a short 45-minute-time-range. No matter how hard or easy the question is.

The fun fact is that many people interviewed at Facebook shared their questions afterwards, and it turned out to be Facebook has a limited question pool. So people are reciting the solutions of the questions that have been asked at Facebook, hoping that he or she could encounter the same question during the interview.

Since Facebook is expecting you to solve questions as quickly as possible, and Facebook has a limited question pool, reciting the solution is a great short path for getting the offer.

If you did not get the correct answer instantly, you’re not a good coder.

If you have some back and forth in thinking about a question, you’re not a good coder.

If you only solve one question during 45 min, you’re clearly not a good coder.

But wait, I have to say that the universal-algorithm-solving-genius that Facebook is seeking for may just be a good-solution-reciting-machine.

2, The interviewers have very poor timing control.

During my last phone interview, I was asked about a question related to binary tree. I admit that I was so nervous at that time and I made some mistakes at first, but finally I got the correct answer, and then the interviewer asked a follow-up question. After some time, I solved the follow up question. And there’s only 5 minutes left.

Then the interviewer asked me another algorithm question! With 5 minutes left! I was thinking maybe she would extend some time, however after I expressed some thinking on this question, she said time is up. When I asked for some more minutes for me to have a try, she said no.

I just don’t understand. Are you expecting me to solve a non-trivial algorithm question within 5 minutes? Are you kidding me?

The only reason I could think about is that the interviewer had a very poor timing control. She didn’t even know what time it was. That was so unprofessional.

Again, I solved a question, and a follow-up question, I’m still not good. (I have to say that I got the time complexity wrong at first, maybe that is one of the reason I got rejected, but the solution I proposed is correct.)

I have to solve the question fast, get everything correct very fast, and then finish the second question very fast (or even the third question), then I would get a chance. They never care about how you get to the answer correctly.

3, Different but correct answer is not welcomed, or is considered incorrect.

Since I’ve signed the NDA, I’m not going to share any questions they’ve asked here, so maybe what I said here is not persuasive. The reader may ask: how do you know your answer is correct? I would tell you that I have a copy of my code during the interview, and I’ve tried many different test cases afterwards, and I am 100% sure that mine is correct (with optimum time complexity).

During the interview, I did not get to my answer instantly, I have some back and forth but finally I had my solution done. I ran a test case, it was good, but the interviewer said, “your code is not good for this test case, blahblabblah, and time is up”, I don’t want to mention that it was actually his fault, I just want to say that he did not even give me a chance for me to explain. Overall he had an arrogant attitude and he was not welcoming a different but correct answer. He did not even think about it.

And then you’re considered not good at coding.

The End:

I just don’t understand, what the culture could be at Facebook?

As an software engineer I used a lot of Facebook’s open source softwares and it gave me the impression that Facebook is an open, friendly and prosperous company. Maybe I was right.

But now, Facebook will never appear on my dream company list.

The engineers don’t have the fundamental awe on technology. Sooner or later, a new sweat factory for coders will be established at Menlo Park.