I'm not sure what the OP suggests is feasible in most situations. It's disruptive to the existing team and you have to have "throwaway" projects around for the person to do that won't cause problems if they're late or poorly implemented (and if that's the case, why do them?) Also, you're letting every guy who "interviews" learn about the internals of your systems, code base, security, etc to some degree, which is not something most companies want to do.
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.
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 think it's a slippery slope to assume that just because someone is involved in a community that they are necessarily a good employee, and conversely, if they don't involve themselves, that somehow deems them "not passionate enough" or not as talented.
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.
I'm not saying you assume someone who doesn't have open source work / contributions isn't necessarily a going to be a good employee. I'm just saying it's materially harder to tell in comparison to someone with the same resume and a publicly-viewable history of contributions. Any time you have a choice between the unknown and known, it's going to favor the latter.
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?
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.
The best and brightest apply to Apple, Amazon and Google because that's where all the other best-and-brightest folk are applying
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.
I'd wager that pretty much EVERYONE applies to Apple, Amazon and Google, because they're known to have the best people/work/benefits. This would make it _harder_ to pick out the best and brightest, not easier.
I haven't applied even. I probably have decent enough programming and system administration skills. I can recognize problem types from my computer science classes but I would need to spend time googling for the exact problem and possible solutions before I could give an answer.
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.
If you want the job, I encourage you to apply. The worst case is that you get rejected, and you lost a few hours of your life interviewing.
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.
No, not throwaway projects. Real projects. And if they are late or poorly implemented, well, they would have been that way had you hired the sap anyway. But now you can just quit paying him, and try again.
I guess the whole point of the article is, that is a myth. Interviews don't work.
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.
Internships work pretty well for everyone at entry level. Not just programming: lawyers, investment bankers, consultants, etc. But you don't really have that option for more experienced applicants, especially those who are employed elsewhere.
Hiring is hard because understanding people is hard.
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.
It's not just impractical. It's a complete nonstarter in any competitive job market (like the bay area).
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.
You didn't read the article. They offer 5 day (few days off plus weekend) contracts, or even weekend contracts. They will wait until you have a vacation.
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.
IANAL but as far as I can see this strategy is not without risk.
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 know there are some asshole IP contracts out there, but I think even so a company would have a hard time claiming ownership of a project an employee did for someone else, in his own time.
I don't spend my vacations working for other people. You also can't expect a contractor to be passionate about your company when they have no vested interest in its success.
With all due respect, I'm sure you're great at what you do, but I'd never want you to work for me. I'm on a mission and I'm interested in hiring people who share that mission. If you are solely driven by vested financial interests you wouldn't be a good fit.
And with all due respect to you, you seem to not be considering the employee's point of view at all. An employee exchanges his time for money. It is not fair to assume that because an employee doesn't want to exchange ALL of his time for money that he is not passionate about his work or your company. He could be very passionate about these things but also have other priorities, such as rest and recovery from a full year of work, spending time with his family and friends etc. And, again, with all due respect to you, I don't ever want to work for someone like you. I, and every other healthy social individual, have other priorities besides work. You seem like the kind of person that demands his employees to put in ungodly hours to achieve the goals of your "mission", but I could of course be wrong about that. It would be a service to all us employees at HN if you could drop your company name so we could avoid it if we ever would hear of a position with you.
My company is SproutRobot.com. It's in my profile. You should check out what I'm building and by all means if it's not interesting to you avoid applying for a job. :)
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're really not considering the potential employee here. When interviewing for a job, unless the company is very well known, a Google or a Microsoft, a candidate will probably know relatively little of your company, and probably have no understanding of your mission. How can you expect them to be driven by your mission if they don't know what it is?
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.
They can visit the web site and look a the product. I think it's a really exciting and unique product. I want to work with people who feel the same way.
Yeah, just because I'm interviewing with you doesn't mean that I'm 100% on board with your "mission" just yet. It took me about two years with my company to really really really get behind what we do and believe that we really are the best at what we do. It took that long because I, by default, probably like most other sane people, don't just trust blindly. The company had to prove itself to me. Trying to hire based on the inverse of that would be misguided.
I'm a little hurt that you're calling me misguided. Have you looked at my business? It's a mission-driven business. The mission is extremely clear. Dozens of people a week tell me they LOVE the mission after spending 1 minute with the site. This isn't some obscure chat client or something. I'm trying to do something real. Anyone who doesn't get excited about that right away is not a good fit. I don't think that's misguided.
agreed. But Yelp and Facebook do a micro version of this for job applicants. They give you a test - usually along the lines of, mock up something to make our platform better. You have 24 Hrs. Go. Since they're prol two of the hottest places to work, not least because they're two of the biggest pre-IPO joints out there, they can get away with this. Even if you get rejected (and I did), they get your idea (and mine were great, I tell you! Fully mocked up). Well, I bombed the intws but they did like my mocks. You feel like a cheap prostitute afterwards.
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.
The interviewing company does not get to keep and use the work; even if the applicant signed something, if consideration was not given, it would be difficult to use the work.
>"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."
Part of why it is so hard is that the hiring process involves so many people who don't know anything about programming. An older friend of mine is great at blowing smoke up your butt, and if HR or managers are doing the interviewing, he always gets the job. If technical people are doing the interviewing, he rarely gets the job. The buzzwords he uses sound all warm and fuzzy to the managers, but annoy other programmers so much they autoreject him. His biggest failure is his inability to keep up with modern technology, so he tends not to last more than 6 months. Based on a number of other interviews where I've been on the side looking for candidates, my friend is not a single sample/anecdote; I've seen a lot of other guys like him out there.
"Yet all too often, we look for people who have ALL of the skills we already have instead."
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.
> Sometimes, a talented person can't, for whatever reason, commit to a 3 week project.
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?
How can anyone expect a candidate to burn 3 vacation days to work for a company they are unfamiliar with? For people who only get 10 vacation days a year that's almost 1/3. The money you get may not even be enough to compensate for the money you lose by using that vacation (since accrued vacation is paid to you when you leave your job). This is a huge risk for an already employed candidate. Why take that risk when there are plenty of interesting job opportunities?
Even if the compensation is reasonable, I don't think its reasonable to ask the person to put their existing job on hold for three days while they fill out your glorified job application. The way I see it, you shouldn't ask the person to do anything you wouldn't be comfortable having them do while they work for you. As a manager, would you be comfortable with one of your employees taking three days off to work on a project for another company?
The author says the person is paid "a reasonable contractor fee for the work", which I would hope is equal to or greater than the current salary. If not, it really doesn't make sense, as you say.
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.
I see it like this, if you are using paid vacation days for this, then you are in a way on your current employers payroll, I think it is a bit dishonest to the current employer who pays you to rest/recover from a years worth of work. If you take unpaid leave then it would be more reasonable, but then the fee for the work done during the leave should be generous.
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.
What I was saying is that a 'reasonable contractor fee' would have to be about double your current hourly wage, since the first half would only compensate the cost of burning the vacation day.
I got my current job by doing a 3 day consulting for my boss over the weekend. I took 1 day off work on a Friday and we worked on Saturday and Sunday too. At the end of the day on Sunday he made me a job offer (note: I was not looking for a FT job, I was about to leave my previous job because of an upcoming move and hoped I would be regularly consulting for him afterwards).3 days, if you think the investment can be worth it, is doable, 3 weeks...well, that's a whole different matter.
> 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.
Because you'd get paid for it. If that still doesn't interest you, perhaps you don't want to work at the company? No reason to apply in the first place.
I don't think this idea is that terrible, however, there should be some sort of preface. Traditional interviews (i.e. go to an office, talk to 1-3 people, etc.) just don't cut it. What's more is that their terribly unrepresentative of how most people actually behave on the job. If anything, a get-together in the evening should be held and everyone can meet up. Even better, if there's some sort of community event, it could be suggested to invite the potential hire and introduce them to your network (that way their more familiar with who you're actually working with). I can definitely say, though, that there is hardly a one-size fits all solution for finding new employees. Each business should determine what type of employee they'd like to work with and then develop a scenario/situation in which they can impress the company (whether that be temporary/contract work, a meetup, whatever).
Perhaps Jason's approach may come out of his intuition, I'd like to explain it from a more "academic" perspective. In economics, the labor market is often suffered from information asymmetries where the employer has little means to determine the productivity of prospective employees. Therefore, if the employer is willing to pay average wage, it will obtain below average workers, as workers who has higher than average productivities won't accept the offer. Such a phenomenon is also called "the Market of lemons" in the context of used car market.
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.
I was once given thirty seconds to come up with synonyms for information, which I did. Then I was asked come up with antonyms for fast and furious starting with the letter p, I came up with pudgy and pleased. Then I was asked to tell my life story in twenty seconds. I refused. The interview ended.
Good on you for refusing to participate. Is this company still around? Did you say anything in your refusal besides, "No?" How did they react to your refusal?
That's all I remember being asked. I guess they saw themselves as pioneers of creativity, but as they were something of an obscure start-up, this wasn't totally clear to prospective interviewees. So I went in there expecting a serious interview, but got nonsense. It's funny now, but I was pissed at the time. Drove eight hours, booked a hotel, and wore a suit for nothing.
I like the idea, but as a developer there is little chance I'll do contract work before getting a job when I'm looking for a "real" job. Right now, finding a job is easy enough that I don't think a lot of people will jump through a lot of hoops before getting the job.
It's like accepting a lower starting salary hoping that, since you love doing what you do, you will prove it to everyone that you're good at it and that you will get a raise eventually. I got burned with this twice -- believe it or not, low starting salary coupled with uncertainty about whether there will be an eventual raise played a big role in me actually stopping loving my work (which at the time was a good thing since I acquired more productive interests, but that's besides the point).
I'm looking for Rails work now and I've been offered substantially low salaries compared to what I make now. I was thinking maybe I need to adjust my expectations but your post makes me think twice. Thanks!
I will repeat the parent's sentiment - do NOT accept a lower salary. I was nearly caught in this trap a year ago, trying to get out of my current job that's not exactly fulfilling. I was given an offer that would have forced me to take a 13-18% pay cut and nearly had my vacation time slashed in half. I politely declined. I stuck it out for a little more than a year and just got offered a position that's going to pay 55% over what I'm getting now. Keep plugging away and keep looking..
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.
On the flip side, I know people that took pay cuts to work for Google and never regretted it. Culture, work environment, and coworkers are worth something, and it's up to you to figure out how much they're worth to you and decide accordingly.
I don't totally agree with this. If you shift from big company to startup, you'll almost certainly have to take a pay cut, but usually you're doing this in exchange for seniority and equity. I wouldn't agree with a blanket statement that you should never take a lower-salary job.
Yeah, this is a tough one. I recently took a (7%) pay cut to join a new company, but my situation was a bit different. I had quit the previous company outright without anything new lined up, and I was being paid a bit above-market (their attempt to retain me despite the fact that I was unhappy). I'm sure I could have eventually found a company willing to match or beat my last salary, but I would have had to pass on several interesting opportunities to do so. So you can't just make the blanket statement that taking a pay cut is bad for any reason.
Very good point; I hadn't thought of this angle because the parent hadn't mentioned anything about going to a startup. In my situation, this other company was anything but a startup, rather, it it was a well-established but still very niche company that I dealt with. No seniority, no equity, no raise.
I don't look at it as jumping through hoops, it's just as much for your benefit as it is for the company. Yes, you can quit at any time (of course, in California, you can be fired at any time also) but it's much cleaner if you both go into a trial period trying each other out. Should you decide the company isn't up to your standards, there's no pressure you stay, and you have a clearer expectation at that point of what you'd expect from compensation.
Yes, I agree. I was just recently looking for a new job (and found one fairly easily, one which I'm now very happy with). There were a couple companies that I was assured were "hot right now", but which wanted me to do a silly brain-teaser code-challenge as a condition of even talking to them on the phone. I said no thanks, and I don't regret it.
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.
yannickmahe, it may be easy to find a job as a developer, but I recommend trying a company out if possible. It gives you a chance to see if it is worth quitting your job for.
I like this approach of really testing out the waters before committing.
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?
I interviewed with a firm that said the initially advertised salary was too high for my offer because I refused to describe myself as an expert in silverlight and opengl. If they find an expert in opengl, silverlight, c#, sql server, web services, c, and desktop applications, I wonder what they think that would be worth.
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.
My experience has been the opposite. Best employees aren't desperate to work for you. They're gainfully employed, and you have to poach them. No one I know who is productive would give up this much time to something. Almost everyone I know who is unemployed and desperate would.
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.
I'm sorry. If I was currently gainfully employed and looking for a job, I don't think I'd be on board with your system. I appreciate the idea of getting to know a company, but, I'd be applying for several companies every day. Even given the current interviewing speed (several hours), it'd eat up time.
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.
The problem with articles like this is that they talk about practices that realistically (regardless of what they say) would be reasonably applied to the mass center of the bell curve.
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.
I am not a 'best engineer'. I am a semi-junior engineer who is quite likely in the 1st standard deviation of engineers. This article's company hiring practices would be very difficult for me to work with.
Finding great talent is hard but identifying talent is not difficult. Yet, finding and identifying talent is just half of the story. The other half is determining if the person can focus in what you need, be motivated, take the initiative, and deliver great work. That's the difficult part. More often than not, very talented individuals have a lot of stuff in their heads, such that mundane but essential work ranks low in their platonic priority list, and that affects their capacity to concentrate and deliver.
I really like the approach of "Contract-to-hire" developers but I've often found it to be difficult in markets where most good developers have multiple offers at any given time.
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.
As a developer, you'd have a hard time getting me to commit to a 3-week job (as suggested in the blog post) because I already have a job. And if I didn't, I'd be looking for a job, and looking to commit to a real job as soon as possible. At best, if I couldn't get a job at all, I'd take the 3 week job for the money, but I'd have no loyalty to you if someone else came along that was ready to commit. I'd finish the 3 weeks, and tell the other company I was in the 3 week contract, but I'd end up working for the other company.
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.
> you'd have a hard time getting me to commit to a 3-week job
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.
my experience has been that the very best developers often prefer this.
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 would add that it also takes out all of the benefits, which employers never mention. No benefits, no unemployment payments. Having hired many people over the years, I always get a kick out of this argument that they are the same. They aren't the same at all! Much easier and cheaper to hire contract employees. Much harder to get good employees. I don't hire contractors unless it really is a short term job. Contract work isn't for finding your long term employee partners. Contract work is for one-time or short term work. If I need a long term employee, I look for a long term employee and I don't pretend that I'm trying people out by using the guise of contract-to-perm.
Actually you can't fire for any reason, but for a lot reasons. For example, you generally can't fire someone due to gender, or race, or testifying in court for the public good, etc...
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.
In practical terms, you can fire someone for any reason, just so long as you list an acceptable reason on the paperwork. The power of an employer to fire you at any time is definitely not equal to the average employee having the power to leave at any time, and that's part of why 'employment at will' is a crock.
Tl;dr try someone out part time before hiring them full time.
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)
After interviewing for months I basically memorized the answers to the main kinds of technical questions. After I started to hear the same sorts of questions asked over and over, I knew the process was completely broken and I would never ask stupid technical riddle questions to gauge someone's competence on the job.
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.
Apparently Jason lives in a world that's much like a giant cocktail party, where everyone is just milling about in one room looking for someone to work with.
For anyone looking for a job immediately (as I am), I don't think s/he has time to do multiple 3-months projects. I do believe current interview process is broken, and interview results are not indicative of job performance. I think that's why referrals work the best. Also, although much shorter, weekend hackathons are good ways to gauge working chemistry.
One issue that has been ignored is that of security / confidentiality. What happens if the individual you are "courting" works for one of your competitors? Any project that he would work on for you would likely require access to sensitive, proprietary data. Sure, you could force him to sign an NDA, but that puts him in a strange situation post-project.
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?
There are often projects that need to be done in a company that aren't related to the core product, so it's not usually that difficult to give a contractor something unrelated to work on.
I strongly agree that the try before you buy approach is incredibly important for determining difficult to predict cultural and team fit. That being said while it is essential for early-stage companies to get this right, as pointed out in the comments, it can be difficult to scale and can be inefficient to make-up projects for potential hires, give them access to code, etc.
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.
I don't understand contract to hire. I get it from the employer perspective, but why do employees agree to it?
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?
The article suggests that people who can't afford to take time off from their regular job instead contract on a project that can be done nights and weekends. He's not suggesting you quit your current job before the new job makes you a firm offer.
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.
From the prospective employee's perspective, it also just doesn't scale. Most people I know are talking to multiple companies at the same time, often being in the middle of interviews at 4 or 5 companies. This just wouldn't work if each one required a consulting period, especially if you still have your primary job taking up your time.
Because it gives you a chance to see if you like working for/with this company/person. Typically in an interview you don't meet with or talk to everyone you will be working with. You might find out 2 weeks in that the guy sitting next to you is someone you just can't work with long term. Better to do that knowing that you can leave anytime and continue the search than have to start all over from square one.
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.
Cobra does not apply to companies with less than 20 employees. If you like working for small companies it's very hard to switch safely, you need to interview and get hired with no gap in employment. The state of healthcare tied to companies is terrible.
IMO, an interview is to working at a company what speed-dating is to a long-term relationship. The interview process may get some measurements about someone's technical fundamentals, but very little can be gleaned about rapport with employees and in general how well an individual will gel with a company's goals and other team members. The success of a team is not just about the competence of each individual but how well the individuals work together as a team, and individual competence is not totally correlated to working well with a given team.
It's not just a time issue for the interviewee; the interviewer then needs to spend extra time checking the quality of the work, requiring extra technical expertise.
Awesome idea; just not feasible in many situations.
I know someone who could plausibly answer that interview question. She has a degree in English literature, undergraduate and post-graduate degrees in law (U. Queensland and Oxford, respectively), plus taking classics on the side while learning Scots / Civil law at Edinburgh. She's scientifically literate and active in various skeptical societies. She wrote an award-winning novel and has another on the way about an alternate history Rome where Archimedes was captured and not killed by the Romans.
People like this are out there. Perhaps such "Hail Mary Non-Sequiturs" are actually worth including.
IMHO the title of the blog is incorrect. What he is saying is that he never hires anyone fulltime without at least working with the person on a project, and not that he doesn't interview.
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.
I don't suck at interviewing, people who interview are usually as clueless as interviewee, so you can abuse this game from your side as well. I completely agree that people you hire most of the time have very little with what you need and want and that process is broken.
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.
Some interview questions I want to say 'do you realise how awkward that is to answer?' like asking people how their former colleagues would describe them, or what their weaknesses are. You couldn't do that in a normal conversation so I'm not sure it's a good idea in interviews. But who knows. Maybe it's effective or maybe it's simply the done thing.
Automattic followed this practice and I think it worked quite well. When I was there, the company grew fast, but at least it was growing with known goods. When I'm back with Raffi Inc one day, I expect that I'll follow this practice too.
I totally agree with this article. You can get much better information from actually working with people. You don't have to expose them to your system, you can create a small project for them that is related and tests their skills.
@JasonFreedman That's great if it works for you, but personally I feel that you're just putting all the risk with the employee, which is shitty.
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'd say that they don't even have to be good to turn their nose up at the idea of working for free. If you're doing work with real value, do you really want to do it for free, unless it is for charity?
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.