Adventure Code

Logo

Personal blog

View My GitHub Profile

back to Homepage

I've failed my Facebook interview, but that's okay

The idea for this blog post came to me after I had a hard time handling negative thoughts and emotions following my failed job interview with Facebook. I wanted to share what my thinking pattern was and how I tried to organize the thoughts in my head in order to end up with a more positive outlook. So in part, I am writing this as a form of self therapy. Also I am writing this because I can, as I am in between two jobs right now and I can share interview experiences freely, without affecting my actual work environment.

Background

Earlier this year a recruiter from Facebook reached out to me and asked if I would be interested in applying for a machine learning engineer position, in one of the new tech hubs about to be opened. I have to admit, I was flattered. For a software engineer interested in data and machine learning systems this seemed like a golden opportunity.

Although I'm not a huge fan of social media and Facebook had its fair share of controversy and scandals, I still wanted to get hired. Social media has a great potential to create good in society. And from an engineering perspective the technical challenges are amongst the greatest I can ask for. Being able to work on fake account identification and removal, for example, and by this fostering a healthy public discussion, seems like the kind of dream job to me.

And lastly, if I'm really honest to myself, I wanted to get hired to look cool. Getting hired by Facebook would mean that I made it. I wanted the validation and praise of others, and I was already imagining how it would feel, when people are congratulating me. Not the best kind of motivation, I realize, but at the time this was one of my main drivers.

The interview process

The first step was a technical screening, where I had to solve two medium difficulty coding challenges in 45 minutes. The problems were not obvious, but were not impossible either. I've managed to come up with a solution for both problems, however after the interview I've realized that I did make a couple of mistakes. After this realization I was really angry at myself, as the mistakes were silly and very easy to spot, but I did not notice them during the interview. I was expecting to be rejected, because of my silly mistakes, but in the end neither of my solutions were correct. However, the feedback was that I passed the technical screening, as they valued the continuous communication and the way I have explained my thought process more than the correctness of the code. This was surprising and also gave me a lot of hope.

The next step was the onsite interview rounds, which was held remotely this time. This round consists of 5 interviews, each one with a duration of 45 minutes, covering various topics. There were two interviews focused on live coding, algorithms and data structures, similar to the technical screening. Then there was a behavioral interview, where they checked motivation and culture fit. Finally there were two design interviews, one focused on scalability and large systems and another specifically targeted at data and machine learning systems.

I was intimidated by this second round of interviews. They have sent me tons of materials to look through, videos, links to resources and example questions. It was overwhelming information at first. The good thing was that they gave me one month to prepare for the interviews, to have time to study and perform at my best. Studying and preparing, while having a full time job, was a bit hard, but a very rewarding experience. If you have a specific goal, like a scheduled job interview, you are way more likely to focus and have meaningful study sessions.

So then the time came for the interviews, which were scheduled during two consecutive days. I can't really recall how they went because of the stress and focus and heightened emotions. But my general feeling was that I did well, with a weaker performance here and there, but I was feeling hopeful. A week later the rejection email came "thank you for your time and patience, but we won't be proceeding to offer this time".

Initial thoughts

As a note, the experiences that I describe here, I was not fully aware of at the moment I was experiencing them. However, thinking back later, they became more clear and I could manage to write them down and reflect on them.

My initial reaction after reading the rejection email was shock and disappointment. The little voice in my head (the monkey part of my brain, see below) started to talk and come up with an explanation of what had happened and why:

Obviously this left me with a lot of negative feelings and self doubt, and I did not know how to deal with this. This was hurting my ego, so the monkey got to work again and came up with another explanation:

Dealing with failure

A big help in dealing with these thoughts were the ideas that I've read in a book called The Chimp Paradox, written by a sports psychologist. This book presents a mind management strategy, based on a not so accurate, but very useful model of the brain. According to the book, the brain can be thought of as the interplay and cooperation of three systems - a computer, a monkey and a human. The computer is responsible for fastest, automatic responses. The monkey is responsible for quick emotional reactions, while the human is the one doing slow reasoning and logical thinking. The paradox comes from the fact that the monkey is a double-edged sword, quick emotional thinking can save your life and benefit you greatly, while at the same time it can make you end up in terrible situations. So in short, the good strategy is to get to know your monkey and learn to manage them. The monkey metaphor allows you not to blame yourself, but instead just accept the monkey acting out and find ways to deal with it.

