that what I really wanted was to work at Khan Academy, on their CS platform. So I stalked their engineers on Twitter, forked their Github repos, and read their blog posts. I was obsessed, but I really felt like I would be a great fit for them in that role, if I could just convince them of that.
interview process, scheduling a 40 minute phone screen with an engineer. I wasn't sure what sort of questions I’d be asked, but I figured I was known as some sort of JS expert, so I spent a night reading through the ECMAScript spec. It was a great night.
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. Plus, I still had my full-time job to attend to (one where I was already working in a similar role), so I didn't have infinite hours to prep.
on an unusually hot SF day, and dialed into the Skype call. My interviewer started with the usual, asking me about a recent project. Then, we opened a Stypi and he gave me the coding question - a function to compute the answer to a question, using a bit of simple math and logic.
to answer the question, and I broke down. I stared at the white wall for minutes. I typed nothing. I listened to my interviewer breathing, knowing that he wanted me to start working through the problem, but at that point, I couldn'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.
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.
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."
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 even 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.
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?
of prepping for the next 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.
job and have been working there ever since, almost a year now. But this story could easily have had an unhappy ending. What if I broke down during every phone call, and never got my dream job? What if I had scared him off with that first one, and not had a chance to redeem myself?
negatively to technical interviews, despite being skilled in what I do? I wrote a blog post on this, and found out that indeed, I was not the only one. How many people out there aren't getting jobs because they can't get through the technical interview huddle?
I see that now, and I now recommend to anyone in the interviewing phase that they study for the format, not just the content. HOWEVER, I think there are inherent flaws both in the format and the content of technical phone interviews.
that isn't at all how we code on the job. We don't code on- demand solutions over the phone, we mull over a problem (often one which doesn’t have a clear solution), ask colleagues for their thoughts, maybe sketch it out on paper or Google for approaches to similar problems, and *then( code it out.
do math problems. I very much value my algorithms education from my CS major, however, I do not use it for 99% of my job. What I mostly use in web dev jobs is my specific frontend skills, desire to have a well architected codebase and APIs, and debugging skills.
would actually do in a job? At Khan Academy and many other companies, we're starting to experiment with the take-home project, which is both an opportunity for the candidate to see if they'd enjoy working on the kind of projects we do, and its an opportunity for us to see how well they do in a more natural setting.
how incredibly intimidating that experience can be, be understanding, ease them into it, forgive them if they cry. If you have any power to experiment with your interview process, please do, and please share the results of what you try. The technical interview process is still an unsolved problem, and one that we can all work to find an optimal solution for.