Everyone sucks at interviewing. Everyone.
humbledmba.com
humbledmba.com
Interviewing is hard, but it's clearly not totally broken, given that some companies obviously do a far better job of it than others. Do we really believe that the big consulting companies or banks don't know how to filter for the better candidates given how much their business depends purely on having the smartest people? Are Apple, Amazon and Google really just more lucky at hiring?
One non-interview thing that I DO like to look at is publicly viewable work like open source contributions, blogging, social media activity, etc. If someone wants to work on web sites, and they're not doing anything web-related outside of their job, I have to wonder how passionate they really are about the domain.
Just anecdotally, I have a friend who has a wife and two kids. He's not going to spend all his free time forking on Github. He does take on side projects, and is a very talented developer. Sometimes peoples' priorities are simply different, but it's hardly a reliable metric to look at. And I say this as someone who does see himself as an involved member of the community.
You'd be surprised. Many many firms code via the endless-chain-of-6-month-contracts method. Yeah, eventually the code goes to pieces and needs to be scrapped and rewritten, but that point can be years after the existing management has moved on.
Are Apple, Amazon and Google really just more lucky at hiring?
It could very well be the case. Nothing breeds success like success. The best and brightest apply to Apple, Amazon and Google because that's where all the other best-and-brightest folk are applying. If your company doesn't have that same level of name recognition amongst the programming community, you might have a lot of difficulty raising your applicant pool to the same level.
I've hired for both big tech companies and startups and the applicant pool generally isn't that much better. It's not atypical to have to screen 50-75 candidates for one hire (that's actually talk to them, not just look at a resume.) I think a lot of folks just don't realize the sheer amount of effort and expense that top companies put into recruiting.
The reason I haven't bothered to apply? I don't know how good I really am. I keep jumping between over estimating and under estimating my ability. But, I'm pretty sure I'm not a rockstar since I suck at math. A weak math background keeps a bunch of computer science out of my reach. Still, I've taken a course on OpenGL and managed to pass with a high A because I worked extremely hard to understand all of the vector math that was required.
It certainly doesn't help that I've failed every logic puzzle that's ever been presented to me. Ask me to reverse the order of words in a string and you'll get:
"Words in a string".split(" ").reverse.join(" ") #=> "string a in Words"
I see little point in optimizing that until you can justify the need for a more optimal method. Whacking my brain for a better solution isn't worth it otherwise.TL;DR -> I haven't applied because I don't think I'm good enough.
At Google, logic puzzles are frowned upon for interviews. I personally ask questions that I expect candidates to be able to reason through and gradually refine into a good solution, there is no grand aha moment in the problems that I ask.
That sounds like a reason to apply, not a reason to avoid applying. Don't you want some new third-party evidence about how good you really are?
"Words in a string".split(" ").reverse.join(" ") #=> "string a in Words"
Which is, of course, the best answer you could provide. Unless you're applying for programming microcontrollers, that is.Do we really believe that the big consulting companies or banks don't know how to filter for the better candidates given how much their business depends purely on having the smartest people?
Consultancies like interviewing because they are looking for clay candidates. Workloads are inconsistent and variable; the skills required are generally learned on the job in real-time, so optimum candidates are those who are adaptable and can be molded into many shapes. Optimum employees can look smart while work long hours in small teams, so the hiring criteria are simple: 1) a good GPA 2) whether your interviewer likes you or not. These are factors you can get from an interview (or five).
However a lot of companies are looking for diamond candidates. Diamond candidates are functional hires; those who are very good at what they do, Erlang Ninjas or Ruby Rockstars. These companies are trying to find a specific skill set or a 'brilliant mind' which will complete/compliment their current working profile. Interviewing diamond candidates is useless.
I'd guess that the vast majority of firings are not due to incompetence. They are due to disconnects; cultural, vision, personality, whatever. A diamond candidate is tough to interview for these disconnects. By virtue of their technical ability, their fit is usually downplayed or compromised in an attempt to nab 'the best programming team' or the 'most visionary CEO'. This is why so many companies think that interviewing sucks. They're just looking for the wrong things.
tl;dr Interviews work for hiring people, not functions.
I dropped out of college (with a ~3.9 GPA) and I know many people with 4.0s that can't build SHIT in front of an IDE.
Your method ranks glibs over passionate people who are socially awkward.
Anyway, companies that have the time and resources are turning to this more - the summer internship program at microsoft is actually a 3-month interview, where the intern works on real code and gets a real review.
Which is great for people trying to make rent who are one paycheck away from living on the streets. Dick.
There's also the problem of selection bias. Your technical interviewers are going to look for people that resemble themselves. In a broad sense this is because they think they're smart and everyone else is dumb (and rightly so). The problem is that this strategy can be far too successful and you will invariably turn away a perfectly suitable selection of candidates along with the unsuitable ones. It's human nature and difficult to detect.
There is another form of selection bias in the interview process. You need to know that the candidate you're going to hire is going to be competent, assertive, and talented. However the exact match of skills, abilities, and personality traits that fulfill those broad categories are going to be based off of those skills, abilities, and traits you believe have helped you to be successful so far. When interviewing someone it is far too easy to check off the features a candidate is lacking and miss the ones they do have that you do not. A good hire, IMO, is someone who has some of the skills and abilities you already have and some you do not. Yet all too often, we look for people who have ALL of the skills we already have instead.
I think strategies such as the one in the article would at least by-pass many of the definicies noted above. However I think it might be impractical in some scenarios (ie: when the candidate is already in a position at another company, or when they have received attractive offers from other companies). It's a start though and I think alternative strategies should be considered more often.
First, contract to hire is a pure negative for the employee. People can "try a company" out just fine with a full time offer and then quit if it's not a good fit.
Second, it's far easier to find good people by poaching from other companies than it is by traditional means. No one is going to quit their job for a 3 week contract even if they're really unhappy at their current job. So, with this approach, you've just removed the biggest pool of talented prospects there is.
Prostitutes get paid at least. You were a rape victim.
That actually bothers me a bit. You do work as part of an interview, aren't offered a job, and aren't compensated for the work done, but the interviewing company gets to keep and use the work. I'm assuming the applicant would have had to sign something to that effect at the beginning of the interview process, but it just feels like a raw deal to me.
If your company is a total bore and no one in the bay area thinks what you're doing is at all exciting, then you're right. The ONLY thing you have to offer is a signed contract with a very high number on it.
But if you're actually doing something personally exciting to someone, they will absolutely take a few days out of their routine (with compensation) to explore that. Honestly, if someone isn't excited enough about my company to put a few days into it without a full time contract, I don't want them in my company.
I've put a few YEARS of my life into my company without such a contract. I'd expect my employees to have at least a fraction of that passion.
After all, they are already being paid on those vacation days, are they not technically working for their existing company?
What happens when your new employee's old company turns round and says 'Hey, we just found out about your wonderful scheme about testing out our employees when they're still under our contract. That means our intellectual property is in your code base. That employee has no negotiation power and you clearly knew that, our price for this bespoke job is $100,000. You've already got the goods, payment terms 1 day. Thanks.'.
I would never ask people to work without compensation. And I would never ask people to work "ungodly" hours. But I do want to work with people who are really excited about tech and about home gardens, and about making stuff that was impossible possible. Not many companies offer the chance to work on a problem like that, and for some people it's really exciting.
And they should talk to me. I've already had several people offer to work on the project for free just because it interests them and they're looking to explore other career paths.
I actually have never done the "let's do a trial weekend/week contract gig" thing, although I don't understand why you're so vociferously against that approach. Even if it limits me to people who are freelancers.... there are a lot of freelancers out there! And I'm not an unreasonable guy. If someone was excited about SproutRobot I would do everything I could to find a way to get them on board!
But if someone doesn't give a shit, and can't rearrange a couple days, or a weekend to figure out if we're a good fit.... I don't see how I'm a totally evil slavedriver boss if I think that's an indication of a poor fit for my company.
What's so terrible about wanting to hire people who want to go out of their way to work for me?
Edit: And what would you think about a company that required you to fly out for a weekend to do two days of interviews? You wouldn't even get paid for that! You must think that kind of demand is abhorrent if you think hiring someone for two days to get paid to work on the product is evil.
You could say the best way for them to find this out is by doing this 3 week contract for hire idea, but that's still a risk to the candidate.
THANK YOU (THIS THIS THIS)
Exactly. The other thing the companies/groups do is that they hire for their needs right now instead of thinking about what they might need later... But the biggest mistake is in not thinking-outside-the-box when it comes to candidates. There's an assumption that the person you're looking for has exactly a certain background and set of skills. As an example (sorry, not a web guy), you're hiring a chip designer and you overlook the guy who's been writing software to design chips (EDA)... The chip design guys tend to think the coder doesn't know anything about chip design, but as it turns out to write software to design chips you've gotta know a lot about designing chips.
I would think this applies to pretty much anyone who is in demand.
> Maybe he can take 3 days off his oyher job and work half a week and a weekend with us.
Can someone else explain, why i'd take time off of work to do this job interview? Why not take a day off and interview with Google/Apple/Microsoft instead?
Surely it depends on the job. Maybe it's paying twice as much as Google/Apple/Microsoft for the same role.
I would be curious to know what happens before this 5 day test. Do people just walk in with resume in hand and sit down to work for 5 days? Probably not. There would have to be some sort of discussions-that-aren't-an-interview which would lead to a yea-nay decision on the work term. What sort of funnel is there?
I agree there is a big commitment on both sides to do this 1-2 week work stage. There has to be more to the events leading up to the stage than what's in the article.
As it is with my current employer, it would be very hard to just take 5 days or even 3 days of for something like this, paid or not. If it was with a couple of months notice then I would think it wouldn't be a problem, but with shorter notice than that it would be hard.
The root cause of such a market failure is because workers' productivity is difficult to measure. A certain measure has to be introduced to indicate the worker productivity indirectly (often termed Signaling in economics). For decades HR/Recruiters have been addressing this problem by using different metrics as the signals/indicators. Popular signals include education (GPA, university prestige).
Programming may be a bit more challenging as multiple factors can affect programmers' productivity, e.g., intrinsic intelligence, problem solving skills, the speed of learning. Our hard-working recruiters/interviewers have introduced some new signals --- brain teasers, coding tests, etc.
What Jason proposed in this blog post is that we don't need all those signals, they are all inaccurate and can be fooled around by a well-prepared interviewee, why not directly measure their performance by working with them for a short period, say, three weeks.
That does sound like a good idea. IMHO, that's basically what internship does for students, but not sure if that will work for full-time employees, as it will incur extra opportunity cost for them.
Edit: Not sure about the vacation thing with the new role, but this is on a 6-month contract. I'll assume long vacations are out in the mean time, but it'll pay well enough that I'll be living ok for a little bit if I don't go full-time after.
So sure, maybe if you're a company that everyone wants to work for, and you're getting bombarded with resumes, you can pull off a non-traditional recruiting strategy, but for it to be workable for any company to do it, I feel like a large number of companies would have to start doing it.
I find there is also a divide between HR/recruiting and the lead developers. Once I had two interviews at a company. The first one from HR and a second one from the lead developers.
The attitude of the developers made me think they didn't have much say into the whole process. They did ask the best (read hardest) questions. This interview order seems fine, though questions like:
how many lines of codes did you write in language X? If we ask you to build Y, could you, and how would you go about it? If there is a problem in the weekend, and we call you, would you come over to fix it?
Could perfectly be asked in the first round of the interviews. And if you really want to be sure that a person will come to the office, if need be, then maybe plan the contract meeting at midnight on a saturday :)
One thing I noticed while last searching for jobs is the apparent inconsistencies in job listings.
Pre-requisites like: PHP and Ruby, Web standards and Flash, thorough understanding of javascript (jQuery plug-ins), Photoshop or Illustrator and version control, familiar with Linux and .net.
At first I ascribed these pre's to unskilled job listers, but maybe this is the start of the negotiation process? - "I do know X, but have to work on Y" - "That is fine, have you thought about salary yet?"
Is this really a thing in recruiting, or am I seeing things?
So yes, I do think it's a negotiating strategy. I hope nobody good will fall for it, I'd like to see this behavior punished by only being able to hire bad developers.
The key to finding good employees is to do what Google does. Find successful people. Don't have them come to you -- go to them. How do you do this? Talk to professors and see who top students are. Read publications and books in your field. Hire whoever wrote them. Find neat free software projects, and hire the authors. The list goes on. People like that generally won't want to work for you, and the trick is to recruit them somehow.
Doing part-time contracting is just not going to cut it. I've done moonlighting before: no one was very happy with my work, including me. You can't hire me this way if I have a job already.
If I was unemployed and looking, I'd be more interested, but you would not get a cut-rate from me: you'd get a full consulting rate & contract.
In my opinion, if you want the best engineers, you need to know them and offer massive bait. Because they aren't just going to jump for anybody or any old normal reason. You have to offer them what they want - and more than their current job does.
However, everyone who reads them gives criticisms as if this hiring strategy will only apply to the "best engineers".
To make a music comparison---not everyone is a proven rock star. Some people are garage band singers who're dying to take loans to produce their record just for a chance to make it big.
Also it's tough to do this when you're boot strapping and literally every pair of available hands can make or break your first big deal that helps keep the lights on.
I've had a few top-notch developer friends request recently that a startup allow them to work as 1099 contractors for a month first. They see their time as by far their most valuable asset and they want to learn more about a startup before committing.
In reality, with work-for-hire employee contracts, anyone can leave and anyone can fire for whatever reason. And that's what Paul English does. Contract-to-hire just takes all the expectations and paperwork and emotions out of it.
I'd only take a 1099 if I was getting full benefits and equity, or paid accordingly. Although as a contractor on a one month contract I'd probably still consider my side project looking for a job. Whereas as an employee I will be a lot more vested in the company.
Very true. In practice the law is about what you can prove, not what happened.
Programmers who aren't freelancing are about job stability, and a 3-week contract screams 'unstable'. Yes, there's a normal hiring process after it, but during that time, you haven't provided any measure of stability at all, and so anyone that comes along and promises it is going to be more appealing.
I went through an interview process that had me write a simple CRUD app for free. It wasn't related to their business, and neither of us got anything out of it except qualification for an in-person interview. That is the most I'm willing to stick my neck out for a job, and I wondered if it didn't take a little too much of my time for what it was.
Here in Denver, there are a number of companies hiring through recruiters that try to say "this is a 3 month contract" but the job ends up lasting 2-3 weeks. So you are right, it is hard to get folks to agree to a 3 week "job" - you have to lie to them.
Ignoring the link bait title of the post, I think the OP's suggestion is good. However, it's usually not possible. People are working full time and don't have extra time to work on your side project.
Interviews should include the same activities the interviewee will be doing during their job. Programmers need to program. Designers need to design. Sales people need to sell. It's actually quite easy to do this effectively in an interview and plenty of companies do that quite well (i.e. They don't suck)
I think a brief conversation about software development and a longer conversation to determine how smart the guy is is what matters. Even someone who barely knows how to code can learn on the fly if he's smart/competent enough.
How do you balance giving the candidate access to your data such that he can work on a meaningful project (read: the results of which are actionable) vs. having him toil away with some dummy data just to see how he thinks?
Some companies have found ways to bake cultural fit into their standard application process to great success. Twilio for example asks all applicants, business or engineering, to build telephony apps using the Twilio API before applying. This self-selects for people who are more willing to do research, be creative, and in general improves the likelihood that they will get along well with the team.
I am a bit biased here, but another path I would definitely advocate for is using interns. This is similar to the contractor approach but with a number of benefits in terms of price, and the fact that a hiring decision is not implicit at the end of the term. We have seen many startups build a pipeline of early hires by taking on multiple interns and seeing who is the best fit over the course of a few months.
If I was willing to work contracts (e.g. had a wife I could get health insurance and maybe some income-in-case-of-layoff security from), why wouldn't I just always only contract so that I could make more and get paid for my overtime?
If I wasn't willing to work contracts, wouldn't requiring me to contract up front take me out of the running?
Or does this whole thing assume people will just go without health care for a while? I could understand that if there weren't other choices, but given that other full time employment is readily available, who does this?
He doesn't delve into the ambiguous IP ownership of the resulting contract at work - I know that if I did that, my current employer would likely own the rights to anything I did for the prospective employer. But I suppose the prospective employer can get around that by simply throwing out anything the contractor does for them. It's a pretty big cost, to eat 3 weeks or so of wages of a highly-paid contractor, but it's probably cheaper than an IP lawsuit or a bad hire.
A lot of people take what they can get.
By doing a contract basis for a bit it lets both sides 'test the waters'.
With that said, it's not for everyone. I myself prefer it.
A bit off topic, but it seems like the US health care system is reducing labour market flexibility here.
Awesome idea; just not feasible in many situations.
People like this are out there. Perhaps such "Hail Mary Non-Sequiturs" are actually worth including.
Since, think about it, how did he find the person who will do the project in the first place, especially if there were multiple applicants. Unless of course the blogger is also saying that he never posts a job and only works through reference, which defeats the entire argument anyway.
Suggestion in this post is how I would go about it as well, give people 2 weeks to try it out and see if we work for them as well as they work for us.
If someone is out of a job, the last thing they want is a 3-week gig. Yeah, I get that "well if they're good, they'll probably be allowed to stay". I wouldn't even consider working for a contract-to-hire position with a "few weeks" of guaranteed work. As a business, the risk is on YOU to hire the right person. As an employee, you're offering me what, maybe a month of rent while preventing me from going on most other job interviews? That's not a risk I'm willing to take. I'd rather do 3 interviews every day and have 5 jobs to pick from at the end of a week.
Also, the projects...I'd guess that the projects you have people work on aren't very beneficial to your company, or are so focused that they might not take advantage of the talents of the employee.
On the flip side, I think working with someone is the best way to get to know how they are / can be as an employee, and sometimes I feel that otherwise good employees will stumble on inverviews, so giving them some time to really prove themselves can be a good option....but I think that by limiting yourself to people willing to risk a few weeks on a long interview are going to be the most desperate of the desperate.
I should? Really? Actually, i think i'm just fine without signing up to be spammed by you. Thanks for asking so politely, though!
An employer could take on a person for say 2 weeks non-paid and let that person prove themselves.