
P(we hire you) =~ 0.0016 - kemayo
http://davidlynch.org/blog/2011/07/hiring-developers/
======
justin_vanw
P(I'm impressed) ~= Nope

Turning down a lot of candidates is not the same as finding good candidates.
If you are turning down that many applicants, all it means is that your
applicant pool is almost entirely bad candidates. That merely implies you are
failing where it matters most, getting awesome candidates interested and
excited about working for you.

I bet you could drive the P down even more. You could write worse job
descriptions that get even more of the wrong people to apply. You could post
the job listing on job boards like Monster or Dice, where there is a huge pool
of un-hirable candidates who will apply to 20-30 jobs per day. I bet you could
make it so bad you will have to hire someone to be the initial filter of
candidates. Congratulations! You now have an HR department. They will
arbitrarily filter candidates before the people actually competent to filter
candidates get to see them, based entirely on buzzword bingo and 'number of
years of experience'.

You are failing and you're proud of it!

~~~
latch
Interviewing process is something which, to my astonishment, companies don't
tweak or experiment with. They have a process and they stick with it...this is
as true of large corporations as it is of small startups. There's no attempt
at being better or trying something different, even though everyone
acknowledges how difficult and important it is.

Part of the problem is people don't realize that they are doing it poorly.

~~~
randomdata
_Part of the problem is people don't realize that they are doing it poorly._

You would think the 0.16% success rate would be a pretty big indicator.

Based on my own experience, there were a number of points in the article that
I have found to be not effective ways to hire programmers. And that is fine.
They are free to hire people as they wish. But placing all of the blame on 99%
of programmers being unqualified seems to miss the mark. It is more likely the
hiring process causes them to miss out on the really good programmers.

------
cletus
You have two steps round the wrong way:

1\. Do the phone screen first. Frankly, in my experience, you can filter out a
lot of people in the first minute; and

2\. Then do the test.

Speaking of the test, I had a quick look and it takes time. How much time? I'm
not sure as I didn't look at the starting code, just the list of tasks. Maybe
it only takes 30 minutes. Maybe it might take hours. I really don't know.

Either way, these sorts of things are huge barriers to entry because, as
someone looking for a job, I also have to decide on how much time to spend on
_you_. The fact that this test is just to get to the phone screen lowers the
amount of effort I'm willing to put in.

Also, you don't need terribly complicated coding problems to weed out early
stage candidates. Honestly, getting someone to code a relatively efficient (at
worst O(n) space and time) factorial function will tell you ~95% of what you
need to know from this test _if you can witness them actually doing it_.
Seriously. So screenshare with them and get them to do it. No editor. Just a
Google doc or similar.

That all being said, I'm really shocked how woefully unqualified an awful lot
of programmers are at... programming. The sort of acceptance numbers talked
about here and at places like Google (disclaimer: I work for Google) are more
testament to the number of clueless cowboys infect our industry than anything
else.

Also, bear in mind that an interview is a two-way street. The more effort you
expect from the candidate the more they need to want to work for you before
they even start interviewing. Google, Facebook, Twitter and the like have this
kind of developer gravitas. Do you? I don't know.

Lastly, the three month trial thing is, for me, a huge problem. After all this
there's a 20% chance I might lose my job for no reason other than you may not
like me?

One reason Google is so selective is we take employment _seriously_. Leaks and
criminal offences notwithstanding, it's actually pretty hard to get fired from
Google and those decisions are not made lightly. That may have some negative
side effects but overall I think it's a good thing that engineers aren't
constantly worried about being fired.

~~~
cperciva
_...a relatively efficient (at worst O(n) space and time) factorial
function..._

If you can do that, you'll win a Nobel prize. (Yes, I know there isn't a Nobel
prize in computing: You'd win a Nobel prize in physics, for showing how to
store Θ(n log n) bits in O(n) space.)

Heck, if you can compute n! in O(n (log n)^(2-x)) time for any x > 0 you'll
probably win the Turing award. Such an algorithm would be really really big
news.

