That time I completely bomb my technical whiteboard interview
Man, how bad could it have been, you ask yourself?
|Ernie Hsiung||Oct 23, 2019|| 7|
Last week, I had a technical interview with Google. It went badly.
And it wasn't just, like, Asian modesty badly. The last 45 minutes were a slow-motion train wreck, one of those things where the interview finishes and both parties just sit in silence, mortified and let down; a one night stand where someone gets a little too relaxed and poops the bed, or calls out the name of their mother, or bellows out "HITLERRRRRR" just as they're climaxing, and now one person has locked themselves in the bathroom and the other is checking their phone, hoping an Uber can travel by the speed of light.
Everything up to that point had been okay. My resume is pretty good, I'm great with personality, I can charm the pants off of people.
I am warned about the types of things you get tested during the Google interview. I am prepared for this as well. I download an e-book on "cracking the coding interview." Google isn't mentioned, just inferred. I study every day for at least an hour or two.
I tell select friends I'm applying to Google, that I have, like, a 20% chance of getting in. Are you studying for it, they ask? Of course, I say. In the book, they give you a list of concepts to explore, things like hashes and lists and queues and computational times. There are other concepts like binary trees, breadth and depth-first searches. I know the ideas as they're pretty straight-forward. Still, I've never had to implement a binary tree in a non-academic setting, ever. It may be because I've always focused on user interfaces - what a person sees on the screen. Even the stuff behind the screen is, like, business logic. I don't bother building any of these concepts out in the programming language I know because there are 40 other concepts I am trying to study first.
I don't bother building out a binary search algorithm in the programming language I know. It's on my list of things to do, it just never becomes the next thing to do.
The interviewer calls you. They are from either Australia or New Zealand. They ask if I have any questions about the company, and even though neither of us hopes I don't have any questions, I ask anyway because I don't want to look like I don't care. He asks a "what would you do in this scenario" question, and I confidently give an answer. It could be wrong as fuck, but at least I answer it confidently.
He moves onto the coding question. The legendary whiteboard interview. How do you find a range of target numbers in a sorted array?
Here you go, you think to yourself. Your research gives some strategies: the worst thing to do, they say, is not to code at all. The way to not code at all is to overthink the problem. Code it any way you can, they tell you. Brute force.
You start to code out the "brute force" answer. You type about 30 characters until he stops you. Okay, that's enough, he infers, now do it the ideal way, in O(log n) time. He is telling you to build a binary search algorithm with iterating left and right pointers to find boundary edges. You know this because you read about it in the book.
Basically, he’s telling you to skip the brute force solution and just get to the fucking point already.
It throws off your tempo.
You try to implement the thing. You know you have to find a midpoint. But you forget how the pointers move to calculate a range of numbers. Does the right pointer move to the left, only stopping when it hits the left range boundary? Or is it the right?
It's silence on the other side. A vacuum. Your interviewer is probably writing a TPS report. Maybe he's drinking one of those mango lassi drinks he gets for free.
Does the right pointer stop after it crosses the left pointer? Should the left pointer move first? What if there were infinity target numbers? What if they were zero? Goddammit, you totally remember how to do this if you were just finding one element. But a range? What if--
And it's here, around the time you've re-written that function at least four times, where your mind blanks. Blank, as in, you're completely void of thought, and you feel your chest tighten.
What comes to mind after thinking about nothing is the time Angela had that one particular psychotic break, and the police had to be called to dragged her away. She goes catatonic, and her muscles go completely limp and crumple to the floor, making it more difficult for the cops to move her to the car. You catch yourself thinking about your mentally ill sister in the middle of an interview with Google because you are freaking out.
You know how this interview is going to end.
"Can I get a time check?" you ask.
"We're already 20 minutes over," he says," but take as much time as you need, I guess." You read between the lines.
"I can't do this," you blurt out.
"What?" This is the equivalent of job interview suicide, but it's true, you’re done.
This is where the silence happens, where all those feelings of disappointment and shame all bubble up. Google's core principle is optimization and efficiency, and you just wasted everyone's time. "I appreciate your time," you say under your breath. "A recruiter will follow up with you shortly," he responds. It's a throwaway comment.
The first thing you do after it’s all over is send an email to your friend at Google thanking her for the referral and apologizing she won’t get that referral bonus you both were hoping.
The next thing you do is devour an entire fucking pizza to numb out your feelings.
Later that week, I got turned down for two other engineering positions. I am, more or less, back to square one. This time with a bullet-riddled ego.
I have to believe I’ll find a job soon. Even if my brain chemistry is screaming at me to give up and move back home with my parents, there's a part of my brain — the one involved with logic, or farces I guess — convinced there's a position out there that I'm capable of doing while fitting my passions and making a suitable wage.
It just won't be programming at Google, I guess.