The Four Principles of Nailing a Tech Interview
Let’s rip off the store-brand adhesive bandage really fast: Tech interviews are intimidating. On the whole they’re tough, stressful, and often quite arbitrary.
They can be frustrating and can even make you question your own ability. It often feels like interviewers—or the rules that interviewers are forced to follow—are trying to get you to fail. In some rare cases, perhaps they are. But for the overwhelming majority of them, there’s a simpler and less nefarious reason behind it.
The fact is that hiring for engineering roles is really hard. Hiring managers have a tough job: they’re tasked with acquiring employees who are talented, motivated, knowledgeable, good with people, and a good culture fit for the company or team. There’s no magic bullet for that! It’s kind of hard to blame them, for throwing crap against the wall to see what sticks. So, if tech interviews seem arbitrary, it’s because they are—because they’re trying to figure it out too.
This is not, however, a Dante-esque declaration of “Abandon Hope, All Ye Who Enter Here.” Quite the opposite! As with most tasks that seem complicated and insurmountable, the best thing is to see the forest for the trees. When there are too many things to think about, don’t try to think about all of them. Think instead about the overarching principles and goals of the task. When you can create generalized principles, it makes each little part of the whole seem like a bite-sized chunk of work rather than a brand new problem you have to work at from square one.
Generally speaking, a tech interviewer is trying to get a feel for how you think and how you respond to challenges and critical feedback. They want to know if you collapse under pressure. They want to know if you give up when something seems hard. They want to know if you get defensive when your work is scrutinized. They want to know if you can communicate clearly. (I cannot stress enough how important so-called “soft skills” are. Use your words!) So, let’s take a momentary break from the endless study of algorithms, pull our noses out of lengthy books about “cracking” interviews, and focus on some principles.
Ready? No? That’s ok! Let’s do this.
I spent the formative years of junior high and high school studying jazz. No, not that nonsense you hear in elevators and waiting rooms. I’m talking about the complicated, challenging stuff that would drive you crazy if you tried to use it as background music. I played drums and keyboards and liked to write music, so I spent a lot of time learning music theory—specifically harmony, scales, and chord progressions, especially as they related to improvisation. I struggled with a lot of concepts and sometimes felt that perhaps it was all a waste of time.
One year in high school, I was attending a clinic at the Lionel Hampton Jazz Festival. The clinic was being run by famed trumpet player Roy Hargrove. After melting all of our minds with one of the coolest performances I had ever seen, he opened up the stage to a Q&A. One of the questions was “How important is it to learn music theory?” His response blew me away and has stuck with me ever since. He chuckled and, with a knowing grin, he responded,
1 - “You need to learn all of that stuff so you can forget it.”
Hold the phone. What? Learning something just to forget it?
Obviously, he didn’t mean that the student should throw away their knowledge of music theory. He meant that if you’ve learned it and you know it, in some sense you don’t really need to think about it as much. As the genius-level blues guitarist Charlie Hunter once said:
“The idea is that you just practice that stuff again and again and again and again and make it as internalized as possible, so that when you get on the stage, you’re not ruining your own vibe by thinking about it. But again, it’s a process. You’re gonna ruin your vibe from time to time.”
This bit of wisdom isn’t specific to learning music theory. Peak performance in any human endeavor isn’t an entirely conscious thing. When we are performing (as programmers, communicators, musicians, athletes, etc) at our best, the world melts away and we are absorbed in the task at hand. But that can’t happen when we’re over-analyzing everything we do. Eventually, you have to trust that you’ve done the necessary prep work, and trust the instincts you’ve acquired.
At the end of the day, the tech skills you learn are really just tools on your mental toolbelt. And a phrase I often say is that the best tool is an invisible one. The more finely tuned your tools are to the task at hand, the less you think about the tools and the more clearly you think about the task. And I will tell you right now: It will absolutely win you points in a tech interview to be absorbed in the task given to you.
Yes, we’re talking about tech interviews, but don’t think for a second that the evaluation of your personality ever stops during the interview process. These people are going to have to work with you every single day, and they want to make sure that you’re going to be pleasant to be around. So, I have a piece of advice that applies not just to the interview process, but to your career as a whole:
2 - Have a good time, darn you!
I used to sweat bullets and feel the crushing weight of impostor syndrome during tech interviews. I’d get the sweats and my mind would race and I’d be mentally reaching for every algorithm and data structure I’d ever studied. The turning point for me came from embracing the truth that not every interview was going perfectly, and that worrying about the parts I couldn’t control wasn’t doing me any good. So I made a rule for myself. I promised myself that, leading up to a big interview, I would study, cram, and do everything in my power to be up to speed on all the hardcore CS stuff I thought I might be tested on, but that on the morning of the interview, that I would shake that all off and make the conscious decision to have a good time.
This may sound odd. Decide to have a good time? Like it’s a choice? My answer is a hearty Heck yes! All too often in our lives we treat emotions and states of mind like they’re things that just happen to us, or that they’re simply byproducts of circumstance. Hogwash. This is what we tell ourselves so we don’t have to work hard. Sure, there are parts of these things that we don’t control, but ultimately, our attitude and our state of mind is something we can choose.
On the morning of your interview, think about every single way your interview is going to be an enjoyable experience. Think about the interesting people you’re gonna meet, the cool office you’re gonna tour, and the challenging, fascinatingly difficult questions they’re gonna ask you. Those are all amazing experiences, whether or not you get the job. If you choose to live in the moment, and in that moment be excited and enthusiastic, that step alone will amplify both your performance and how you are perceived.
Now, all this positivity talk does not mean that I’m some kind of silly, naive optimist. Tech interviews are hard and intimidating. Unless you’re some kind of savant—in which case, you’re probably not reading this—you will eventually run into a question or a problem or an edge case in an interview in which you are absolutely gobsmacked. Perhaps they present you with a kind of algorithm or problem that you’ve never even heard of. Or maybe they bring up one that you know of, but you’ve never been able to understand (and were hoping they wouldn’t test you on).
So what do you do? Well, I’ll tell you what most of us do. Usually it’s one of three terrible choices:
- We start saying variations of “um” a lot.
- We stare at the problem in silence.
- We say, “I don’t know.”
All three of these are awful, but I bet you most of us have been guilty of at least one of them at some point. What all three of them have in common is that they are a form of bailing out when we feel flustered. Psychology has a thing or two to teach us about this, though. Experiments have shown that test subjects who were told to smile while reading something, regardless of the fact that the smile was forced and artificial, statistically felt more favorably about the things they read. William James, the guy responsible for turning psychology into a scientific discipline, is famously quoted as saying that when we run from a bear, we don’t run because we’re scared; we’re scared because we run.
What’s your point, Jake? Good question. My point is that if you respond a different way than you think you’ll feel, the way you respond can actually change how you feel. My rule for this situation is:
3 - Never be flustered. Always be interested.
Instead of sitting in silence, ask the interviewer questions about the question. Instead of saying “um,” say something like, “If it’s cool with you, I’d like to talk my way through my first thought about this.” Instead of saying, “I don’t know,” say, “Oh wow! I’ve never heard this one before. That’s a really interesting question!” Remember: Tech interviews aren’t about seeing if you know all the right answers. This is an interview for a tech role, not a role as a deity. Tech interviews are about seeing how you respond to challenging tasks, and I can assure you that “throwing your hands in the air and giving up” isn’t a response that is going to make a good impression on anyone.
If you want to make responding this way a lot easier, decide ahead of time how you’re going to respond. If it helps you, write down and memorize some responses that convey interest and excitement about the challenge you’re faced with. When you say them to the interviewer, you will likely find that acting out a mentality lends a bit of that mentality to you.
Which leads me a tricky subject. It’s a truth that is seemingly invisible until you learn it. It’s also a truth that will sound like nonsense until you’ve personally learned it. Remember what I taught you above about attitudes and moods being a choice? And remember what I told you about how you can choose to not get flustered? Well, the theme continues. The counterintuitive truth is this:
4 - Confidence is a choice.
As a person who struggled with self-confidence all throughout my childhood, adolescence, and early adulthood, I can tell you that when you feel timid, weak, and full of self-doubt, confidence sounds like something that can only come once you’ve reached some arbitrary benchmark. That confidence would then suddenly appear within you. You know what I mean. Once I know X / Once I have X / Once I lose X pounds / Once I can bench-press X pounds, THEN I’ll be confident.
However, like the “smiling while reading” experiment showed us, how we behave can affect how we feel. There’s actual real-life wisdom to be found in the phrase “fake it till you make it.” If you want to feel an emotion, do that emotion. If you want to have a character trait, behave as if you do. So, if you want to be confident, you first have to do confident. Yep, it’s an action, and it applies to any trait you want to develop. Think of the the kind of person you want to be, and once you have a good idea of what that person is like, act like that person.
If you feel timid and full of self-doubt about tech interviews, this is a tool you can use to show interviews your best self. Think of how a confident person would handle your interview. Stand up (or sit up) straight. Put your shoulders back. Smile. Be enthusiastic and friendly. Act like you have every right to be there. Look the people you meet in the eye. Give firm handshakes.
I know these all seem like cliches, but they’re really not. Unlike the cliches they resemble, they’re not about showing off how cool you are. They’re about putting you in a state of mind where you give yourself (and everything you bring to the table) the respect you deserve, instead of waiting around forever for something external to make you feel that way. Confidence is a choice, and it’s a choice that you can make.
Now, many of you have probably gotten this far and you’re cursing me for not getting technical about how to nail a tech interview. But there are an infinite number of technical things I could tell you about. Anywhere that I’d draw a line between what to include and what not to include would, of necessity, be arbitrary.
I make the assumption that you’re already doing the technical work. You’re doing algorithm and data structure stuff on HackerRank or CodeFights. You’re doing the daily challenge on Interview Cake. You’re reading Cracking the Coding Interview, etc, etc, etc. I could tell you the story of how one interviewer gave me—as the first, “easy” question—the task of creating a function that takes in an integer and returns a boolean representing whether or not that integer is a palindrome in binary, but that would just be an anecdote.
Tech interviews are a mind game. They’re a game between you and the interviewers, yes, but more importantly, they’re a game you play with, or against, yourself. In my experience, it has not been knowledge about specific elements of computer science that determined my success in interviews. It was how I presented myself. If you’re doing the legwork to know what you need to know, then trust that it’s sinking in, and on the day of the interview, have fun, be interested, and choose confidence. You’ve got this.
Ready to go? Learn skills for your new career in Code 401 »