~~~
ramchip
I don't understand your comment. Take a simple definition of the factorial:
<http://codepad.org/GTBdCKin>

The space usage for this function is obviously constant, and the number of
multiplications will be linearly dependent on the number.

If you mean to refer to the 'factorial function' as a mathematical object, and
point out that bignum operations have different complexity... well that's
true, but irrelevant to OP's post, and there are less snide ways of saying it.

~~~
cperciva
Yes, when I say "factorial function" I mean the factorial function, taking an
integer input _n_ and returning the integer output _n!_.

If cletus meant "factorial as long as the result is a 32-bit integer", I don't
know why he would accept an O(n) solution to that: I wouldn't hire anyone who
didn't immediately produce the obvious O(1) algorithm using a 13-element
lookup table. (If he meant "factorial modulo 2^32", a 34-element lookup table
suffices.)

As for being snide... yes, but I'm tired of the myth that Google is full of
(and only hires) algorithms gurus. I have yet to see any indication that
Google requires any more than a minimal undergraduate level of algorithmic
competency.

~~~
ramchip
> I don't know why he would accept an O(n) solution to that

Because it's a question used to weed out _early stage_ candidates. It's a
fizzbuzz test. The point is not to see if the candidate knows the algorithmic
complexity of arbitrary-sized integer operations, and neither is it to see if
he knows whether the factorial function grows quickly enough to make a look-up
table worthwhile. It's just to take a very simple function and get him to
write some code in a text editor.

Or at least, that's what I read from the OP's post. Perhaps he meant
otherwise.

------
jefflinwood
Looking at your job description, I'm guessing that you are trying to hire
junior PHP/MySQL programmers at maybe a $50,000/yr US range. Nothing wrong
with that.

Looking at your coding exercise, it's a small set of code, but it would be
more than an hour or two for me (or presumably anyone) to do all of the
improvements, find all the bugs, fix them, do the extra credit, make sure it's
not sloppy before I turn it in, etc. So way more commitment than just sending
in a resume or writing you an email.

Reading your blog post, you guys seem to want rock star technical candidates,
but with that job description, you're going to attract people who have done a
few PHP web sites, maybe customized a Drupal or or Joomla or Wordpress site.

When I've interviewed and hired developers, our best ones always came from
friends or recommendations, never from job postings or job boards.

------
jrockway
That seems like a lot of work. The last thing I want to do when applying for a
job is open up some random code and hack it. I have many other things I'd
rather do, like sleeping or working on some code I care about.

Google doesn't do it, Amazon doesn't do it, so if that's who you're competing
against for developers, why would _you_ do it?

~~~
thomaspaine
I've never actually applied for a job at Google, but going to 7 interviews (or
however many it is now) seems like a lot more work than what they're asking
for. I'd rather spend 30 minutes writing code than 7 hours on interviews, and
either way you're going to have to answer technical questions at some point in
the process.

Also, if you can't be bothered to spend 30 minutes proving that you can code,
how much do you really want to work there? The only time I've done one of
these challenges was for a company that I was really excited about working
for.

~~~
jrockway
It's four interviews and lunch. (Which is longer than the average interview,
but if you are going to fly to another city and stay in a hotel, what's the
difference between 2 hours and 5 hours? The actual interview is not the
inconvenience, the travel is.)

~~~
cperciva
I'm pretty sure I had 7 interviews when I visited Mt.View five years ago.
Maybe Google's standards are slipping? ;-)

~~~
EmployedRussian
Google has experimentally determined that interviews 5 through 7 provide
negligible additional signal, and so they've been eliminated from the process.

Contrary to latch's comment here:
<http://news.ycombinator.com/item?id=3062001>, Google does tweak the process
from time to time.

~~~
gergles
But don't worry, they've kept the random noise "hiring committee!"

~~~
cperciva
Do they still have the 'founders must personally approve everybody' step?

------
kabdib
My thoughts:

1\. Another programming problem. Okay, if it doesn't take too long, I'd do it.

2\. 60 day fuse. No way. I've worked under a Sword-of-Damoclese clause before,
and I won't do it again. This is a deal-breaker, and it's probably sending a
very bad message to a large group of good engineers, and you're missing out.

