Ask HN: Afraid of interviewing

20 points by amatxn ↗ HN
I have been looking for a new position but lately I am paralyzed with fear over interviewing. I've been a generalist developer in small shops (wearing many hats) for 13 years and programming in many different languages.

Previously seeking a new job was not a problem, but now I am afraid to pursue positions past initial contact because I feel like I will completely fail due to lack of skills. I see people less qualified than me switching positions but I can't get out of the starting gate. Even turned down an in person interview in Austin because of this fear.

It seems that many HN jobs and other developer jobs test on CS fundamentals. I don't remember a lot of algorithms/data structures/discrete math/etc and/or use them much day to day beyond basic needs (list/array/hashmap) - my current job simply doesn't require advanced knowledge.

I'm currently reviewing CS fundamentals and practicing code challenges on code eval - which I enjoy because I like solving problems and learning.

I would like to pursue a new/challenging opportunity - is my fear unfounded or should I study more before interviewing?

29 comments

[ 2.8 ms ] story [ 74.5 ms ] thread
"Believe half of what you see, and none of what you hear" - a quote that really applies here. I've seen quite a lot of developers who are good at talking, and being critical to show knowledge - but usually it's a psychological cover for feeling insecure. This is why some developers brag about knowing obscure things, for example. Anyways, my point is - that if you haven't used it in 13 years, it doesn't matter anyways - don't feel insecure. In addition, many of those coding questions are usually created by 'inexperienced developers' who don't know how to gauge talent, so they put together 'obscure, factual' questions.
Thanks, that makes me feel better. I've met developers like that and was even asked a trick question over MySQL and stored procedures years ago.

I will continue to learn for the sake of learning which I've always done - not so much for interviews but to learn how to solve problems in different ways.

Also, in my personal experience, "I don't know" is a valid answer to those types of questions, as long as it is followed by an explanation of what your methodology would be to fill that gap.
I'm not afraid of not knowing an answer. If I don't know the answer its just an opportunity to learn. Each interview I've been in has produced topics or technologies I do not know. I research each and every one after the interview.
Are you terrified of actually going through the interviewing process, or are you terrified of getting rejected?

It seems like you feel that you're afraid of getting rejected, but if you're turning down in person interviews, that seems like you're worried about the interview itself and not what happens after.

It's important to clarify because they're two very different problems. Turning down offers to interview is silly; if you get rejected from the job, you haven't lost anything (because you don't have the job now anyways) and you get the experience of interviewing. Based on how it went, you can then start pinpointing where your weak points are and start trying to shore them up.

Don't be so concerned about nailing the first interview out of the gate; interviewing is a skill like any other, and it's okay to need some practice.

I believe it is a bit of both. I have a high expectation of myself and haven't really failed before - I've been offered the job after all but a few interviews in the past.

Then I decided I wanted to shoot higher and had phone screens at Amazon (1) and Google (2) - 2nd video interview. These rejections have skewed my view.

My suggestion to you: get interviews in places where you don't want to work, or for jobs that you don't want to do. (of course you must keep at last in the field of interest)

This will ease your rejection fear, and train you to handle it.

That is a great idea, it will also help me learn you to say 'no' if an offer is extended.
This is also a good time to hone your negotiation skills with regards to salary. It's a lot easier to ask for something ridiculous when you don't want the job. Once you figure out what the threshold between 'reasonable' and 'ridiculous' is it sharpens your ability to get what you can.

Some people think they're worth more than they deserve, most think they're worth less. Being able to navigate the negotiation of my value has always been the hardest part of interviewing for me.

The only solution I've found for intense fear of something is to keep doing it over and over. For job interviews I've liked Larry David's concept of 'flipping it', start interviewing them for the right to hire you. Of course there a tactful way to do it, but getting myself into that mindset has helped with the nervousness.
Good suggestion - it's easy to focus on the interview being one way when in fact its is also for the candidate to vet the company.
I am a consultant that advises companies on tech interviewing. -- I have done 100's and 100's of tech interviews. I would be happy to mock interview you and give you feedback and advice. Contact in profile.

