Why You’re Not Hiring the Best and the Brightest
firstround.com
firstround.com
Now imagine that I've applied to five companies. Each of those five companies has given me an "audition," something that I can take a week to do. I necessarily have to do this in my free time -- I can't very well do it at my current job! -- and not only do I have to solve your problem, but I generally have to do it within some sort of constraint that you normally have, whether that's your codebase or your language or whatever. I'm going to spend a significant portion of that time simply getting up to speed with that constraint. Maybe I have to install Ruby or I have to install Symfony or I have to study the documentation for Twilio. Who knows?
I've never yet had an "audition" like this that didn't require me to sign an NDA, then install that company's codebase and work within that codebase. And I've rarely been able to do this in one or two nights of work. Usually one night of work is spent simply installing it, the second night studying what's going on, and then the third, fourth, and possibly fifth nights actually fixing the problem, testing it, and making sure it's good enough to submit.
It's a lot of work to ask me to do, even if you're paying me as a contractor, because again, I'm not looking to be a contractor. I'm looking to be a full-time employee.
I want to solve your real-world problems much more than I want to answer academic questions, but at the same time, you have to respect my time as well. I don't want to waste your time by not giving you enough data to make an educated decision about hiring me, but you should also not waste my time by giving me a task that takes up my entire free time for a week.
There's a happy medium here. I don't know what it is, exactly, other than letting me solve the problem my own way with my own code and my own tools, but if I do that, then it's not "something you would give your employees right now if they weren't so busy," right? Maybe.
The rest of it is fairly spot on, I guess.
Just my two cents.
I don't know if this good advice for everyone looking to hire but it seems like filtering for both ability and motivation is a good idea for young, growing companies.
The problem with any discussion here on HN is that, judging by replies, many commenters feel insecure whenever an idea is proposed that they feel could exclude them from a job, even though typically these ideas do not spread, and most people need only one full-time job at a time (writing about interviewing has the same problem. See the first few paragraphs of http://steve-yegge.blogspot.com/2008/03/get-that-job-at-goog...).
I agree that if every company started this practice in the same way, applying for five jobs at the same time while currently working at one would be difficult. But it seems very unlikely that would happen in practice.
I'm not upset at being excluded from a job at Discourse -- in fact, I'd probably exclude them from my search! Quite the opposite, my time is valuable to me.
Just because I can't take a week to work for you on a contract basis doesn't mean I lack motivation or ability. It just means I have priorities that don't include sitting in front of a computer screen 24/7. I may have a wife and kids, or I may be an Olympic runner, or I may be struggling to make ends meet with other contract work, or I may be taking care of a sick relative. Who knows?
All I'm really saying is that there's a happy medium here. Some way for you to give me a programming assignment, and for me to complete it in a reasonable amount of time. Offering to pay me just means that you want a LOT of my time -- time that I likely don't have to spare.
If I were a junior dev and desperate for work, then yeah, I'd make this a priority. But Jeff isn't talking about junior devs -- he's talking about the best. And the best already have jobs and don't need to prove anything to anyone.*
* (I'm not saying I'm one of the best*)
I'm not saying "don't do it." I'm saying that from my perspective, I think it's a flawed interviewing technique and it's not something I would be interested in when applying for a job.
If it works for you, then by all means go for it. I'm just saying it doesn't work for me.
[1] http://www.joelonsoftware.com/articles/fog0000000073.html grep for "no hire" just to get a feel
Trello and StackOverflow are so much nicer now than FogBugz was then so I guess he hired better people. But I think a lot of his advice became vogue more because he was an entertaining writer than a great software entrepreneur.
Maybe for the upcoming hack week...
People might assume that I am some sort of idiot for not using Skype, but I have a proper VOIP number setup, so I don't have the need.
Many companies rely on a bunch of open source components/tools/whatever, and they don't fit perfectly; so if you think about it, it's quite likely that you already have some 'good-to-have' items that you'd like to be done on those projects; important enough to pay for it but not important enough to have it done right now by your current people.
And the good thing is that it'd allow you to solve the problem your way with your favourite tools, not require any NDAs or granting access to internal systems, and also be useful for the rest of community.
That's not true for everyone, but it seems like it's the rule rather than the exception.
My point being that you're not just asking me to fix a to-do item, you're asking me to recreate your dev environment locally, research your codebase (to isolate the bug and figure out a fix), and then actually fix it. And if this takes more than a few hours, I may not have time to do it whether you pay me or not. Like I said, I'm looking for full-time work, not contract work...
That's all I'm really saying. I agree with you, though, that the to-do thing is a good idea. I just think there might be some middle ground, like if your task is "Build a feature to send verification codes through Twilio", then instead of using your codebase, I do it on my own in my own way. Then you can use my code as a model for your own. You don't have to research the whole problem -- just port my code into your codebase. And I don't have to fiddle with your codebase until you hire me.
Something like that. (Just thinking out loud here.)
As an employer you could also allow access to a remote instance of a machine that is already set up and configured and the person can SSH/RDP into the box and do development there.
I'm thinking that there probably isn't going to be a clear cut, one size fits all answer to this, but I do think there are some good options in any case.
If I can't get a "Here's a real problem we have, solve it however you want" thing, then this is the second best answer. You're absolutely right.
Getting familiar with the codebase is still an issue, but at least that knowledge has the potential to be useful even if you don't get the job.
I have no doubt this process works well for Jeff's company which is open-source (as far as i'm aware), but it doesn't work so well for, say, Stripe or Kickstarter, whose codebases are NOT open source and likely have complicated dependency requirements.
However . . .
Sometimes I worry "what if I lose my job today?" It really could happen, even today, through no fault of mine.
People who live in Silicon Valley will say "well you have five other jobs waiting for you." But people not in a top-5 area don't have a job market 5 deep. It takes time to get hired again.
If I were to suddenly be unemployed, I would really love it that there are some companies out there willing to hire me for a one-week project at a much lower activation energy than taking on a full-time hire. It would 1) give me a chance to prove I can do the job, and 2) even if it failed it would give me money in my pocket right now which would be a very nice stress reliever. (In fact, it reduces my stress right now knowing that I could find a few short jobs like this. I'm happier even if I never need to use it.)
I certainly wouldn't want all companies to hire like this, because most of the time when I am searching for a job I am employed. But I like knowing that there are some employers out there that it would be easier to work with being unemployed instead of the reverse.
Last time I was on UI, it didn't actually last for X weeks, it lasted for Y dollars, and if you earned more than a certain threshold in a given week, they would reduce your payout that week by 50% of the amount you went over that threshold. So one week of high earnings would, in effect, mean you get $0 that week but give you an "extra" week at the end.
This, to me, feels more like a happy medium between whiteboarding and "auditioning". The task was simple enough to be completed in 8 or 10 hours that I could do after work, and I even had some time to add some flair to it for style points.
I think that makes a huge difference. And in the end, I don't care what language you do it in or how you do it, so long as you solve the problem. If I write it in Ruby and you write it in Java, then if it works, I can hire you and your first job will be to port it over ;)
I moved to SF and I love it, but I understand not wanting to move around. I'm resisting moving away from SF for other opportunities...
I rather enjoyed it, and at 3 hours wasn't a huge intrusion on my time. This sounds a hell of a lot more attractive than throwing a whole week of my spare time at a company I'm not sold on, and IMO is just as representative.
The extra perk of this approach is also that, assuming you give the same/similar assignment to every candidate, it makes their performance directly comparable.
I wander if Skype does similar thing now, i.e. maybe they preserved some autonomy and did not adopt general MS style puzzle interviews.
The specific problem with this scenario is that they give the audition too early in the process: they want to have a set of fully fleshed out apps to compared candidates from and use that as an initial/mid level filter. This is disrespectful on the part of the company precisely because in the best case only one will be hired (more likely none will be hired). It utterly devalues the time of prospective employees for the benefit of the company. This is wrong.
The solution here is to give the "audition" after the candidate has passed all of your other filters, and commit in writing to hiring the candidate if they do a decent job on the audition. And no wishy-washy bullshit: have an objective criteria to measure against and judge it fairly. This is the kicker here, which of course will be the tough swallow for most companies. Paying for their time is nice, but its really missing the pain point here. If you want someone to commit a disproportionate amount of time in the process of auditioning for your company, you need to put yourself on the hook in a similar manner.
I guess that when Facebook picked up the phone they didn't bother getting her to do a new 'like' icon or whatever it was they needed using their tools in their special dev environment with their special workflow.
They probably noticed that her other work had done quite well and thought they might as well chance it with her. They probably hired her without her drawing one pixel for them. Her competency was not in doubt.
This cumbersome audition process people want to put you through might work well for someone fresh out of college that has no portfolio of work, however, for those of us with work that is live and on the internets, isn't that, with a few code samples, good enough?
But I agree that there should be some metric that we can gauge candidates on coding ability without giving them a week-long assignment.
If it was an easy fix, Jeff wouldn't have had to write this blog post, so... Gotta keep thinking about it, though. There's gotta be a better way.
That is to say: I don't have the money, time, connections, nor geographical/familial luck to have been born in America or in a supportive environment and attend a "top college". Nor do I desire to throw away several years of my life and six figures to get a piece of paper from people dumber than me to say i'm as smart as they are.
In that respect, i'll take the one week of unpaid work over several years, thousands of dollars, and social/political/time barriers which are completely insurmountable to me because it puts me on equal footing with the stanford/mit/harvard graduate. If implemented well it means its more likely to have something to do merit, and i'll respect companies that have a process that at least TRIES to implement a merit based process far more even if i don't get the job.
I don't like it, but i prefer it over the alternatives...
I think you're misunderstanding me though. I'm not saying they shouldn't require that you do a work-from home assignment. I'm talking about the fact that most "auditions" I get are far more than a simple homework assignment, and those employers often expect far more time than I have available. Like I said in another comment, they aren't just asking me to solve a to-do item from their to-do list, they're also asking me to install their codebase (and all that entails), learn it enough to isolate the problem and formulate a fix, and THEN and only then do I actually get to implement my fix and submit it.
That's more like contract work and less like an audition.
To make another comparison and riff on the word "audition", as an actor (I am one), when I go audition for a play, I'm not rehearsing with other actors and performing on stage for 1 night (the equivalent of a 1 week contract in web dev). Instead, I'm showing up with a prepared monologue (60-90 seconds) and possibly doing some cold readings (the equivalent of a "homework assignment"). The entire audition lasts an hour, maybe two.
One of those requires far, far, far more work than the other -- and the second one is what an actual audition is.
So what I'm getting at is that the problem isn't a merit-based approach -- the problem is a merit-based approach that doesn't respect my time and energy.
Does that make sense?
I actually agree with you, it doesn't respect a person's time and energy. It sucks. But the status quo doesn't respect it either, and it in fact requires even more time and energy (several years, several thousands of dollars), but we just don't account it as such because its just the societal norm. I'm not proud of my degree. I view it as essentially a societal bribe i had to pay to the indentured institutions to be considered for 99% of decent paying jobs. So it goes.
I can't think of a way to accurately measure someone's abilities that doesn't require significant time and energy from both parties :( But i'll take such solutions over the current alternatives...
There are of course some ethical problems when companies literally try to get you to do their work during the hiring process which i can't pretend to support.
I just think you can give me a programming assignment that I can do in a few hours instead of an entire week, and still get the information you need to determine whether I can code well or not.
I personally love my degree. It's actually in theatre (not CS), and I really, truly believe that it taught me a lot about how to contribute to the workplace and to society in general. If I had to do it all over again, I'd probably do the same thing. But I guess we just got different things out of our degree programs. I do wish that there was a better alternative, though, for those like you who would (I assume) rather just go straight into the workforce.
Oh and £350 is low for a day rate you can easily get £500 plus for high end devs in the city / big data.
But yes, if you wanted me to work on something for a week, I'd absolutely want to be compensated for it. But in my current situation, I just personally wouldn't take that offer.
This gives both the applicant and the company a chance to see how working together might go. The company gets something on their to-do list done, and the candidate gets paid for their time.
I once applied to a company that insisted on interviewers doing a test first. Just looking at the questions on the test, I knew this wasn't a company I wanted to work for, so I didn't even bother doing it. They asked me "why didn't you do it?" and I told them I knew this job was a poor fit just by looking at your test questions. I'm not sure if that is what they intended, but the benefit was good for me.
There are certainly many benefits to the audition system, or Jeff wouldn't have even mentioned it!
Personally I'd be happy with anything that should take less than a day to do, but giving folks access to a pre setup client that has RDP or SSH setup would make that a lot less painful. A week is a bit too long.
I'm currently looking around for a new job and I'm being fairly picky about what it is I want to do, my biggest pain point is getting time to actually interview. My own personal preference would be a couple of phone interviews, then an audition project followed by something face to face. By then it seems likely we're going to get on so taking a day off is worth the effort.
Finally as someone currently looking around salary is something I'd like to at least potentially discuss relatively early on (or at least check we're both in the same ball park) I'm going to ask slightly high but caveat that with a statement saying that I'm potentially flexible for the right job (I like your problem domain, it will look good on my CV, you're offering equity etc).
I need to get better about the salary thing. I've gotten several offers from companies (even YC companies) in the last year, and each time we're just not in the same ballpark. I think a lot of it just has to do with equity. Startup CEOs treat their equity as worth a lot of money, but at the end of the day, I can't use my equity to pay my rent. So unless I really, really, really believe in your company's ability to dominate in that problem domain and/or exit successfully, your equity just isn't worth the pay cut for me...
But that's another discussion entirely.
I, too, am picky about what I want to do. I want to solve real problems. I don't want to reinvent the wheel with yet-another-message-board (sorry Jeff). I want to save the world. I want to do something meaningful. And a lot of these startups I see around here are solving what I consider to be superficial problems. Yet another ephemeral chat service. Yet another Instagram. Yet another subscription clothing service. Zzz.
If Elon Musk called me up and asked me to come "audition" for SpaceX, I'd probably do it. That's an exciting enough field and opportunity that I'd spend a week of my free time to get it. If a company that was building out tools for combating malaria called me up and asked me to audition, I'd probably do it. Or updating farming with 21st century technology. Or engineering a way to purify water for pennies. Or... well, any number of what I consider "epic" problems.
But that's another discussion, too. :)
I totally just went off on two different tangents. Whoops. :)
HN has thrashed this out before, but what the heck:
- My current employee agreement may prohibit me from doing such work (this is definitely true of ALL of my employers up until now)
- I'm pretty sure I can get a job at a great company without such a hoop, so I'm not going to bother with yours unless I really want to work at exactly your company [unlikely]
You need to work on your ability to assess candidates without involving fear-based behavior on your part.
You'd rather solve B.S. puzzle questions, or debug basic algorithms on a whiteboard standing in front of an interviewer?
I like real work. You should too. Otherwise, you are absolutely right, we shouldn't be working together.
It's hard to get more real in my book.
I do agree it's a hoop (what hiring process doesn't have those, even if it's a mutual trusted friend vouching for them?), if you can't get it done then one or more of us has made a mistake, but....
Now, if I were Very Interested in working at Discourse, Fog Creek, or any similar place of work, rather than just at any place with a nice paycheck, I think the audition is a great idea, and something people would be willing to do.
The GP's main objection is that you only get the best people who want to work at __your__ company enough to spend time on your auditions. There are likely many engineers like them who have a network of job opportunities compelling enough that the added draw of it being Stack Overflow, Discourse, or Fog Creek is not enough to merit the extra work.
I hear a lot about GitHub, blogs, and open source contributions which essentially act as your audition open to all talent scouts.
Perhaps if the audition challenge could be posted to the applicant's GitHub account then it would be a bit more useful to the applicant. The challenge could be skipped if a project in the GitHub account already demonstrates proficiency in the desired application domains.
Candidates who do not currently have a job perhaps have more time, but still probably are not that interested in suspending their job search to consult with you, and also (correctly) judge this to mean that you're skeptical about their abilities, and want to take a job with an employer who is more enthusiastic about them. That may be somewhat irrational of the candidate, but it's also true.
But only students, freelancers who want to quit freelancing, and the unemployed would be able to take "a few days to a few weeks" for such a project. For someone in full-time employment, a few weeks would be most of their vacation time for the entire year, just for one interview!
I don't think it works well as a filter either - a technical interview can easily assess capabilities and while you're right that it cannot accurately assess work ethic or motivation, a trial period cannot either! A desperate candidate during a trial period is generally going to behave very differently than he would a year down the road when he feels bored and the job is secure in his mind. Is it a better filter in a vacuum? If you start with the same sample of candidates, all of whom had to go through whatever process you devise, would a trial period make it easier for you to find the best candidates? Of course. But having such a process significantly skews your candidate pool to the desperate. That's not necessarily a wrong approach to recruiting, but it has nothing to do with hiring the best and the brightest. In addition, unless you're extremely careful, you'll be mostly judging candidates based on their familiarity with your technology stack and workflow, as opposed to long-term potential because that's what short-term productivity depends upon.
It may not apply to you in particular, but one other thing that would make me worry about a trial period is that it's indicative of two other personal flaws on the part of the hiring manager - he may be 1) indecisive and 2) technically incompetent. The indecisiveness part is obvious - not only is not being able to hire without a trial period a mark of indecisiveness by itself, it's also a hedge against future indecisiveness in getting rid of employees that don't work out. I also find that technically competent people can judge competence in others very well, very quickly. They aren't always right and there are qualities that only manifest over a longer period of time, but those qualities can't be judged in a few days of work.
Paul Graham's advice to investors is apt here:
http://paulgraham.com/angelinvesting.html
"How do you be a good angel investor? The first thing you need is to be decisive. When we talk to founders about good and bad investors, one of the ways we describe the good ones is to say "he writes checks." That doesn't mean the investor says yes to everyone. Far from it. It means he makes up his mind quickly, and follows through. You may be thinking, how hard could that be? You'll see when you try it. It follows from the nature of angel investing that the decisions are hard. You have to guess early, at the stage when the most promising ideas still seem counterintuitive, because if they were obviously good, VCs would already have funded them."
Stringing people along while not being able to make up their mind is what mediocre investors and VCs do - without seeing good evidence to the contrary, I'd guess that this applies to employers as well.
Edit: in case my point wasn't clear, I'm not saying the approach is wrong or doesn't work or anything along those lines, merely that it's not how you hire the best and the brightest. Now, it's possible he meant "the best and the brightest" in the cliched way where everyone thinks they hire the best and the brightest, in which case it's fine. But in a literal sense, if your organization needs the best and the brightest, you won't get it following those suggestions.
Edit2: the point of pg's advice isn't that being decisive somehow is correlated with risk-taking and thus higher returns. The point is that being indecisive doesn't lead to significantly better decisions and if you can't make decisions quickly, you won't get the very best deals. If you're known to be indecisive or advertise this up front, no one who can get other investors will come to you. This is absolutely the case for talent.
Cultural fit is not a good reason either. If you can't judge whether someone fits in during the interview, you're probably not going to figure that out during the trial period during which you have a desperate person desperately trying to fit in. What's worse, this very mindset of "let's hire people who fit in" leads to the worst culture. If culture matters to you, hire people who are different.
And yes, finding good engineers, regardless of cultural fit, is by far the hardest problem. If you're optimizing for cultural fit and you're not Google/Facebook-type talent magnet, you're not even in the competition for the best talent. This may be fine if your bar is low - and let's face it, almost everyone's is - but again we're no longer talking about the best and the brightest.
Startups and small businesses.. aren't.
All I'm saying is that if, as a business, you are seeking to minimize your risk portfolio during hiring you are, by definition, not seeking to hire the "best" employees, but to hire the best employees with the lowest risk profile.
Once again, I don't think this is bad. You're running a business and the task is to get the highest probability you'll hire a productive employee.
Nonetheless, the OP has a point that you may lose employees due to your risk tolerance being too low.
Example: I work on the C# compiler. I'm not going to take a prospective employer's "knowledge test" on C#, regardless of if that is statistically a good filter for them in hiring.
I can only speak for startup / small team hiring, but the problem I see here is that the only hiring metric that you seem to be testing for is if the person is a good engineer or not. I believe that is rather objective, and in these days pretty clear to assess with the plethora of people writing open source projects. Simply put, if I was recruiting, I would not have contacted if I didn't believe you weren't capable of the work. (I also have the same problem with "Traditional" interviews, inviting a person for a job then testing them with fizzbuzz is like hiring an athlete to join your sports team, and on the first day asking him if he can kick a ball.)
What really worries me - and why I'm more a fan of a trial period, is how do you, as a human being, fit inside our community. Other than "not being able to do the work" there are a million other reasons why someone would not enjoy, or atleast put up their place of work. Maybe the team always has 6 o clock beers, and you don't drink so you feel left out. Maybe the team are composed of entirely of Montagues and you are a Capulet. There are human factors in the work place, and I believe, everyone should be comfortable where they work - and despite talks of equality, openness, and acceptance, there are people that just plain can't get along with other people for whatever reason. Were human and we move on.
Now again, I'm trying to build a small startup team and it might be different in corporate. However what would you say to employers that are looking at "trial period" hiring as a way to gauge culture fit and ultimately employee happiness?
What the "audition" is all about is trying to make it so that you don't ever get into a situation where you hire someone, work with them for a month, and say, "Holy shit, this isn't working out at all, I'd better fire this guy."
In France or something, where it's super-hard to fire people, maybe that makes sense. In California, it's mostly about trying to spare the feelings of the manager.
And, yeah, I've had to fire some people. It really sucks, no matter how deserved (well, I'm talking about just not being able to do the job, vs. "for cause" where it's white line stuff, fortunately never had one of those cases).
What's the difference between that and a pre-hire, high workload paid assignment?
The only practical difference I see is that the eager employer gives the new employee some false hopes of slight stability, which may cause her to uproot her entire family, e.g. "got a job in city X, honey, we're moving".
Most of the really good engineers I've worked with can go anywhere. When they're available it's by their own choice, and they're gone damned quick. (One fellow recently got fed up with things over a couple of months, made a call, and the email he got back said in part, "Apparently you aced your interview. When should we tell HR you can start?". Seriously, how do you compete with that?)
The people are not on the street. These people will not suffer the gauntlet you have decided is necessary. They're going to think to themselves "That's cute," and look elsewhere. I won't do a weeks-long project. I know very few people who would.
You CAN assess someone well in eight hours; if you can't get a good handle on someone's skills in that amount of time then you seriously need to improve your own interviewing skills. The message you are sending right now is, "We mistrust our interviewing expertise to the point that we want YOU to take a multi-week risk, really a very high risk, just so that we can be sure."
Now, there are undoubtedly people who want to work at your company, and they are willing to go to any measure to do so. If you are all happy with each other, then I see no reason why our paths should cross.
I guess this is the point where you can publically rationalize your strategy by bucketing me as a jerk, "sour grapes," someone you wouldn't want to work with anyway because of red flags and such. I won't steer you away from this, since I can't offer any proof that I'm not.
But I'm darned sure you're missing good people, even if you're convinced I'm not one.
An onsite interview can (and probably should) involve sitting you in front of their computer, and getting you to close a ticket.
If you give people homework problems, then it's possible they will either palm them off to a more competent friend (or just pay $100 for a freelancer); or consider it an insulting waste of time.
Neither will test whether the candidate is reliable. But at least an onsite test will be harder for them to fob off to someone else; and it's less of a waste of time. It might take them a day or more to set up a "hello world" build at home (depending on the build requirements, and how well you've automated things).
In any event, I think the way around contractual obligations is to work on a small open source project together.
And to your second point, some employers only want employees that really want to work at their company in particular (e.g. Zappos).
Clever, but you won't end up with "the best."
Somehow, I don't think that "the best" would forego thousands of available opportunities to work for a company that won't even consider hiring someone who might be able to compare their offer to someone else's.
And I don't think this hiring practice precludes employees from evaluating other offers - if a company goes through this process and decides to extend an offer (and they're growing fast), they're likely to be willing to hold the offer for you while you evaluate other opportunities.
To a first order approximation the job market is a market for lemons (jobs and workers). Generally, the best folks will spend the least time in the job market, if any at all (note that I said generally, there are exceptions which I'll get to, don't write letters). If companies make comparable offers but one requires a bunch more hassle and delay through an audition process then economics 101 says that people are going to choose the option with less hassle more often than not.
An audition is a cost, and without something to offset that cost most folks will simply choose to avoid paying it. If you really want to hire the best and brightest and you have to rely on an audition process then at least consider paying above average for the period of the audition and for the job (if you actually are getting the best and brightest, paying them above market should be expected anyway).
Alternately, look at other ways to hire. If you truly want a company filled with the best and brightest then I suggest you switch from a "filter bulk submissions" model to a talent scout model. Don't look to fill roles, just continually be looking for new talent, and form relationships with talented folks whether or not they're looking for work right then.
If he has only your offer to entertain, then he's not the best, is he?
Oh, and on the talent scout model: absolutely.
And that's exactly what Jeff, Discourse, and Discourse coworkers want. Someone who really wants to work at Discourse and not someone shopping for a new "best" job.
EDIT: No, this doesn't address the situation where a potential person who wants to work for Discourse can't because of current obligations.
EDIT 2: Wanting to hire the best and brightest is just marketing fluff that really means We Hire Very Talented People*
*Who want to work with Discourse.
I already have a job. When I search for other jobs, I do that in my free time. I really hate doing it. It is tedious and very unrewarding. So I want to maximize the number of leads I create per unit of time.
When I see a code audition, I see many hours of useless bullshit done in my own free time that could create at most one lead. At that point, you pretty much have to pay me to apply for your job.
So much gets said about the number of applicants per position, and how to filter those. Well, the converse is true. All those people are also applying to multiple job openings. They filter based on published requirements and ease of application.
Not only do you want to hire the best applicants, but you also need to make sure that the best people become applicants in the first place. That won't happen if the very first thing you do is prove unequivocally that you do not value other people's time.
And true, nobody needs a try-out period - but some want one, in order to help them evaluate their potential employer.
If your assertion is that none of the "best and brightest" want to test out their potential employer, then we'll have to agree to disagree.
They attract other very good people just by virtue of being there. They contribute to things outside their specific job description in ways that a remote person can't (company policies, culture, company direction, leads on customers, etc - often serendipitously). They are frankly worth more in an acquisition scenario because they are more likely to stay with the company. They can grow into senior or leadership roles in a way that a remote person simply can't.
Frankly, I think the best and the brightest is kind of a mythical unicorn anyway. If you keep chasing them, you'll end up passing on a lot of great people.
E.g. just because I'm that way, bought my first DECtape in 1978 (sic), backup my home systems on LTO-4 today, I almost always ended up being the guy who did the company's backups at the startups I joined. Especially if you can't afford a tape library, you've got to be there to do that, to make damned sure it gets done.
Or someone asks me, a couple of decades ago, "we're dissatisfied with our ISP, you know any good ones?" and I say "well, I've been personally using DIGEX for a few years and they have their act together." Etc. All outside the scope of my official work as a programmer.
Or even more obscure, one of the things my family back home back then did was real estate and I picked up a lot of things by osmosis, and later reassured several sets of small company management that the clock cycle of that field was much, much slower than ours, and they didn't necessarily have to be concerned by how long it was taking to get new office space etc. Again, something I'd not be able to contribute without being there to hear them grumbling about the issue.
Also, if someone wants to politically trash you, being remote puts you at a terrible disadvantage. I had that happen when I mostly "dissapeared" for 6 weeks to produce a MVP a potential client challenged us to make, because I had a much faster machine at home and didn't have an office mate who's job it was to talk a lot on the phone (yeah, the company didn't get several things).
Completely gratuitous, the guy was of ill intent, left the company taking our biggest customer which probably doomed it. But it, well both of those, set up the conditions for my getting constructively terminated as soon as I finished V1.0 with my team, and with the guy I'd mentored on what was almost his first job into a good software engineer, leaving soon after, removing all knowledge of the system's backend from the company, that product died.
1) Anti-moonlighting clauses
2) Time commitment from both parties
3) Tax/thought overhead to signing agreements and getting paid. This way I'm a 1099 everywhere I interview. There's a reason I'm not an independent consultant full-time.
4) Different challenges. How do you objectively, fairly evaluate candidates when they're given a different issue to fix or different feature to implement?
But I agree that work-samples are essential to good hiring.
A staged, small-challenge approach (like Thomas Ptacek / Matasano use) seems better to me from the standpoint of an interviewee for a few reasons:
1) Less overall time commitment.
2) Fail-fast. If I blow the first hour(s?) long screen, I'm done. No weeks of work involved.
3) Consistent, fair evaluation. Presumably a set of "canned" challenges are used and the time taken and quality of output can be evaluated directly against the performance of others.
It's nice to know I still have morals. ;)
Each interaction should be treated like a mini presentation. I have a toolbox I use for this that includes:
1. screenshot software
2. screencast software
3. screensharing software
4. videoconferencing with an HD webcam
5. a whiteboard I can point my webcam at
6. note taking (I use evernote)
7. remote assistance software like logmein or teamviewer that lets me take control of the other persons PC or vice versa.
it's not completely seamless, but if everyone is using the same toolbox and is capable of starting a video call, snapping screenshots and sharing them, switching to the whiteboard to brainstorm posting a quick video of the issue/prototype whatever in the shared space then it works pretty well.
The biggest barrier to good remote teams or mentoring that I've found is when no one has the same tools or is willing/knows how to use them. Also, if either side has a resistance to learning knew remote processes or has a grudge against the remote person for being remote or for the need to hire remote (because of lack of talent in the local area) then there's more problems than just not being able to collaborate remotely.
Of course it helps if the junior developer also has a project (or any other tasks) matching their current skill set to work on so issues don't have to be solved in real-time to prevent idle+frustrated engineers.
I've actually had more trouble with local mentoring. It is hard to get people thinking deeply about how something works and how to solve problems when they know an answer is a few grunts away.
It's not so much having all the tools, but standardizing on a certain set of them and making sure everyone uses them and knows how to. Then if I say, "Let's collaborate on this, I'll send you the document link" my co-worker knows I'm talking about a google doc or a whatever we use.
Sometimes you need feedback but it's not urgent. Could be for a problem your having or maybe just on a new interaction or UI element you're working on. That's an ideal case for grabbing a short video clip rather than trying to describe in an email, "The drop-down panel re-sizes the entire parent element to 100% but only when I . . .etc".
Videoconferencing should really be the default for team interaction remotely. It's takes no additional work over a phone call but you can read the other person better. Over time this makes a big difference in team cohesion.
I keep notes on my work process regardless of whether I plan to share them or not. Being able to share them and even collaboratively edit them is another big time and bandwidth saver as both of us can add debugging notes to a running log or brainstorm together on a new idea complete with screenshots of mockups or grabs from a similar webpage or app.
Allowing only public chats will not help but just pollute the general channel of communication.
Over 15 years helping people on IRC has taught me that dealing with this is a mentoring skill. There are lots of shortcuts that both get to the root of the problem and foster skills in the junior to suss things out for themselves, or at least formuate their problem better. Streamlining two-headed troubleshooting is a form of pairing and can totally be done remotely.
1) Don't just hire local talent, hire nationally, even globally. There are lots of successfully companies embracing working remotely.
2) Evaluate the value of a person's contribution based on how much they have done rather than how much time they showed up (what's done >> what to do). Some effective way to measure so is to track Github commits to see how many bugs they fix, etc.
3) When hiring, hire by audit. Pay the interviewees some hourly rate to finish a mini-project that is a part of your company's real work (e.g. add a feature), and let their performance in the mini-test be a large factor in deciding hire/no-hire decision. Also, try to hire from your tech community.
4) Effective communications for remote work: real-time chat, video chat, online bulletin board, weekly team status report.
5) Some big drawbacks of remote work are: brainstorming is hard + mentorship is hard. Luckily, some of the companies don't need brainstorming much. And for mentorship, don't hire people that need extensive mentoring.
So then forget interns and/or jr's devs?
I have found code reviews via pull requests to be a good mentoring tool.
Netflix, on the other hand, hires no folks like this.
http://www.businessinsider.com/interns-banned-at-netflix-quo...
My current company is comprised almost exclusively of newer engineers. It has put me in a strange position as someone with > 10 years experience in my field when that long ago, most were in high school.
EDIT: fixed split infinitive and spelling
At a startup, you are running full tilt 24/7 by necessity.
In a mid-sized organization you can work on a java webapp - as in your example - and possibly only on a part of that java webapp. In early stages of a startup, you're likely to have to know your way around the webapp's frontend, backend, mobile app/mobile web adaptation, handle SEO, plan for scaling, be a part DBA, handle server administration DevOps style, and do all kinds of internal business process automation unrelated to that product you're building. You'd need to be a jack of all trades at beginning - since there's noone around who's specializing in that other stuff - or spend half of your time becoming a jack of all trades.
So, only hire people that can afford to quit their current job for an interview? Or at least blow all their vacation time on you?
Despite producing over 60 apps for the iOs app store, a new employer wanted me to whip up an app with a tableview that is sortable and searchable. I told them to stop wasting my time.
Right now it's still an opportunity because the number of companies fishing in this pool is still relatively small, but that is changing rapidly.
The scarcity we're dealing with is still mostly a scarcity of mature professionals, and with remote working anything less than that is not an option.
Take this large-ish city in middle America. I have worked with a few local developers I would call mature professionals: If I was starting a startup, I know where I'd call. But I only know their skillset through having worked with them over the years. How can someone that doesn't have a network find them?
A few you can find in user groups and meetups. But that gets you one very specific brand of mature developers. Many in my list wouldn't go to one of those: They are often just sausagefests, with 25 to 35 year old males trying to impress others about how good they are. That and recruiters who tend to not know anything. Same thing by going with speakers in conferences: You get a few people, but those are probably not going to make your company their number one priority. It's more likely that you are an excuse to make money between other engagements.
An ad in a recruiting site? The really good ones don't get jobs like that: They mention a friend they are unhappy in their workplace, and they quickly get recruited. I got my last job like that, without even an interview. So and so says you are great and would mesh very well here, so have an offer.
Pestering recruiters? You can talk to those, but they can't tell the good from the bad. Also, the mature professional can't tell if your newfangled startup is good or bad. Will you want insane hours? Do you have a crazy idea, like mandating that all code is organized in tiny web services 100 lines of Clojure or less? Unless they are unhappy in their existing position, you have to find them and prove to them that you are a worthy employment option. And they might not even buy into your pitch. No, They might think that a web of tiny services doesn't really fix all the world's problems, or they might not want to do boring business analytics.
So, more than the scarcity of professionals, the real problem is that you can't even contact them.
The fact that they don't bother applying for jobs or, directly or indirectly, publicly soliciting offers is a symptom of that scarcity.
Also, the problem I encounter with calling on the people I worked with and would like to work with again is that most prefer to be self-employed, and can easily make more money that way.
Also, it seems that a big proportion of people who are looking for "remote" work are actually looking for people who live in the US, and can still go to the office when required. That is going to limit your pool a lot too.
Assuming you are someone who actually looks for these professionals, what sort of process would you go through to actually try and find them?
What? I can tell if an early stage startup is good or bad, by talking to the non-technical cofounders for a few minutes, just like a good programmer can evaluate me by talking to me for a few minutes.
Common red flags:
- no technical co-founder
- hiring an outsourcing company for MVP
- a "technical advisor" who is not a full-time cofounder
If you see any of those, forget it. I wonder why angels are still dumb enough to invest in such things.
That being said, if anyone (mainly front-end UX/UI, iOS, android, rails/django, node, and various MVVC js frameworks) who feel you are talented but aren't getting the right opportunities to work on cool, well-funded projects in the US, feel free to get in touch.
1) It took a lot of effort to discourage cliques based on location. People from different countries or parts of the country bonded more easily. New hires would also quickly bond because they didn't know anyone, but together they felt excluded by the established groups. This was critical to their happiness because they didn't usually have friends outside of work. We managed, but it does require more effort to prevent internal politics.
2) This wasn't the sort of job where everyone could work remotely, so we regularly lost people who decided to go back home. That's why I left, and I was neither the first nor the last. People miss their families and friends, especially if they miss a large event.
3) Moving people can be expensive. Obvious, so I won't elaborate.
4) Recruiting from all over is also more expensive. You may or may not need to fly people out, but you also have a lower rate of interest for the same amount of effort. On job boards you'll get 500 resumes, out of which 100 people actually realized the position requires them to move. For the low-profile startup it just takes more effort and money to get the word out to the right people across the country.
Was it worth it? Sometimes. In the end, you need to consider whether the position is really worth the extra time and cost of hiring or whether you can find local talent that will do as well. The issues I've raised above are obviously harder for positions where "telecommuting" doesn't work.
What are the positions where "telecommuting" doesn't work and reasons for that? The OP argues that for pretty much all development jobs that isn't the case, and gives examples of how successful companies have implemented this.
The map is actually of the populations of countries, not of world population density as claimed in the caption, and it's pretty aggressively thresholded, too. A density map would look something like [2], which is so dissimilar as to undermine any conclusion the reader might have drawn.
[1] http://frcs3.s3.amazonaws.com.global.prod.fastly.net/library... [2] http://upload.wikimedia.org/wikipedia/commons/6/67/World_pop...
I tried to get a yammer site going but it died as well. My boss said that he prefers face-to-face interaction so I got a high-quality webcam but it's already enough of a pain to make sure he has his microphone plugged in.
Have you tried using google hangouts?
that might sound ridiculous but the CEO is the lead PM on the biggest project we've ever taken on as a company. He's so busy going to planning and user meetings and managing the requirements that he doesn't have time to work on the company. I love the work and I live in the middle of nowhere which are two lame reasons I haven't seriously pursued other options.
There's also the problem of remoting requiring a different skillset. I know many developers that are very good, yet they are terrible remote developers. I know one that would spend her days tweeting or enjoying her boyfriend. Another one that will fight a problem for a week instead of asking a 5 minute question. Another will undertake major refactors without telling anyone. And all those three are amazing developers while on site: You just have to keep them on an extremely short leash while remoting, and they really don't like that.
It sounds like these people have to be on a short leash, period. It's just that the leash is implicit on site, but has to become explicit in a bad way when they're remote.
Although I do empathize in other contexts (especially the long term unemployed, or those not making it into the job marketplace) the general "skillsets" of working, of "showing up on time", being diligent, properly subordinate to your superiors, etc.
If you're willing to hire remotely and hire from your online community as Jeff suggests, you're competing with surprisingly few companies.
I'm part of a small Microsoft SQL Server consultancy, and competition for good database performance tuners is notoriously difficult. However, when we publish a blog post that we're hiring, we get overwhelmed with applicants. Most of our competitors require an onsite presence, make the employees show up in an office from 9 to 5, and hire in cities with high costs of living. We don't - so we don't end up with much competition for brilliant people who just happen to have family ties to smaller communities.
Sure, plenty of those companies say, and maybe even think, they're "only hiring the best and brightest", but if they're wrong, or not good at retaining them....
Does anyone know of a company/startup which provides "remote employment as a service", including managing payroll, days off/holidays, local law/tax compliance and the whole slew of paperwork?
If you get, say, Facebook or IBM or Microsoft large then you just have lots of regional offices to handle this.
Another solution I have seen in real life is to ask the foreign "employee" to create a one-person company that bills the "employer".
The process then is simply making a periodic invoice from my company to yours; the ongoing costs involved would be whatever an international money tranfer costs for you, + I'd pay something like $50/mth to a local accounting company to handle all the taxes&reporting for that.
I don't know of any full "remote employment as a service", but there are a lot of outsourced accounting companies who'd do the taxes & paperwork - most local small businesses do it this way, since there's not enough work to have a full-time accountant/finance person on board. Actually executing payments and managing days off is a bit trickier, since the first requires full access to the company funds, and the second involves managing people, which is hard to outsource - you probably could get them to calculate 'what is owed to whom' by the local laws, but you'd have to pay salaries yourself & schedule vacations directly with the employees.
Also, at least in Germany, if you only have one client/customer, you're vulnerable to committing a tax/social security offence called "Scheinselbstständigkeit" (roughly: faked entrepneurship), as you'll end up paying less in taxes, social security and insurance than a full-blown employee and people have abused this in the past to maximize their profits on cost of the employee or the systems.
As for that "Scheinselbstständigkeit", I believe most other countries have some similar legislation. It's not an issue with freelancers as you have rotating clients, even if it's only one at a time; but yes, if you're creating it just for a single employment then that can be treated as tax avoidance - having the employer run a shell-subsidiary-branch would be preferred in that case.
On both sides of the table, society constantly pushes us to think we're number 1 when we're really not. Non-top-tier companies and top-tier companies shouldn't have the same hiring practices. Nor should non-top-tier applicants and top-tier applicants have the same recruiting strategies.
Can we all stop pretending to be something we're not? The world operates on a normal curve and not everyone can be the 1%.
That said, if you are the top employer, I think a great metric is simply to gauge the time an audition takes. A technical problem for the best and brightest might take a couple of hours, whereas for someone less qualified it takes much longer. And this exercise should come with suggested timing to weed out people who know they're not able to crack it in the allotted period.
I think this could be a way to not have long term auditions, because what you've done is focused on creating a quality-assessment (difficulty of problem) as opposed to a quantity-assessment (length of time).
I disagree with what other commenters have said; having anything but long term auditions will not sufficiently gauge fit with corporate culture. But hey if you're going around the world to hire remote workers, culture is probably not your top priority anyways.
For example:
"At LowBudget Brands, we provide reservations, customer support, front desk software, and backend support for property owners who want to own a successful hotel brand. A large portion of our travelers may not know which television station to turn to or have their smartphone or other device know set to the local weather, so, LBB wants to build a solution that: -> Provides Hotel managers to create an account that allows them to set their property number and zip code -> Queries Weather Underground to determine the three and five day forecast for that zip code -> Generates a single page .pdf file with that content -> Mails the hotel the day's weather at 3 in the morning. "
If you've gone through the interview process, we know that you have experience with API's, background tasks, and PDF generation...or two of the three. I pay a flat rate of $200 for this task, and then we throw it away once they're either hired or we decline.
We provide a Vagrant file and an amazon t1.micro instance if that's easier, and that's proven to suit our needs rather well...
1. Its realistic. It has a customer and it has needs. 2. You're prepared with the resources needed. [You've thought about this before] 3. You're willing to put your money where your mouth is. I get the feeling that many of the lengthy coding tests or auditions are nothing but timewasters for punishing a new applicant. 4. It sounds like a weekend project/take home exercise.
Don't complain about not finding the best engineers if you're not an engineering-centric company; by definition, you don't need the best, you just need good enough. There's nothing wrong with this.
Hiring processes throughout the industry are entirely non-rigorous, and there is almost never any loop-closing when it comes to hiring signals and eventual job performance.
We are spectacularly bad at recognizing talent because we've never sat down and rigorously connected signals to success and failure.
Tech hiring is the ultimate cargo cult. It goes through fads (remember when logic puzzles where the thing?), and works primarily via arguments that sound logical but were never even remotely verified. It's monkey see monkey do at a mass level.
Maybe it's because I live in france and that employers can't easily fire people, maybe I'm not the "best and brightest", maybe I'm bad at communication, maybe I can't manage to sell myself properly, maybe I have issues.
It feels like buying somebody to be a friend in a club, not paying him to do some work.
I think employers like to hire people "they can trust", and I find it stupid. It's normal at first, but I wonder why there aren't any company trying to hire people who are not likable and finding ways to make the company work. I mean a company is not a group a friend doing chores and having coffee, of course you need people to behave a little, but I don't understand why it can boil down to simply exclude elements that can create "awkward situations that can put the company in danger".
Only the mediocre are going to settle for $160k/yr + options at some "me too" A16Z startup.
And some one really good might take a CTO role at a me to start-up to tick that box make your mistakes where it doesn't matter then move on to bigger and better things after 18 months 2 years.
I suppose this is true of most entrepreneurial advice.
Driven people with practical applicable experience are all the more worthwhile to me than folks who while smarter and brighter, often need an external source of motivation beyond a paycheck.
... and are allowed to do so.
How do you feel about the fact that the book is quite dated. I mean our ability to be integrated into the team, information and workflow while working remotely has improved by leaps and bounds since 1996. He's referencing a time before, DVCS, team chats (IRC I suppose), shared work boards like Trello/Pivotal, DropBox, Google Docs, Github, screen sharing. The list really goes on and on.
Video conferencing is never as good as face to face and I have used pro level video conferencing gear at BT not some 20$ webcam and crap mic.
Its a bit like thin client computing which is one idea that keep coming around and around.