This series is to help teach you how to get through your technical interviews. Sure, you can just go to leetcode, and grind out questions. But, here I’ll try to make your practice more efficient, help you even if you’d had trouble with interviews in the past, and help you figure out what to focus on. I’ll:
- Give you tips I’ve gathered by talking to some of the top interviewers at big4 tech companies.
- Tell you the most common missing fundamentals that lead to tech interview failures.
- Tell you about the many ways I’ve failed interviews, and what I learned from those failures.
Hopefully, you can use this knowledge to fill in your fundamentals, pass your tech interviews, and get any software job you’re interested in.
Who am I?
After graduating from the University of Waterloo, I started work at a big 4 company within a few months. I’ve worked at the same company for the past six years, and during that time, I’ve turned down offers from two of the other three big four companies, as well as many other companies. I’ve given interviews, mentored interns and helped many friends learn CS concepts to get jobs.
Bad interviews feel bad
Picture this:
You’re watching a handyman try to unscrew a door hinge. He doesn’t have a screwdriver, so he tries to remove a screw using a flat knife. He can’t manage to make any progress, so he tries looking around the house for another tool. Eventually, he finds a screwdriver, but not the correct one. Holding this approximation of the correct tool at an angle and twisting it awkwardly, he manages to remove the screw, and eventually the entire hinge.
In the end, the handyman managed to solve his problem, but it was exhausting. Even just watching him felt kind of bad.
The situation we’re trying to avoid
During tech interviews, a similar situation sometimes happens:
The interviewer asks a technical question that can be solved easily with knowledge of a particular cs fundamental (e.g. recursion, algorithmic analysis, graph theory).
The candidate (who wasn’t taught the important fundamental properly) approaches the problem in ways that remind the interviewer of that struggling handyman. (“Why don’t they just use the screwdriver? They have one, don’t they?”)
The candidate, after many false starts, comes up with a solution.
The interviewer is unimpressed and rejects the candidate. The solution was overly complicated and took a long time to explain.
The candidate goes home confused, (“I solved it, didn’t I? They can’t expect me to memorize everything.”).
The candidate researches the problem, they learn about a tricky solution that took considerable research (weeks, months, or even years) to come up with.
The candidate assumes the interviewer was looking for the tricky solution. He decides he’s ‘just not smart enough’ and stops trying to get into a top company.
When you’re trying to remove a screw, it’s obvious that you need the right screwdriver. But, when you try tackling an interview problem, it’s not always obvious that you need a particular problem solving tool. Interviewers give no feedback and candidates decide there’s something wrong with themselves instead of learning the missing skill.
Why you failed your tech interview, is meant to help you make sure you have all the tools before you go to your next interview.