I want a job, but don't want to do those stupid tech interviews

34 points by graviboots ↗ HN
I'm in the market for a job, but the idea of going through the tech interview process is really off-putting. The interview process seems to consist of:

- Email back-and-forth with recruiter

- Phone call with recruiter

- Possible homework question

- Phone-screen interview #1 + online coding

- Phone-screen interview #2 + online coding

- On-site with 5 more interviews.

The whole process is a real pain. I'd love to just grab a coffee and discuss how we can work together. Is there any way to circumvent/short-circuit this whole tech interview process?

46 comments

[ 3.3 ms ] story [ 102 ms ] thread
There is. Create your own projects or contribute to existing projects. Apply for jobs with projects in your CV and explain a bit about your role in the application body. You can easily avoid step 3, 4 and 5.

Even better, if you contribute to a company's project(s) you might stand a chance to get hired by that company as you are already familiar with their code and do not need the default grace period, this is a long shot and should not be your end goal but it happened to a few friends of mine.

(comment deleted)
Invoice the interviewers for every coding session at a modest hourly rate. This way you both cut through BS, demonstrate your coding skills and come across as professional.
Wouldn't this post make more sense with a portfolio or some list of what you've done to earn a FastPass? Not that I disagree that tech interviews are broken/mundane/soul-crushing.
"I'd love to just grab a coffee and discuss how we can work together"

How do they know you are good? Do you propose they grab a coffee with every candidate?

Offer a 30-day money-back guarantee.
> How do they know you are good? Do you propose they grab a coffee with every candidate?

Decent grades in uni or school and/or appropriate references from your last workplace. Or do you think a handful of interviews can give a more thorough evaluation that 8 years of secondary school + 3-4 years of technical college/uni + however many years in the workforce?

> Or do you think a handful of interviews can give a more thorough evaluation that 8 years of secondary school + 3-4 years of technical college/uni + however many years in the workforce?

Actually, I do. I think that uni grades are mostly uncorrelated to real-life ability, and I think that there is a class of employee that's really good at looking good regardless of actually doing well. So his coworkers would say that he did great. Getting stuck with that guy really sucks. Not to mention that most employers are so worried of being sued that at best they'll say "I can confirm Joe worked here from 2011 to 2014"

Work experience yes, school wise no. Unless you are in one of the top 3 CS schools in the country and graduated top of you class, from experience, school grades have no correlation with ability.

Now, I know work experience is tricky as well (I once interviewed a DBA with 5 years experience that had trouble explaining me how to do some joins in SQL) but is more valuable than university experience.

> Or do you think a handful of interviews can give a more thorough evaluation

Yes, when done well

>3-4 years of technical college/uni

College performance (good or bad) is no predictor of how good you'll be as a developer.

>years in the workforce

Not all companies are the same, not all departments in big companies are the same. Managing to work for Bob in XYZ for 10 years and Bob loving you does not mean a) you're any good b) you're suited to a job with Jane in ABC

>secondary school

Are you serious?

This doesn't answer your question, but that's because I think that your question is unreasonable:

I get that tech interviews can be long and thorough and at times opaque, but would you want to hire a programmer after you've just had "a coffee and discuss how we can work together"? I've worked with a lot of people that can talk the talk really well but couldn't write code to save their life and it sucks to manage them and it really sucks to work alongside them.

Identifying and getting rid of a bad employee is difficult and expensive and time-consuming. As an employer it pays for itself to lose some potential interviewees that don't want to do a "possible homework question" in exchange for avoiding all of that.

Unless you're really special, you're, well, not that special. There's no magic bullet that entitles you to skip the queue. If there were, why wouldn't everyone just do that?

But you can skip the recruiter step entirely. Email the company you want to work for and ask what they have available. If you're in the Bay Area at least it seems like everyone is hiring.

> but would you want to hire a programmer after you've just had "a coffee and discuss how we can work together"

I would understand that in Europe, where it can be difficult to fire people, but in the U.S.? (In my country, we have like 3 months notice period, but also 3 months test period, during which employment can be terminated at will from both parties.)

And in fact, I got my first job - at larger American company - exactly like that (including the coffee, which my interviewer - an older director of the development center I was hired to - almost didn't finish). Well, it actually was a bit more complicated, there were two stages. But I think it's just balls.

If you say getting rid of bad employee is difficult, isn't replacing that with a difficult process, through which everybody has to go, actually less efficient? Isn't it kinda like forcing everybody who buys a DVD watch those commercials about piracy?

Some or most countries in Europe also have probation period of up to a few months during which either party can simply terminate the employment. That should be enough to weed out bad hires.
It is, but at the same time you waste all the resources and time invested in the new employee.
It lets you stick with the herd. People expect interviews to be long and painful, and won't single out your company for criticism. If you fire a bunch of people word will get around and that's going to be a red flag for some of the best candidates.
An interview process has become fashionable in which candidates are asked to solve brain teasers or write code or pseudocode on whiteboards while the interviewers look on. Personally, I stink at both tasks and have never done well in an interview where they were used. You may therefore consider that the following comes from a biased source.

When I first went to work at Apple in the late 80s, they didn't use that kind of process (I don't know what they do now). They asked to see my previous work, to have the names of people I'd worked with, and to have me describe what I knew and how I might approach certain kinds of problems. That seemed reasonable to me then and still seems reasonable to me now.