Fire for cause, or whatever, if you have to. But I won't work in an
environment like that, and (I guess you'll just have to take it on faith) it's
your loss, not mine.

~~~
kemayo
I can understand not wanting to work with the trial period; that's why we're
really up front about it. There's a whole "no, we're not kidding; are you sure
you want to take the job even given this?" segment to the offer.

~~~
kabdib
When I make a hiring decision, I am damned sure. The recommendation to hire is
the point where I commit to doing my best to make things work out.

I have screwed up before. It sucks. It is painful and horrible to deal with
someone who is not working out. But I haven't blown a "hire" vote in 18 years.
Hundreds of interviewees, dozens of "hire" recommendations, zero bozos.

It sounds to me like you are insecure in your hiring practices, to the point
where you tell people "Quit your job, move your family, turn your life inside
out, whatever; but you're on probation here and you're gone if you blink
funny."

Maybe it's just my past, where I was in this position (and it worked out
really well, btw). But I wouldn't do that again, and I wouldn't do it /to/
anyone.

Good luck. I hope it works out. But I cannot imagine a worse way to enter a
job.

------
maxwin
I think it might be because good developers filter you out before you filter
them out. They might spend time working on the code because they happen to be
interested in the problem, but a good developer would not waste their time on
dull problems just to get a phone interview because they don't need to.
Especially if they have never heard of your company. If you are selecting
people who are desperate for jobs, your P is not surprising. Perhaps your
should fix your own (hiring process) bugs first? Maybe P(great developers
applying)=~ 0.00016? Just kidding :D

------
pyre
As I stated in the thread kemayo referred to:

1\. I got as far as a promise of a second interview that never materialized. I
found it annoying to be told that they wanted to give me another interview,
then that they 'moved forward with another candidate,' then to see that the
position is seemingly unfilled months later. (I'll note that they were posting
in the "We're Hiring" threads within a week or two)

2\. Between stages in the interview process I would be told that I would be
hearing back from them 'shortly' or 'soon.' This ended up being an average of
3 weeks between stages in the process. Which was rather frustrating.

[edit] I'll at some other notes:

1\. The programming problem doesn't have to be perfect. Mine wasn't. They
pointed out that my code was susceptible to SQL injection during the first
interview. And I also missed a JavaScript gotcha (that was obviously placed
there intentionally). [Obviously you want to do as well as you can on this,
just sayin' that they aren't requiring 100% on the problem to get your foot in
the door.]

2\. I was able to get an interview with little PHP experience.

~~~
throwaway100111
I got an offer a few months ago from deviantART after doing the coding test
and phone interview; I replied with some questions about salary/benefits and
never heard back. Highly frustrating.

(Throwaway account, as I would rather not publicize that I'm looking for a
different job. If you're looking for the same type of person dA is looking for
though, feel free to reply to my comment with contact info.)

~~~
mkopinsky
They dropped the ball on contact _after_ making an offer? Shocking.

------
linuxhansl
We do a simple programming test too, but we do after a phone screen and after
we decided to invite you to come in. It's simply part of the 1/2-1 day
interview that we do.

You get 2 hours, a problem that doesn't take more than 30-60 mins to solve,
and an internet connection in case you want to look something up.

I agree with other posters here that a very simple problems weeds out a large
chunk of the inept folks.

We had people just sit in that room for two hours and all they did was remove
some lines from the skeleton that we have them. Or people who just left this
simple exercise and went home.

I disagree with others about doing it life via a shared session. Programming
and thinking is a private affair (IMHO), there is some exploration component
in it. Nobody will want to explore in front of a panel.

In the end we don't even look at the test unless there is disagreement between
the interviewers, or we identified a specific concern about problem solving.

------
botj
_"I’d worked places with a trial period before, but it was always just a
matter of not..."_

Will you be on probation after that grammatical "bug"? By the way, you guys
sound pretentious as hell. I'm surprised you don't lose more than 20% in the
three month trial.