You are doing absolutely the right things to succeed at it -- you just need practice at doing it live.

Everybody is afraid of interviewing.

I've been rattled by every job interview I've had. That includes interviews for roles that I'd been courted for. It includes interviews for jobs I didn't even want, where I was interviewing mostly because a friend had asked me to. One of those interviews was for a company I actively disliked and would under no circumstance work for. I didn't sleep the night before! I did a multicast streaming media company in the late 90s and owned the router; later, I interviewed at a friend's company, got asked how to implement Towers of Hanoi without recursion, and for the rest of the day forgot everything I knew about routing protocols --- despite having spent the preceding two years doing nothing but implementing them.

Job interviews suck. They're hostile processes that involve complete strangers not just sitting in judgement of you, but also working under the delusion that their job is to break you so they can avoid hiring "B players".

I basically interview people for a living now and pay pretty close attention to this, and have come to the following conclusion: there is zero correlation between how people comport themselves in job interviews and their ability to do a job.

My best advice is, know the stuff you know. If you want to bone up on algorithms and data structures, don't cram. Implement them in your most comfortable language and watch them work, and go to the interview knowing not that you can recite them from memory, but that push-to-shove you can in fact throw down and get them working. Then just answer questions honestly.

The hardest interviews you take might be for the worst, most dysfunctional teams; a mean (or even just wicked) streak in interviewing candidates is a sign of broken teams, not weak candidates.

Good luck!

Everybody is afraid of interviewing.

This is a generalization that doesn't always ring true.

As I've gained experience, I've come to enjoy interviewing at times. Especially when I'm going into an interview where I feel quite comfortable discussing that particular domain.

If you're someone who doesn't mind social interaction and who doesn't lack confidence (for better or for worse), interviewing can be an enjoyable experience.

I doubt that I'm the only one who feels this way.

Maybe not. It hasn't worked that way for me. Also: no correlation between how strong I feel in the problem domain and how well I'll interview for it. And I'm just fine getting up in front of a room full of clients and selling consulting services, or getting in the face of a lead developer and telling them what they're doing wrong.

It's something about the "set and setting" of a job interview.

I'm unsurprised if there's a lucky cohort of people who just don't have this problem. Enjoy! For my part, I'm looking forward to spending more and more of my career beating the tech job interview to death with my bare hands, because I loathe it --- from both sides, as a candidate and now a hiring manager.

Death to interviews!

there is zero correlation between how people comport themselves in job interviews and their ability to do a job.

Agreed. What is your approach to finding good people given this phenomenon?

tptacek's approach to finding good people is fairly well documented, as it happens. I'm sure he can jump in and summarize it better than I can, but in brief: his company has several pipelines which generate quality candidates for the type of work his company performs (he is a co-founder of an application security consulting firm; the pipelines are a series of crypto challenges that are designed to teach you how to implement and how to break common crypto algorithms, and www.microcorruption.com, a ctf that teaches you to reverse-engineer assembly code and craft malicious payloads to take advantage of legitimate exploitable code, while defeating legitimate exploit defenses). These pipelines are, according to tptacek[1], very good at producing candidates who are interested in security work and are capable of doing same, regardless of prior experience. He has also refined his interview process in an effort to generate quantifiable and comparable information about each candidate, as opposed to e.g. asking candidates to solve brain teasers because it makes the interviewer feel smart.

[1]: I'm phrasing it in this way not because I don't agree with him, but because it's new enough that I don't think it's been established as objective truth. I'm of the opinion that the pipelines are very cool and fairly effective as recruiting tools.

