Six Lessons From Failing All of My Onsite Interviews
At the end of 2018, I was terminated from my first software engineering job where I was working for about a year. No, I was not fired, simply a casualty of a companywide layoff.
I was very lucky to get the job with my nonexistent experience in the first place and never had to work hard to get employed. And I was about to find out how lucky I had been up until that point.
Recruiting Funnel: Raw Statistics
I’ve been interviewing relentlessly for the past four months, for three of which I was unemployed.
I have applied for about 400 positions at multiple companies. Out of 400 applications, 16 resulted in some sort of phone screen, timed coding challenge, take home assessment, or a combination of the above (sometimes I was assessed more than once for the same position). I had seven onsite interviews.
But, alas, no offers. I failed all my onsite interviews.
The Turning Point
One Monday morning, shortly after I updated my spreadsheet with yet another unsuccessful attempt, I got an email from a recruiter with a contract role. We were on the phone the same day.
On Tuesday I spoke with the team manager.
On Thursday, I went onsite.
“Here is an ASP.NET MVC dummy app. Add CRUD functionality to it,” asked the manager, handing over keyboard and mouse.
No sorting, recursion, dynamic programming, binary search tree, graph or algorithm questions. No Marcel Proust questionnaire trivia (ex: What is your greatest weakness?). Just build a simple web app. Have you ever seen an easier onsite interview?
Now I make more in a week than I was making in two at my previous role, working on an exciting project at a world-renowned company.
So what is the meaning of it all? I went through the process of customizing my resume, writing a new cover letter for every position, filling out long, mind-numbing application forms, talking on the phone with countless recruiters (and scammers), doing difficult phone screens, attending onsites, and getting rejected over and over.
And it culminated in a random moment of luck. Can I infer something useful, or was this just a waste of time?
Here is my take on the lessons that can be deduced from the process:
Luck Is Common, so Be Prepared
Luck is a lot more common than we realize. By asking co-workers, relatives, and friends, I’ve come to realize that people frequently get ahead in life by luck.
As one of my acquaintances put it: “I would not be working here [his current job], if I didn’t go to that wedding where I met my future boss.”
When we perceive someone to be lucky, we often see only the tip of the iceberg. They got lucky because they had done the prep work and were prepared to take advantage of the situation when the favorable circumstances presented themselves.
In my case, dozens of resume revisions, regular pitch deliveries, and careful word selection about what I had done at my previous position certainly helped in capturing the recruiter’s and manager’s attention.
Without the experience of long onsite interviews and exposure to many different interview styles, I likely would not have been able to do well on an easy one.
It Will Take Some Work To Get Employed
Getting employed is a difficult and soul-sucking full-time job. If you feel down on yourself, understand that you are not the only one struggling.
Less than 5% of my applications resulted in any kind of response, and I do have some experience in the industry.
On a positive note, if you do get to a phone screen, and you perform well (because you sharpened your technical skills with deliberate practice every day, rain or shine), you have a strong chance of making it to an onsite. LeetCode has been an essential tool in my preparation.
I was officially invited to two more onsites and was almost guaranteed to get two more. That makes a total of 12 onsites (including the successful one), which means that if I made it to the phone screen, I had a 75% chance of making it to an onsite interview.
I suspect that you may experience a similar result.
Strong Foundation for the Position After
Every week I talked to dozens of people and made attempts to connect with my interviewers on LinkedIn. Even though I did not get an offer, many were happy to keep in touch and to refer me for other positions later, when I have done well enough.
With little effort, I have doubled my professional network. Should I need to look for a position again, I have a lot of contacts at different companies who would be willing to refer me directly.
By reading job descriptions and deciding whether I was qualified enough to apply for the position, I learned exactly what I need to know in 2019 if I want to have a good shot at getting employed.
For example, three topics that show up on job descriptions very frequently are Microservices, Cloud Computing, and Containers/Container Orchestration (ex: Docker, Kubernetes).
I plan to get a basic understanding of the above and to be able to talk about them in an intelligent manner. Mentioning experience with these on your resume or LinkedIn profile is guaranteed to make you stand out in the eyes of the recruiters.
Get Comfortable Hearing “No”
Get used to hearing the word “no.” It will make you more mature, will let you practice emotional control, and will build up your personal boundary, making it easier for you to tolerate rejection.
So long as you make the decision to not take it personally.
Accept the rejection for what it is, make a constructive decision about what you need to do better next time, and move on. Have faith that you will get to your goal. Eventually.
Some Things Are Just out of Your Control
Your interviewer may be dealing with some problems outside of work and as a result may criticize you harshly during a review. He/she (or even the team as cohesive group) may have a natural bias against you for whatever reason.
As a personal example, I can recall at least one time where I got the feeling that the team was extremely wary of letting an outsider in. Almost as if they were forced to conduct interviews and not particularly eager to hire.
Answer questions to the best of your ability, thank your interviewers, and be on your way. Stressing about the result, stiff competition, or team dynamics is a waste of your inner resources, because it is outside of your control.
If you get the position, great; if not, no big deal—don’t take it personally, and prepare better for the next interview.
Figure Out What You Don’t Know
Sometimes you may get asked a question with an expected answer, and if you don’t know what it is, you are out of luck. For example, during my onsite interview at Lyft, I was asked a question that was designed to be solved by employing trie data structure.
Unfortunately, I didn’t even know the name of this data structure, let alone its implementation, big O runtime/space complexity.
Over the next few days, I studied ins and outs of tries, and guess what questions I was asked during my very next phone screen?
Always go over the interview questions that you didn’t perform well on, and do your best to figure them out later in a less stressful environment. There is a strong chance that you will encounter the same concept (often the same question).
Consider writing about your interview experience on Glassdoor. Putting it down on paper (or typing it on the screen) is a great way to reflect on the experience in a more structured, organized fashion.
Leverage your negative experience to succeed in the future.
Turn Your Failures Into Success
When you have little to no experience, looking for work will be difficult; there is no sugarcoating the fact.
You will get rejected a lot (often multiple times a day), and some of the interviewers will not like you, but those of you who are willing to do the real work and put in the time, will succeed.
Eventually. Every time.
Whether you are just starting your job search or are in the middle of it, I suggest keeping the following key points in mind:
- Be prepared to take advantage of luck when it presents itself to you.
- Expect to do the hard work to get employed.
- Build a foundation for the role after your next role.
- Do not take rejection personally and keep pushing through.
- Accept that you cannot control other people’s thoughts or the environment, but you can work on your technical and soft skills every day.
- Do a debrief after every interview. You want to do better next time you are asked a similar question to the one you struggled with last time. You want to see progress.
Even if you are not a stellar developer and have limited experience, with persistence you can land a good role.
And once you do, it gets much easier from there.