I want a job, but don't want to do those stupid tech interviews
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 ] threadEven 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.
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?
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"
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.
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?
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.
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?
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...
The process concluded with them offering me that I may apply a year from now, again :D.
Anyway, here's a list of interview resources for programmers that I maintain (oriented towards companies like G/Fb): https://github.com/andreis/interview
And what jardaroh said.
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.
I am not sure that this works for all situations though; maybe I've been lucky too... I tend to work for smaller startups.
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).
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.
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.
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
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.
One of my favorite posts by Aaron Swartz, definitely worth the read: http://www.aaronsw.com/weblog/hiring
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.
Or
c) Start as contractor(some jobs hire over phone) / Join a IT consulting/staff augmentation firm.
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.
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?
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.
Might want to look up that author again ;)