w/r/t/ interviews, I would say that the outreach programs are less important than standardized interviews and work-sample tests.
I actually quite like tech interviews as well, but having been on the other side of the table many times I've come to realize that I am in a huge minority and you should start from the point of view that the interviewee is most likely uncomfortable.
Just keep interviewing, keep trying. You're going to have to interview with a lot of people who are clueless or rude before you find someone you want to work with (and who wants to work with you).

If you get stumped by a question, look it up when you get home.

I used to do tons of interviews at my former companies, so if you would like to do a mock interview, drop me a message (via my profile).
Pick a few different positions that are in your field but you aren't very interested in. Try to get interviews for them. If you do poorly, think about where things went wrong and how to do better in your next interview. If you do well it should improve your confidence. Once you're more confident start applying for the positions that you really want.
One thing to be aware of is imposter syndrome (http://en.wikipedia.org/wiki/Impostor_syndrome). From your description, it sounds like you may be selling yourself short. I don't know about the prevalence in CS, but this seems to actually be pretty common in academia.

There's a good talk on the subject from PyCon (https://www.youtube.com/watch?v=1i8ylq4j_EY).

Interesting... this could apply, by traditional standards I would probably be considered successful (BS, MBA, MS).

Definitely going to check out that PyCon talk.

That Imposter syndrome talk hit close to home and was very worthwhile - thanks for the link.
It sounds like your main problem is confidence. The simple act of having more confidence revolutionized the way I look at interviews.

Look at it this way, if you've really been developing that long, you're a fricken veteran. Unless you've been writing up TPS reports in Excel for 13 years, you've seen and used a wide variety of tools to build projects, and get things done. New grads may know the difference between a tree and a trie and how to optimally traverse each, but you know how to define a project, what to expect as you scope it, what types of tools tend to work best for different approaches, how to develop with an eye to scaling and maintaining, how to test things, how to deliver them to end users, and so on.

There are probably dozens of types of projects that I could ask you about in a social setting, and you could immediately deliver a 5-minute sketch of how to design and build them from scratch, pros and cons of various approaches, likely problem areas, etc. That comes from the experience of having lived it for a decade, and the confidence to recognize that you can do these types of things, because you have done them, and because you're smart and resourceful.

This sort of confidence in one's abilities is such an asset when interviewing. Just assess your skills, know what you can do, and talk like you know what you can do. Sure you don't know everything about these skills, but who does?

The thing about CS fundamentals and interviews focusing on them is just a lame facet of the industry. It's hard to assess complicated skills in a standardized way, so instead people ask about data structures and language syntax. It's like interviewing an architect by asking him minutia about specialty hammers, but it's just the way it is. Look at it as a flavor of FizzBuzz, read through some books on the topic. If you're asked such a question, try to get behind the question, see what the interviewer is really assessing, and speak to that out of your skill toolbox.

If you want some CS theory book recommendations, here are my favorites:

- "Cracking the Coding Interview" by Gayle Laakmann

- "The Algorithm Design Manual" by Steven Skiena

I'd also be happy to help out and hop on a call with you. I'm generally pretty good with this sort of stuff. My contact details are in my profile.
Engineering interviews are fundamentally flawed. Let me explain:

3 weeks ago, I had an interview at the big G. I wanted the job sooooo badly that I was insanely nervous during the interview. The interviewer asked me to write a piece of recursive code and I fell flat on my face. In my nervous state, I couldn't keep the problem and variables in my head. I had no concentration/focus whatsoever.

When the call was over, I did the task in about 20 minutes. No problem.

I DO NOT UNDERSTAND why coding under pressure, while someone is watching and judging, should be a part of coding interviews. Some people may be highly affected by the pressure. Others may have no problem with it at all. This means that people who are naturally more nervous are going to underperform lesser engineers who don't get nervous.

Now, if coding under pressure is part of the job, great. Then this method is appropriate. But it never is. Coding is a solitary, concentrated, focused effort. To test someone outside that natural environment is to not test them at all.

I honestly don't get it.