What's the point in the trial? If it's not working out, just fire them.

------
kemayo
I wanted to submit this, because in the recent hiring thread [1] I got some
responses complaining that we'd been posting for ages now, without apparently
hiring anyone.

[1] <http://news.ycombinator.com/item?id=3060406>

~~~
JoeCortopassi
Just tossing this out there, cause I was one of the people making those
comments. I don't think anyone is frustrated with not getting hired, I think
it's just weird seeing the same monthly "We really want to hire people" post,
but zero response to (what seems like)a lot of people that apply.

I feel like this is indicative of one of three scenarios:

1) For whatever reason, there is a high turn over rate at your company. This
isn't always a bad thing, but if a company is always hiring, it's usually
because they are consistently losing people as well.

2) You are experiencing crazy explosive growth, so much so that every month
you need to hire more of the exact same positions.

3) The requirements for the job are poorly defined. This would lead to a lot
of people (mistakenly) applying to a job that they have no hope of filling the
requirements for.

Whatever the case may be, I really think the only reason you guys are getting
any kind of backlash is just because it is becoming a common theme to apply to
DeviantArt and never receive at the very least a "Sorry, not what we're
looking for". Do it to enough people, and there's bound to be a response.

EDIT: There is a 3 month period in which 20% of new people get fired?! No
wonder you are always hiring. You are effectively telling people to leave
whatever job/security that they have, then cutting a non-trivial amount of
them loose because they weren't a good fit? That's not their fault, thats a
problem with the hiring process. Who knows what it does to the moral of the
other workers. Oh wait, they are all remote. No one ever finds out...

~~~
latch
It's mind boggling that your parent, your OP, missed that people were mainly
disappointed with the lack of feedback. It's also disappointing that, despite
a number of signs, they don't even consider that they/their process might be
the problem. There's a disconnect.

~~~
JoeCortopassi
It's funny that they don't get it though. If you want a community (HN) to help
you with something (finding help), you need to be nice/polite to them.
Otherwise people start getting vocal.

------
lowglow
Super disappointed that this isn't David Lynch the director.

~~~
kemayo
I have a big thing on the front page of my site explaining that I'm not the
director. I still get a surprising number of emails who think I'm him. :D

~~~
jrockway
I get the occasional email asking about "jrock recommendations". I have no
idea why anyone would think that emailing me is a good idea; to find my email
address from jrock.us you have to scroll past a page and a half of programming
presentations I've given. People are weird.

------
yesimahuman
I understand the benefit of a "trial period" for the hiring company, but for
prospective hires this sounds terrible.

Is this common?

~~~
latch
yes, it's common...though I agree with the OP that in most places it's
very..easy going. It's particularly useful in places which don't have at-will
employment (read, most places) so that you can fire someone who really doesn't
work out without having the burden that's normally associated with firing
someone.

------
veritas9
Also worth mentioning, DeviantArt has a challenge up at CodeEval.com

Here's the direct link: <http://www.codeeval.com/public_sc/47/>

Give it a shot.

------
rorrr
I've been doing interviews for a large corporation. I can tell you right away
that your process is designed to weed out the best of the best.

You see, the best candidates stay on the market for maybe a week. You'd be
lucky to interview them once. Nobody who is truly good will jump through your
hoops.

You're just hiring the best of the ones willing to subject themselves to this
ridiculous process, pretty much some desperate developers who are barely good
enough to pass your tests.

And a 3 month probation - no way in the world, I would only do it if you paid
$200K + bonus. The market is desperate for good developers, I'd have to be
completely desperate to be treated like that.

~~~
wavephorm

      You're hiring... the ones willing to subject themselves to this
       ridiculous process, pretty much some desperate developers
    

That's EXACTLY the employees they want.

~~~
getsat
I went through this application process before I had this test dropped on me.
I simply didn't have time to complete it. I was desperate enough to actually
warrant writing PHP again, but I was able to find a better position elsewhere.
One _without_ a "trial" period.

------
suivix
Are you guys really bragging about having a faulty interview process that
wastes over 99% of people's time?