I worked for several groups in Apple over the years, and I often had to go through similar interview processes even when moving within the company, but I never had to jump through the sorts of hoops that are all the rage nowadays.

The first time I encountered this currently-popular process was at Microsoft in the early 90s. The young Microsoft guys (and they were indeed all young guys) who implemented it took evident delight in roasting the candidate. There's no doubt that I failed that process, but I got a generous offer anyway, presumably because voices higher up wanted me at Microsoft. (I turned them down. Their interviewers turned me off; I didn't want to work with those guys.)

My impression of their process is not an isolated one. I knew several other people who reported the same thing. One of them was a guy who was rejected by that process, but who later went on to create and lead a Microsoft research project that has since become very well known. During his hazing he solved one of the posed problems elegantly, but was knocked by the interviewer because he didn't know the name of the data structure he had used. I remember thinking at the time, "the guy invents an efficient data structure on the spot to solve your problem and what concerns you is that he doesn't know its name?"

These hazing-ritual-style interviews don't measure what they purport to measure. You are asked brainteasers allegedly to explore whether you have the kind of mind that excels at problem-solving, but that's not what those questions measure. What they measure is how well you can ignore the distraction of a potentially hostile audience while trying to think logically. Whiteboard questions are justified in the same way--"we want to see how you think." Bad luck, then, because what you will actually see is how thick-skinned the candidate is--how much composure they retain while in the spotlight.

Neither of those qualities has anything whatsoever to do with any of the work I've done in thirty years as a programmer. Brainteaser questions and whiteboard exercises make sense if you're hiring someone to solve brainteasers in a few seconds in front of an audience; not so much for any other job.

Steve Jobs arranged a long one-on-one with me to try to persuade me to go to work for NeXT in 1994 (he succeeded). I had to go through their formal interview process after that, and one of their engineers tried to turn it into one of these hazing rituals, but his boss told him to cut it out.

Nowadays, though, they're all the rage. I finally started telling people I just wouldn't do it. If someone wants me to go to work for them now, my first question is about their interview process. If it contains elements I object to I tell them to forget it. Just mark me down with the worst possible score on those elements of the process. If you still want to talk to me after that, fine. Otherwise, you want someone else.

If you want to know what a programmer is capable of, look at existing work and talk to references. If you want to know how they think, engage them in intelligent conversation or, again, talk to people they've worked with. If you want to know specifically how a programmer will handle issues your company is grappling with, offer a short contract to solve some pe...

A while ago, a recruiter from one of the big players got in touch.. well, after 4 interviews they finally figured that I was too inexperienced (merge sort run time complexity is, in fact, way more important that most other things when developing mobile stuff). Total waste of time.

The process concluded with them offering me that I may apply a year from now, again :D.

If you want to fix fridges, that's perfectly fine, but at least try to understand why the people who build them might not be interested in hiring you.

Anyway, here's a list of interview resources for programmers that I maintain (oriented towards companies like G/Fb): https://github.com/andreis/interview

Sounds like you shouldn't apply for corporate jobs but smaller startups of some kind. Then you don't have to deal with recruiters and homework. Just show your work, maybe your Github account and write a nice letter. Always works.

And what jardaroh said.

The company that I currently work for hired me without an interview. I was hired because I was coming to the meetups that they held at their premises for all most a year (I was a student then). We worked on some great open source projects, hackathons and conducted a lot of free events and workshops with them all around town. No tech interviews, no negotiations and other stuff. We just decided to work together formally. Note: 2 of us were hired like this(at the same time)
" I'd love to just grab a coffee and discuss how we can work together."

I do not think the just grab a coffee type of interview leads to great productive teams. Such interview measures primary how charismatic you are, not what you can do.

Obviously, too much testing and too many tech interviews are waste of time and wrong. However, the company need to do some of it if it does not want to collect all local bullshitters and word smiths with no real ability.

Make something so good that they are using it on your prospective company before you arrive.
With iOS development I've typically had the interviews that you are seeking. I show them my apps over coffee and then I do a few hours (or a feature) of contract work (paid) for them and it usually works out and I continue onwards :)

I am not sure that this works for all situations though; maybe I've been lucky too... I tend to work for smaller startups.

Imho, this approach could work most of the time (sometimes a candidate could have other commitments and not be able to do contract work on the side).

As an employer i think there is nothing better than to be able to verify beforehand if a candidate will be able to do what you actually plan to pay him for. I would just change that "few hours" with few weeks and favor interaction with other employees (that will then be able to assess the candidate).

Get hired through your network: people you've worked with before, who know your OSS work, etc.

I vouched very strongly for a former colleague of mine, and the team basically just had a series of chats with him to get to know him, reviewed his github, and never threw him a homework problem or coding question because they considered my strong endorsement of him (and them knowing my character) to be enough. Needless to say, it has worked out well for all involved.