As described in the book, the quick thoughts of the monkey that popped up in my head, are not necessarily true and for sure they are not helpful. I was hurt and wanted to explain away the pain. But I don't have to blindly accept these monkey thoughts. I can choose to double check them, analyse them to see if they are actually true. Or I can try to change my mindset and expectations in order to come away with a more positive explanation.

An unhelpful thought: failed interview == I am not good enough

Technically this is true, but it is not accurate enough. As a rejected interview means - I am not good enough - right now, at this point in my life. This does not mean that I will never be good enough. I might learn and be good enough later in life. This is essentially the fixed mindset versus the growth mindset thinking, where the growth mindset allows for the possibility to grow and improve throughout life.

Also - not good enough - is too generic. Not good at what? There are many skills and abilities a person can have and no one can excel at everything. There will inevitably be stronger and weaker areas. So let's see what are the specific things, where I did not pass the bar. After a quick call with the recruiter, where I have asked for more detailed feedback, I found out the specifics. As it turns out the coding and behavior interviews went great, and I had a weak performance in the design interviews, specifically in designing complex data flows. So now, I could focus on improving those areas in the future, leaving me with a better self image and more motivation.

An untrue and destructive thought: failed interview == I am not worthy

I was convinced that my worth is tied to obtaining that job at Facebook. If I fail the interview, that means that I have failed as a person. I have attached my value to my potential new job. This is not just unhelpful, but it is also false. If I think about it, I don't value others based on job titles. My partner, my family, my friends are important to me because of other things, like their personalities, attitudes, common experiences and skills, not their job title. And the other way around, if I ask myself what would I like to be valued for by them? I'm pretty sure, I would not want to be valued based on my job. because that would be a sadder world to live in.

And yes, there are people who I admire also because of their job, but I don't really know them or they are not important connections in my life, or it is not the only thing that I admire about them. And of course, it is a good thing to aspire, to dream about getting a specific job, but my self-worth should not be tied to obtaining it. I might think that I know exactly what I want from my job life, but the reality is that I cannot be sure and I'm just assuming. Job satisfaction and meaningful work is super important to me, but that does not depend on any one specific job opportunity and can be achieved in a myriad of different ways.

An unrealistic expectation: interviews should be fair

Well, interviews are not fair. Life is not fair in general, unfortunately. Expecting interviews to be 100% fair is unrealistic. The interviewer has to make a decision in a limited amount of time, with limited information. It's hard for the candidate to transmit the right signals, and it's subjective how these signals are received and interpreted by the interviewer. And on top of that luck will always play a role (of course, if you are better prepared, that role will be smaller). It's far from a perfect process, but I cannot suggest an obviously better approach either.

Also, large tech companies have lots of applicants and the cost of hiring the wrong person is high. Because of this it makes sense for tech hiring to be conservative and risk averse, hire only the best performers on the interviews, even if they miss out on some potential talent.

So a more realistic expectation would be that interviews are not fair, but interviewers are doing their best, acting in a way which makes sense for their company. No matter how much I prepare I could still fail an interview, but that is okay, I can try again another time, another place. And finally, a failed interview could be a good thing, it could mean that I am not fit for the job right now, and could save me from ending up in a position where I will underperform and feel miserable.

Conclusion

In summary, disappointments are unavoidable in life and they can be tough to handle, however they need to be kept in perspective. The pattern I noticed in my own thinking is that after a failure the monkey in my head comes up with unhelpful explanations and applies unreasonable expectations, which lead to negative emotions. But after taking a closer look at these thoughts, and writing them down, discussing with someone, I could see that they are not necessarily true and many times they can be replaced by more realistic and helpful patterns of thinking. I can think of this whole experience as a great learning opportunity and hopefully, sharing this can help someone else, just as it helped me.