Recently, someone asked us how you know you’re ready to succeed in a Facebook/Amazon/Apple/Netflix/Google (FAANG) interview.
It’s an interesting question, and one I’m sure many of you job seekers out there are wondering.
Internally, we have our own beliefs, but we wanted to see if we could answer this question more objectively. So we set off on a journey to acquire data to try answering it.
interviewing.io helps prospective job candidates practice mock interviews with actual interviewers from the major tech companies like the aforementioned FAANG companies, as well as others like Dropbox, Uber, LinkedIn, and Slack.
After each mock interview, candidates are measured on a 1-4 scale against three criteria (technical ability, problem solving, and communication) and are also given an overall hire/no hire rating.
In our analysis, we used these scores to estimate a candidate’s overall skill level, which we would expect to be positively associated with “readiness”.
Additionally, we needed to know whether a job candidate’s skill level and preparation ultimately resulted in the candidate getting the job. Since most real world interviews happen outside of interviewing.io, we surveyed our users to learn how far through the hiring funnel they progressed at three popular tech companies: Google, Facebook, and Amazon. For each of these companies, at least 150 respondents reported participating in the company’s hiring processes. These were the hiring stages we asked for in the survey:
- Recruiter call
- Technical phone interview
- Take-home assignment
We also needed to consider variables that could affect a person’s chance of progressing through the hiring funnel, but weren’t necessarily related to “readiness”. In addition to the mock interview feedback ratings mentioned above, we grabbed the following data about users that we collect at interviewing.io:
- How many mock interviews completed on interviewing.io
- Self-reported career experience level (e.g. junior, intermediate, experienced)
Finally, we asked survey respondents to share data that our platform doesn’t collect but could be associated with a higher chance of landing a job. Here were those other attributes:
- Possessed a computer science degree?
- How many real tech interviews they’ve attended as interviewee (excludes mock interviews)
- How the person learned to code
- How long ago did they last go through a job search
Relationship of respondents’ technical scores to interview success
Intuitively, you would think that better technical ability would be associated with a higher chance of succeeding at interviews. To see if this intuition holds true, let’s look at the frequency of people passing a phone interview, bucketed by a person’s average technical rating on interviewing.io, and see if a positive correlation exists.
Based on 158 respondents who reported to have progressed at least as far as Google’s phone interview phase, we observed a positive-looking relationship, but maybe not as obvious a relationship as one might expect.
Looking at respondents who went through the Facebook and Amazon hiring processes, the relationship seemed even less obvious:
While it would be simple to conclude there exists no relationship between technical ability and passing a phone interview, it seems more likely that we were experiencing selection bias. After all, 60-80% of people progressing past Google/Amazon/Facebook phone screens seems a bit high relative to what one might expect.
Compared to the population of all people on interviewing.io, survey respondents with high average technical scores between 3 and 4 were over-represented relative to those who scored between 1.5 and 2.75. Maybe non-respondents with lower scores and who failed Google/Facebook/Amazon phone interviews happened to be less likely to respond to our survey.
So that’s pretty limiting. But let’s keep in mind that all models are wrong, yet some are useful, so perhaps it’s still possible to learn other stuff from the data. If the survey respondents’ technical abilities weren’t obviously associated with interview success, what about other factors?
More experience with real technical interviews is associated with future interview success
When digging further, the factor that stood out most was how many real technical interviews the candidate had done in the past. Across all three companies, people who had completed 5 or more real technical interviews tended to have higher rates of passing a phone interview than those who had less real interview experience.
It’s possible this large effect could have been confounded by other factors, so I iterated on the model to account for these factors, to see whether the effect of prior interview experience on interview success would continue to shine through.
Here were the factors considered:
- Average technical rating
- Average problem solving rating
- Average communication rating
- Number of mock interviews completed on interviewing.io
- Experience level
- Did the person have a computer science degree?
For 171 respondents who went through the Amazon hiring process, a statistically significant association continued to exist between prior technical interview experience and succeeding in a phone interview. Below were the predicted probabilities of passing a phone interview for a typical respondent in this survey (males with a computer science degree and 4+ years of experience, with average technical, communication, and problem solving ability), conditional on their prior technical interview experience.
|Prior Experience||Predicted Probability of Passing Amazon Phone Screen|
|1-4 technical interviews||65%|
|5+ technical interviews||81%|
For Facebook we observed a similar effect:
|Prior Experience||Predicted Probability of Passing Facebook Phone Screen|
|1-4 technical interviews||40%|
|5+ technical interviews||71%|
Finally, for Google applicants we observed that the number of interviewing.io mock interviews completed had the clearest association with interview success, not prior technical interview experience. While mock interviews aren’t exactly the same as real-world technical interviews, they are conducted by the same kinds of people asking similar questions and using similar assessment criteria. Because of this, it seems possible that the effects of mock interviews on interview success could be similar to the effect of real technical interview experience.
Below was the estimated chance of passing the Google phone interview for the typical survey respondent, conditional on the number of interviewing.io practice interviews attended.
|Mock interviews on interviewing.io||Predicted Probability of Passing Google Phone Screen|
Looking at the other variables we included in the model, we observed no other statistically significant relationships with success in phone interviews. It’s possible those relationships actually exist, but based on this sample, we did not observe enough evidence to reject the null hypothesis that no relationship exists.
So even after accounting for other factors, more technical interview experience was still associated with greater success in phone interviews.
We also wondered whether similar effects might exist when you get further down the hiring funnel. For example, could prior technical interview experience also improve your chances of receiving an offer after an onsite? We performed a similar analysis to predict the chance of receiving an offer conditional upon attending an onsite interview, but we found no noticeable relationships between the predictors listed above and the probability of receiving an offer. Sample sizes are naturally smaller when looking this far down the funnel, and perhaps the differences between candidates are smaller, which could be harder to detect.
Based on an analysis of this particular group of people, it seems we have a pretty clear answer to the original question of “What metric should be used to know you’re prepared to succeed in a FAANG interview?”
The answer is to experience five or more real technical interviews. Simple, right?
Why more experience with technical interviews helps you succeed in future technical interviews
I don’t know about you, but I find that answer unsatisfying. That conclusion seems really questionable and self-serving, especially when the recommendation comes from a company that offers mock technical interviews as a product.
I don’t blame you, and quite frankly, this result wasn’t what we expected either. The metric of technical interviewing experience is probably just a proxy for some other phenomenon that does correlate with interview success in some explainable way. After all, it’s unlikely that just showing up to five interviews will magically bestow upon you new talents.
So what is it about having technical interview experience that might be associated with success in future technical interviews? To dig even deeper, we followed up with survey respondents who successfully received an offer with Google, Facebook, or Amazon, and asked what factors they felt contributed to their success.
As you’d expect, nearly all respondents said practicing technical problems was the foundation for their success. So yes, technical competency matters, and no, past interview experience doesn’t appear to be a substitute for it.
Beyond technical ability, respondents shared anecdotes that hint at why such a relationship might exist, as well as some possible underlying factors that could explain what technical interview experience might proxy for.
Direct feedback from other people helps you improve quicker
It’s one thing to get a question wrong in a practice environment, and it’s another thing to get a question wrong when you have an interviewer looking over your shoulder. A few respondents shared instances when they performed poorly in an interview, and explained how those instances influenced their future behavior. These negative experiences clearly highlighted areas in their skillset or presentation that companies tended to rate less favorably.
I bombed multiple phone interviews with both Google and Facebook where the questions were about graphs or trees, and the questions were actually trivial. I didn’t have a formal CS background, and I knew that I was weak in those areas.
Once identified, respondents addressed those weaknesses through study and repetition, helping them allocate their preparation time more effectively.
For one job hunter, a past Google interview failure not only helped shore up a specific technical weakness, but also helped the person learn how to maintain a more focused mindset in general, which proved valuable in a future interview with Facebook.
Because my main weak spot in my Google onsite was being rusty in data structures and algorithms, I studied key data structures in CLRS, such as heaps and red-black trees. The Facebook interviews did not actually ask me to implement any data structures, but studying data structures helped keep my mind “on the game”.
Obviously, there are many other ways to receive feedback other than getting it directly from another person. For example, respondents also made extensive use of LeetCode and Cracking the Coding Interview-style exercises, and I’m sure many of you out there do too.
However, receiving direct feedback from another person seems different for some reason. Whether it’s about social acceptance or proving oneself or something else, feedback from another person seems to be internalized more, which can act as an efficient catalyst for personal growth as long as you keep your mind open to suggestions.
Respondents found direct personal feedback to be very useful, not only from feedback received in real interviews, but also from direct feedback in non-interview settings.
Whether it’s interviewing.io or friends asking each other questions or any generic peer interview platform, practice is different than practicing yourself. I found interviewers to be a resource rather than just someone evaluating you which is something you don’t get when practicing yourself.
While real interviews give you unambiguous feedback about your overall performance (i.e. you did or didn’t get the job), you don’t always receive specific feedback about problems you answered well or skills that you exhibited effectively. Simulated interview environments can be uniquely beneficial because they allow job seekers to engage in a two-way dialogue with the interviewer, which can yield more information than a simple “hire” or “no hire” decision.
For practice interviews, I worked with a friend who was also interviewing for Google and other FAANG companies. I heavily leaned on interviewing.io interviews from FAANG interviewers during the last stage of my preparation, to make sure I was ready for Google, Amazon and FAANG interviews in particular.
Knowing I received solid (and specific) feedback from FAANG interviewers was a huge help and signal to me that I was ready for Google and Amazon interviews.
So maybe the reason why prior technical interview experience correlates with interview success is because interviews happen to be the most common avenue for receiving direct, honest feedback from other people about how you and your skills are perceived.
You learn how to communicate in an interview setting, which is different than how you communicate in everyday work
Technical interviews can also require different communication patterns than what you might normally use in a typical workplace or academic environment.
For example, some respondents believe that it’s not enough to solve a problem correctly. Additionally, you are expected to narrate your thought process as you solve it.
Another thing study materials remind people is the need to constantly communicate your thought processes during the coding interview. Having done many interviews (and many more pair programming sessions), this is second nature to me, but I know it’s not second nature to everyone and bears repeating.
This implicit expectation can catch some off-guard, particularly if their preparation focused solely on programming exercises.
Solving Leetcode on your own is quite different from having to explain your thinking process to someone else.
These perspectives echo the advice given by our interviewer Ian Douglas in his guest blog post. All five of Ian’s tips help you improve how you communicate with your interviewer while you’re in the middle of the stressful interview environment. At the end of the day, a debugger won’t be making the final assessment on you, a bunch of human beings will, and the things interviewers look for encompass a lot more than the correctness of the code you write.
It is okay to get some guidance from the interviewer. You actually can feel that the interviewers are evaluating more than just your problem solving skills (your communication, how you work as a team, will you be a good person to collaborate with, etc).
By doing more technical interviews, you gain a better understanding of the unique interpersonal dynamics that exist during interviews. Those dynamics impact how interviewers assess you, and failing to adapt to those dynamics could obfuscate your true abilities. But once you’ve gained that understanding, you are able to hone specialized interviewing skills like the ones Ian suggests and apply them in future interviews.
One respondent took this concept to an extreme, re-learning a particular programming language from his or her past to be used primarily for interviewing.
[Python] is much more succinct and expressive than C++, Java, or C#, which I had used earlier in my career. By not having to write all the braces and semicolons, I free my hands and mind to dig deeper into the problem and better engage with the interviewer. I haven’t made my way up Paul Graham’s succinctness = power hierarchy, but in an interview situation, communication is the most important thing, and Python allows me to communicate with the interviewer better than C++ does.
This tactic probably won’t work for everyone. But there probably does exist a tactic that works for you. The more technical interviews you experience, the more chances you’ll have to discover those tactics.
You learn a lot about how to interview effectively when you communicate directly with other people
Going back to the original question, we said that the metric you should track is how many technical interviews you’ve experienced, because that is what the analysis of this particular set of people outputted.
But that shouldn’t be your main takeaway. The real learning is to acquire another person’s opinion about your interview performance, because you’ll learn a lot of different things from that person’s feedback.
We can help you accomplish that here at interviewing.io, with options to receive direct feedback from currently-employed Google or Facebook interviewers, and even help assess specific skills like systems design or front-end development. But as our survey respondents mentioned, there are other ways of receiving that direct feedback.
As I’ve written before, interviewing isn’t all that objective because people aren’t always objective. Given that interviews are still going to be conducted by other people for the foreseeable future, gaining direct feedback from others appears to be an effective tool for succeeding within the existing system, so you might as well take advantage of it.
 The idea that Python might be a better programming language for interviews isn’t totally crazy. Empirically, interviewing.io mock interviews conducted in Python have the second-highest success rate among the most popular programming languages. The highest? C++. So if you’re blindly going by the numbers, the respondent should have stuck to C++. However, chances are that this data also suffers from selection bias: people who know C++ might be different in many ways than people who know Python. Key point: use whatever works for you. For this person, Python happened to work better than C++.↩