I imagine this strategy would only work if you already had a connection with the company that's recruiting. 100% of the roles I've secured since I started work at the age of 14 -- tech and non-tech, part-time and full-time -- have been through networking.
I have to plug my company, Mighty Spring (https://www.mightyspring.com).

We kill steps 1 and 2 and coach employers to conduct only one phone interview before moving to on-site. Would love to hear any feedback — lumen at companydomain.

I once got hired with a "just grab a coffee and discuss how we can work together" interview. It seemed great; I knew they were making a solid hire (because I'm awesome) and I got to dodge the pain of the gauntlet of technical interviews. Win-win, right? Then they continued to use this process to hire the rest of the team, which turned out to be at least 75% incompetent. I no longer think it was great.
Interviews suck, as incidentally does most of higher education. They exist for very well-established reasons, though, and it might be a wiser idea to try to improve them incrementally than to self-ostracise by outright ignoring them.

Anyway (as per my other comment in this thread) I maintain a list of interview resources for programmers (oriented towards companies like G/Fb): https://github.com/andreis/interview

My companies uses a 'gig-to-hire' process; I basically inbound my applicants, filter the ones who are "pretty good on paper" and offer them short, paid gigs on things. The 4 or 8 hour gig tells me more than any interview I've ever done. It's more cost effective too.

The best way to find out how well someone works with you is to have them work with you.

I'm building tools around this gig-to-hire process if anyone is interested http://ars.io/

Also, we're working on integrating the new JSON resume format which was mentioned on HN a few days ago.

There are a lot of startups that take a different approach to hiring. I prefer a system that places more emphasis on past work than the ability to perform in technical interviews.

One of my favorite posts by Aaron Swartz, definitely worth the read: http://www.aaronsw.com/weblog/hiring

interview != quiz
Having been interviewing people from time to time during the past decade or so I don't think the overzealous interview processes that companies currently do actually pay off in value versus time spent. Usually it's rather obvious whether the candidate is a "hire", "no-hire", or "not really sure" (=also a "no-hire"). Alternatively the company has collected a list of up to few candidates that are kind of all right but none of them strikes as a real yes/no either, so they'll end up hiring one of them the next time they really need someone, just anyone.

I think that a short phone interview quickly followed by a cup of coffee and an on-site 1-2 hour programming task with an informal presentation and/or QA section about the task with the dev team would be enough.

Basically, hiring boils down to

a) candidate not being an asshole, and

b) candidate being able to write programs.

You can figure out a) by spending time with him/her and you can figure out b) by seeing if s/he's able to finish the programming task. Then when everything has been sorted out, the athmosphere is more casual to talk about the approach the candidate chose, about the corner cases and pros/cons that were traded off during crafting the solution which also reveals quite a lot of the candidate. And that's all based on some programming task that is known and common to both parties which gives a nice frame of reference. That is, as opposed to how usually developers want to talk about things they're working on themselves and the candidate wants to talk about things he has done so far himself.

The only way to get a job over a coffee is by a) contributing to a open-source projects that you are interested in and where you think jobs are or maintaining a good github profile. b) building a minimum viable project and show that on HN, get some comments and hopefully some one acquihires you for the project/skills.

Or

c) Start as contractor(some jobs hire over phone) / Join a IT consulting/staff augmentation firm.

Why worry about tech questions? If you're a half-decent programmer and a half decent learner, memorize the top 20 questions in 2 days and you're good to go. Bam! Suddenly you're a standard deviation above the competition.

Don't complain about a system when you can game that system to your advantage!

Also, tech questions are a filter, you can only pass a tech interview in two ways:

1) Actually be competent, know and understand all that stuff, or be able to work it out really quickly without having heard the question before (which is much preferable!).

2) Be willing to take some time to prepare for a tech interview, even if you don't agree with how that interview is being done.

Either way, it says something about you. #2 tells me that at least you're willing to spend a bit of your own time preparing for that interview and that you probably, actually, want to work in this business.

If you're not even willing to do that, stop wasting my damn time.

#2 tells you nothing about the ability of the candidate to do the actual job.

In fact, mostly it is assumed that the candidate should prepare for the interview (i.e. #2).

Instead of this, maybe you should concentrate to come up with better interviews which tells you that the candidate is a good fit AS-IS for the given position?

First of all, if your business wants me to memorize stuff that has nothing to do with my job so that we can both engage in a game of pretend, I don't want to work there. Who knows what other stupid shit you'll make me do.

But what really alarmed me was the following sentence:

> Don't complain about a system when you can game that system to your advantage!

This is not only morally dubious, it can be downright dangerous. A broken system is unstable, and can quickly turn against you. If you see a fire in your neighbours yard you should do something about it, even if he is a total asshole.

Grab the book named "Cracking the coding interview". After you've finished with it and done all the coding questions (without cheating) all this crap will be a breeze for you. Plus you will learn some neat tricks which are invaluable for your day job. When I was planning to interview for a job I've done a research for such books and this was the most useful. Please note that I am not the author of the book nor an affiliate of him.
> nor an affiliate of him.

Might want to look up that author again ;)