“What would you say if I asked you to design me a service capable of responding to thousands of user requests every second and latency was critical?”
“Umm...that you have to solve this problem at work. But you’re out of ideas, and are looking to interviewees for suggestions”
That’s the actual response I gave the interviewer the first time I was asked a design question. He had a good laugh. But then still made me design the service.
In the decade since I’ve lost track of how many hours I’ve spent in the interview room, on both sides of the table. I’ve worked at Microsoft, Google, and Stripe, and received offers from many other companies. As I interviewed, I realized one thing: standard interviewing advice falls woefully short.
What good does it do to practice coding problems for weeks if your mind goes blank in an interview room? Everyone says to be wary of the recruiters, but what if you weren’t? How can you show your “best self” if you’re too afraid to let it out?
I tested the answers to these questions multiple times (sometimes by accident). Turns out conventional wisdom gets you conventional results. But you can do better. Interviewing is a skill and anyone can learn it.
For some reason no one talks about these aspects of interviewing, but I’ve found them helpful time and time again.
- Using recruiters to your advantage
- Going to real interviews for practice
- Being open to learning during interviews
- Keeping those skills sharp even when you’re not job hunting
Tip #1: Use recruiters to your advantage
Their voice sounds so friendly and helpful when you chat with them on the phone. “Zain, I’m looking forward to seeing you when you come for your interview!” Clearly it’s all an act, past-me assumed. I was sure they were secretly judging me, deciding if I was good enough to work at the company.
And they do judge. But not in the way I was expecting.
Recruiters aren’t evaluating you technically, not by the time you pick up the phone anyways. Their decision on whether you have the technical chops to be worth interviewing was made well before that call. If you’re being offered an interview: Congratulations, you've already passed that bar
Now the recruiter wants to work with you. Their whole job is to, you know, recruit. They know that you statistically have poor interview prep skills, and are happy to help fix that flaw. Why discard strong candidates who can’t interview well? They’ll level the playing field by helping everyone show their best selves when interviewing.
How can you take advantage of this?
Ask them questions! Things like:
- “What should I do to prepare for the interview?”
- “What are the company values that would be good to highlight during the interview?”
And be forthright about any problems you run into:
- If you get sick the day before the interview, call up the recruiter and ask to reschedule. They want to test you when you're at your best!
- Work pressures left you with no time to prepare? You can still try rescheduling. At worst they'll say "sorry, we can't do that". It will not hurt your chances of getting in
Your mad technical skills no longer matter to them. If anything, humility and an openness to learning will show you in the best light.
Tip #2: Go to real interviews for practice
You need to build up your interviewing skills. LeetCode is great, but it doesn’t come close to the real thing. Try to interview at actual companies as much as possible. And don't limit yourself to the companies you care about.
Learn to deal with pressure
When you're in a real interview the world changes: You're locked in a cage with a lion. Every heartbeat is a gorilla bashing against the walls. Your mental gears gunk up as your body goes into fight or flight mode. Your clammy hands struggle to write half legible code on the white board. A threat hides behind every shadow. Even an innocuous "Would you like something to drink?" is a nefarious test: do I pick coke or coffee?
You only get that experience in a real interview. And only real interviews teach you how to deal with it. The first interview will kick your ass. So will the second. But once you get a few under your belt you'll get used to the adrenaline rush. Perhaps enjoy it even. You'll become a bullfighter, confidently facing down the charging bull. That’s how you get over the fear.
You may even find that these practice interviews are much easier! When the stakes are low that lion doesn't look so fierce. I've found that I perform the best in the interviews where I don't care about the outcome. I'm much more relaxed and at ease. I can think faster, my brain reaches out to more possibilities. Now, even in important interviews I try to convince myself that I don't really care. That mindset shift is only possible because I got to experience it in the low stakes games first.
Learn to answer the more ambiguous questions
And what about the questions? After each interview write down all the questions you were asked. The same evening look over the questions while they’re still fresh in your mind. Focus especially on the behavioral and design ones which have no clear right answer. Consider how you could have responded better. Are there stories from your life you could have referenced? Wait a few days and look at them again. You’ll find better answers.
Each answer you prepare this way becomes a blob of paint on your pallet. Chances are high that you'll come across similar questions in future interviews. Over time you'll be able to mix the answers from your pallet to paint a picture highlighting how your abilities make you a valuable asset to the company.
Stay open to serendipity
As you do these interviews, you may discover that the “practice” company is actually interesting after all. Recruiters count on that. I’ve had recruiters suggest I interview even when I told them I didn’t find the company interesting. “Maybe you’ll change your mind after seeing us up close”, they suggest.
And I did. More than once.
Tip #3: Be open to learning during the interview
I learned this one by accident, but boy does it pay off.
In a college career fair once I was walking through the booths with my bag full of swag. My eyes caught a pile of rubik’s cubes being given away by some company I'd never heard of. I wanted one! Of course I couldn't just go up and ask for it directly, so I went and chatted with the guy manning the booth. His name was Vince. A few minutes later I walked away with my prized rubik's cube in hand. That evening I got a call from Vince offering to conduct a full interview loop on campus. I already had a job offer from a company I liked, but I thought "Sure, why not? I could use the experience"
I had no intention of joining the company, they were some boring finance business. There was nothing to lose. So during the interview I felt free to ask any question I wanted. When I thought I got the answer to an interview question wrong, I'd ask "I don't think I did so great here. What's the right answer to this problem?" (I wanted to learn the answer for future interviews!). When I was asked a challenging question I could grin and delight in the problem solving aspect instead of worrying about how badly it would reflect on me. (Remember my smart aleck remark in the intro? That was this interview.)
Turns out they liked that: the next day I had a second job offer. At a significantly higher salary than my first one. Oh, and they wanted to fly me to New York in two weeks for an introduction to the company. I still didn’t want to join, but a free trip to New York? Sign me up! The company's name: Bloomberg
Bloomberg was a practiced hand at recruiting. They had a full two days of events to leave us starry eyed about the company (I came thiiiiis close to accepting their offer). While there, Vince told me I’d made a great impression by fearlessly asking questions, even when I was stumped.
Since then I’ve stopped hesitating before asking any question in an interview. Let your curiosity run free! Don’t cage it! And as an interviewer, I can attest: sincere interest is always a good sign.
Tip #4: Keep your skills sharp even when you’re not job hunting
James Whittaker recommends trying to get a job offer every year, just to make sure you can.
It's an extremely liberating feeling knowing that even if you lose your job you'll be able to find another one quickly. That's a huge stress off your back.
I haven't been very good about this myself, but every once in a while I'll accept an invitation from a recruiter (it helps to set up your LinkedIn account). I don't bother doing any prep for these interviews, at least not initially. Those interviews show me the areas I need to brush up on or where the industry practices are changing.
For example, in a tech screen I did last summer there was some miscommunication and I didn’t realize they expected actual working code. Instead of the usual pseudocode written in a google doc, the interviewer told me to select my language of choice on an online IDE. Now, I don't have a particular language I consider myself super proficient in. I touch many different tools at work and end up having to use a different language about every 5 months. So even basic things like "create an array" tends to require googling the syntax. Given that, what's my favorite language of choice? C#, hands down. So I selected that.
What hadn't occurred to me at the time is that C# is a very verbose language which Visual Studio beautifully automates away the tedious parts of. This online IDE automated nothing. Even for a basic task like creating an array I had to spend precious interview minutes looking up the right package to import and the exact syntax to use. Needless to say, I ran out of time. I crashed and burned there, but it opened my eyes to the way interviews are changing and how I needed to prepare in the future.
Four months later a company called Stripe reached out to me. They also expect you to write working code and even let you use your own IDE. This time I was ready. And now I work there. (Psst, we're hiring!)
These four strategies have helped me over and over again to perform well in the interview room: leveraging the recruiters, doing real interviews for practice, asking questions during interviews, and keeping those skills sharp even after getting the job.
What do all these tactics have in common? They eliminate your fear. The fear that holds you back from letting your best self out. Do them often enough and interview rooms will transform from a threatening jungle into Tarzan’s playground.
“Remember, never let them see you sweat” Vince told me. But when the stakes are low and you’re having fun, who sweats?
Want to learn about how to develop the skills required to grow as an engineer and get interview offers in the first place? Subscribe below to get tips sent to you every week. You can also find me on Twitter.