
Hiring programmers (2005) - RiderOfGiraffes
http://neil.fraser.name/news/2005/09/03/
======
gruseom
This guy's blog is pretty interesting. Interesting enough that it sucked my
attention away for half an hour, damn it. He invented an algorithm for keeping
multiple copies of a document in sync and when Google found out about it they
immediately hired him:

<http://neil.fraser.name/news/2006/11/01/>

I printed out a couple of his papers on this stuff for leisure reading.

------
russell
In Silicon Valley a Craigslist ad often gets several hundred replies. Unless I
get some kind of personalized reply, I dont bother with programming challenges
that involve a significant amount of effort. However, I will reply to
interesting design questions.

If your screening process is tilted towards screening out the untalented, it
may also screen out senior qualified developers who done want to put up with
it.

------
timwiseman
This is definitely interesting. One thing to reemphasize (which the blog post
says, but it cannot be overeemphasized) is that the sample size is so small as
to make any results highly suspect.

The other thing I found interesting was this one: >MCSE or other Microsoft
certification

This makes sense. Getting an MCSE is a major investment in time and money in
Microsoft technologies. Those people rarely also invest a lot of time learning
_nix as well (definitely some exceptions). I would not be surprised if many of
those candidates simply moved on to other opportunities after finding out how
tied to_ nix technoligies this particular job was going to be. Even if they
were that person that had *nix skills in addition to their MCSE they probably
found out they could make more money somewhere else that put more value on the
certification itself.

------
dmhouse
Interesting way of hiring!

I don't think there was any point in listing the demographic observations he
did, the sample is way too small for anyone to try to draw conclusions.

~~~
philwelch
It's a great first step to hiring. But I'm surprised that he didn't have any
university graduates pass--the problem itself is a freshman-level bozo test
used to apply the concept of a stack. The rest (log in to ssh and install a
CGI script) is a set of useful skills that any competent programmer could
(hopefully) teach themselves within the timespan of the problem.

If you only have 3 out of 30 candidates pass the bozo test, that limits your
choices when it comes to testing them on having any real talent.

~~~
dmhouse
"used to apply the concept of a stack"

Do you really need something as complicated as a stack?

    
    
      n = 0
      for (char in string)
        if (char == '(') n++
        if (char == ')') n--
        if (n < 0) print "Unbalanced"
      if (n != 0) print "Unbalanced"

~~~
philwelch
As you and the original author both know, you don't need to use a stack data
structure if you're just matching a single type of parens. (Your algorithm is
the server-side solution employed by the author.) Though if you used {([])}
with rules against them side-straddling like ([)], the stack would be
necessary to distinguish what type of matching character you're using.

But look at what you have: an integer (n) that counts the number of unmatched
open parens, that is not allowed to drop below 0, and that can only be
incremented and decremented. Your solution there is essentially a pushdown
automaton, with n representing your stack of open parentheses (and the value
of n representing the size of the stack). If you approached the problem
thinking of it as a stack problem, you'd probably end up optimizing to your
solution when you realized that actually stacking parentheses could be
efficiently simulated with an integer. But the restrictions you've placed on
that integer effectively simulate the restrictions of pushing and popping
parens off a stack. You're even going through the string once without
backtracking.

I'm not sure if it's useful or just comp-sci wankery to think of it this way,
but there's an equivalence between that solution and the freshman stack
solution after all.

------
fuzzythinker
The question is pretty much the same as one used by justin.tv ..

------
codesink
It would be useful to know where he advertised for the job.

~~~
Zak
And the content of the advertisement. If it was clear that the job was web
programming in a Linux environment, then it's more surprising that a
significant number of applicants failed to show basic proficiency with the
tools of the trade (SSH and the command line). If it said "Programmer wanted,
high pay and stock options, no degree required", then one could expect replies
from just about anybody.

------
khill
I'm surprised no one tried to root the box.

~~~
Zak
The challenge description says candidates were encouraged to install other
programming environments if they so desired. This leads me to suspect they
were _given_ root access.

------
dexen
In regard to the 5 point Neil makes under the original post, I have a sad
observation:

\- numerous people would, and often do, rally against gag orders handed down
by various offices

\- yet the wide society is pretty quick to gag or chicane a blogger for
publishing politically-incorrect observations. Observations that were
surrounded by disclaimers of small population sample and other factors that
clouded them. And while it's not necessarily the same people as above, it's
still the wide society.

------
jrnkntl
That's funny, right now in 2009, when we are planning to start a company in
Thailand we are hiring only:

programming females that are married (pref. with kids)

Since they're the only ones here that are not job hopping, capable from
working at home and not all day on facebook instead of the majority of Thai
students/fresh graduates.

~~~
marcusbooster
Well you're wrong on one account, they _are_ on Facebook all day.

~~~
jrnkntl
What? You got a bunch of Thai mothers as a friend? ;)

~~~
rimantas
No need for that. Mothers with toddlers usually have a little mobility and
heightened desire to socialize — being online is about perfect way to do that.

------
chaqke
i'm surprised that marriage was a factor - i'd suspect incomplete data on that
dimension.

------
tptacek
This article contains no apparent information and is from 2005. I had a
comment about it, but instead I'm flagging it, and urge you to do the same.

~~~
statictype
Its interesting only because, when you look at the negative predictors and you
see 'hotmail address', 'mcse' and you nod your head in agreement, then you see
'women' and you then you start to think twice about your stereotypes.

~~~
joshhart
He only had 30 apply, of those maybe a couple were women. That's far too small
a sample size to draw any real conclusions.

~~~
tptacek
He also didn't explain how he got the "married" data, and he didn't explain
how he differentiated between people who were unable to login and people who
were unwilling to log in and write code in an unfamiliar environment for a
marginal job.

There's nothing scientific about this data, despite the fact that it's been
dressed up with words like "correlate". It's seems borderline irresponsible
for him to have even written this.

~~~
RiderOfGiraffes
I'm amazed you think the word "correlate" counts as "dressing up". I use it
regularly, without any intention of claiming scientific credentials.

I'm amazed you think that someone making true observations they think are
interesting is being borderline irresponsible. Quite specifically he says the
sample is too small, quite specifically he says that "not having these
attributes was no guarantee of success." Quite specifically he says that they
saw no positive predictors.

What should he have done? Observed these things, noted that he was surprised
by some, then not told anyone? That seems to me to be borderline
irresponsible.

I see this post as an invitation to make a larger experiment, one with
controls, and where the sample is large and chosen appropriately.

~~~
tptacek
"Among 30 random people who applied for my marginal job opening [in 2005], no
married people, women, or university graduates were observed logging in to
complete the unusual programming test we set up for candidates".

When you write it out the way it actually happened, it doesn't sound so
interesting. That this post dates back to 2005 is not the author's fault. And
yet here we are in 2009 talking about gender politics and married people and
whatever on Hacker News, based on what? Nothing.

~~~
RiderOfGiraffes
<shrug> As you wish. As someone who currently manages 8 programmers, and am
always being approached to see if we have an opening, and am always concerned
about the hiring process, I am _always_ interested in such things. I thought
people here on HN might also be.

I'm interested to hear your views, much as I might disagree with them. I
haven't down-mud you, and I wish others wouldn't. I think your thoughts add
value. They make me think again, even if I conclude that in my opinion you're
wrong.

~~~
tptacek
Thanks. I'm hiring devs also. And I don't think any less of you for
disagreeing with me, even though I am clearly right. ;)

