Saturday, September 14, 2013

Technical Interviews Make Me Cry

First, let me clarify one thing for those of you who've never dated me: I cry. A lot.

When I can't get my vagrant box setup correctly after 3 hours? Crying.
When I use an MVC framework for the first time in my life and I'm banging my head against it? Crying.

So, yes, on the spectrum of manly-man-no-emotions to chronic crybaby, I'm very much to the right. Above average, you might say.

Now, back to technical interviews. I've been lucky to have very few in my life, because I'm kind of a love-at-first-sight girl when it comes to jobs. There are very few job descriptions that I've read and fallen in love with, so when I do pursue them, it usually turns out well because it aligns so well with my particular skills and interests.

When I applied to Google, I went through a brief phone screen with an array of short questions (which were easy enough since I was still in the thick of my Computer Science major), a take-home worksheet with fun challenges, and an in-person interview which was mostly me talking about my favorite projects, with a few classic questions that I'd prepared for, like reversing linked lists

When it came to Coursera, I didn't actually apply. I thought I was just going to the office to meet the team and chat about our shared interests. But then they said "well, actually, we'd like for you to join us, and for this to be an interview." I freaked out, because, hey, I had not prepared for an interview — and I hadn't done one since that Google process 5 years before. But, maybe I could use that as an excuse. My first interviewer eased me into it gently and probably because of that, I managed to make it through the rest of them with a smile on my face. I still think they took it easy on me that day, because man, I've seen the interview questions that they gave to candidates that came after me, and I can't see myself making it through those with any degree of confidence.

A few months ago, I decided that I really wanted to join Khan Academy. I would longingly browse their jobs page in my idle hours, read their intern blog posts from top-to-bottom, and fork their repos on Friday nights. It became a bit of an obsession. (Shh, don't tell them how creepy I am.)

The interview process was scheduled to begin as most do: a 40 minute phone screen with one of the engineers. I wasn't sure how to prepare for it, what sort of questions I'd be asked. I figured I'm known for more frontend work these days and folks may be under the misguided illusion that I'm a JS expert, so I read through parts of the ECMAscript spec, reviewed the craziness of prototypal inheritance in JS, and read through all the frontend posts on that engineer's blog. Part of me thought I should study more, study enough that I'd feel confident that I could handle *anything* they threw of me, but that would have taken me months, if that. More likely, I'd never feel 100% confident.

When the time came, I sat there on my bed, on an unusually hot San Francisco day, and dialed into the Skype call. My interviewer started with the usual, asking me about a recent project I'd worked on, and I randomly selected something that was hopefully remotely interesting. Then, we opened a Stypi and he gave me the coding question. I won't say exactly what it was (in case that's his go-to question), but it was basically figuring out how to calculate some bit of data, nothing language specific, more math and logic.

And that's when I froze. I didn't immediately know how to answer the question, and I broke down.

I stared at the wall for minutes. I listened to my interviewer breathing, knowing that he wanted me to start working through the problem, but at that point, I couldn't.

The only thing going through my mind was "I can't do this."

I stared at the "hang up" button on Skype. I could just press it, and he would go away, and then I'd give up on my obsession, and I would convince myself it was a stupid idea in the first place.

I could feel my palms getting sweatier, and then I could feel the tears start to come. And the silence grew more uncomfortable. It'd been minutes since I said anything. I needed to do something, anything.

I finally managed to convince myself that I'd be an idiot for hanging up, and in an act of honesty, I choked out something like, "Um, I'm sorry, I've literally gone blank and not thought about anything for 5 minutes. I'm not used to coding on the phone."

And my interviewer understood. He guided me through it, urging me to keep going, even though I kept wanting to throw in the towel. I wanted him to give up on me, to realize the mistake I'd made in thinking I could meet their bar, to put me out of my misery. At some points, I couldn't type because I could no longer see through the tears that had welled up in my eyes. But eventually, we got to the end of it, and the interview was over.

And then the sobbing REALLY began. I had just finished the first step of the interview process with the company I desperately wanted to work for, and I'd bombed it. I’d frozen, I’d cried, I’d stumbled through my somewhat shoddy solution. Did I really deserve to even be an engineer, if I couldn't even make it through a phone screen? What gives me the rights to give talks at conferences, if I can't make it through standard interview processes? I was pretty damn frustrated with myself.

After a night spent in existential crisis mode, I found out that I'd made it to the next step. Apparently, my solution wasn't that shoddy after all and somehow, I hadn't scared my interviewer off.

It was then that I realized the most important part of prepping for the phone screens: confidence. Even if I didn't really have any, I had to convince myself that I did, and do everything in my power to not mentally run away. By the last phone screen, I was almost having fun.

This story has a happy ending: after three phone screens, a fun take-home assignment that literally had me bouncing off the walls in excitement, and a chat with the team, I was offered the job and have been working there ever since.

What are the take-aways from this?

If you're an interviewee: don't just prepare for the material, prepare for the format. If I had made myself go through the uncommon and uncomfortable situation of being put in the spot and asked to answer a random technical question, maybe I would not have cracked so easily when it came to the real deal. If you ever suffer from Impostor syndrome, you should probably prepare even more, because the standard interview situation will make you feel like an Imposter in the worst way.

If you're an interviewer: seriously consider the format of the on-the-spot technical interview and whether that's the best way to judge all candidates. In my experience, when we are programming on the job, we're given the problem and we have time to think about it. We have time to research possible solutions, we have time to try stuff out that we know will most likely fail, and we can wait until we have something decent before we show it to our colleagues. Oh, and as it turns out, I don't actually cry much at work - maybe a few times a year, when I'm already having a horrible day and I'm struggling against something that just won't work.

That's why I love the format of the take-home assignment. Both times that I've been given one (Google and Khan Academy), I loved them both because I had the time to really sink my teeth into them and because I got to experience what it would be like to work in that role. The take-home assignments were always very similar to actual work projects, so by doing them, I could figure out whether I'd actually be any good at it, and whether I'd like doing it. That's valuable for the interviewer *and* the interviewee. Yes, it’s hard to judge an assignment when you can’t witness its process, but it’s a surmountable task.

Now, I know that not everyone likes take-home assignments - and I know that some engineers absolutely love interviews, or at least prefer them to a take-home. So, I’ll stop here before this post becomes a 10-page exploration of alternative interview practices. Maybe that will be a future post, once I start being an interviewer again. Apparently Khan is keen to keep experimenting with more take-homes. :)

But just take this away then: remember that an on-the-spot interview can be incredibly intimidating and frightening for some people. Try to remember what it can be like to be in their situation. Ease them into it. Be understanding. And forgive them if they cry.

No comments: