
Developer hiring and the market for lemons - mkeeter
http://danluu.com/hiring-lemons/
======
mgkimsal
It seems that "great" developer is somewhat a synonym for "public" developer.
I'm not sure how companies would just "know" someone is "great" otherwise. And
yes, not all publicly known developers are necessarily great (or even good),
but I'm not sure how one would recognize a 'great' developer without that
person also having some degree of publicness to them.

And yet, I've known more than a handful of developers who are really solid,
great people to work with, and I'd like to work with again. None of them have
ever blogged, podcasting, presented at conferences nor run a public repository
on github. Yet by many definitions of 'great', they fit the bill, but not the
sort of 'great' that would mean companies would just 'know' of their
greatness, and go out of their way to hire/recruit them.

~~~
morgante
> It seems that "great" developer is somewhat a synonym for "public"
> developer.

Not really.

What Joel and Dan are both talking about is that great developers tend to have
coworkers who know they're great and will happily hire them at other
companies.

I'm certainly not a "public" developer. My most popular repo on GitHub has
maybe 10 stars. But I do have a handful of people who I've worked with in the
past who will readily hire me at their new companies.

Referrals are how most hiring works, and it's the predominant way that
companies recognize "great" developers even though said developers are not
public.

~~~
vonmoltke
I have been in this industry for 14 years. I know three developers I have
worked with who are both still working and not still at the companies where I
worked with them. It's kinda hard for me to take advantage of that. This kinda
ties in to the point tptacek made elsewhere about the problems of relying on
this kind of recruiting.

~~~
morgante
> It's kinda hard for me to take advantage of that.

Why? That's 3 companies where someone should be willing to give you a strong
referral, not to mention that really your network should include second-degree
referrals as well.

~~~
vonmoltke
It's only three companies, and they aren't companies I would want to work at
unless I needed another job.

I'm not sure what you mean by "second-degree referrals".

------
sixhobbits
I think the author is talking past Joel to some extent. Joel's emphasis is not
on good developers not changing jobs, but more about the fact that they very
seldom go through a traditional application process of sending in a cv to a
hiring manager. Instead, these people "travel as fast as beer" when they're
looking for a new position - they mention it to a friend or colleague who has
a beer with someone else who sends over a job offer.

It can seem paradoxical that companies are saying that they can't find people
to hire, and even with the tech boom there are developers who can't find jobs
(at least ones that they are completely happy with), but this is because a
huge percentage of CVs on desks are from people who have needed to take the
time to send off job applications, and are often therefore representative of
the not "great" developers.

~~~
tptacek
Spolsky is wrong. I think we all have a clearer view of that now than we did
in the '90s, which is the era of software development he's writing about. I'd
be surprised to hear that Spolsky himself still believes everything in the
Guerrilla Guide to Interviewing.

But the notion that the best developers rarely go through the normal interview
process is itself problematic and worth picking apart.

It's true: the developers with the best reputations don't get interviewed.
They can get their pick of jobs just by networking.

 _But that 's bad_.

It's bad for multiple reasons:

* It creates an informal guild of developers --- not all of whom are actually good --- who can bank on career mobility regardless of performance. Those developers are often hard to motivate and always hard to retain. Some of them are toxic, but because it takes 1+ years for most companies to cough up a bad developer, they end up with resumes that are indistinguishable from the rest of the cool kids, so they get to "fail up".

* It means some of the best developers are never informing the hiring processes of companies, because they get to skip unreasonable candidate screens. This means the screens never get any better. If you're serious about screening candidates, you _standardize your process_ and you have an ironclad _nobody skips the process_ rule. But almost nobody has these rules, because they feel like they can't and retain access to the cool kids guild.

* It reinforces and amplifies stereotypes and privileges. It means it's super easy to get a job if you know the right people and look like Zuckerberg. It's part of the reason the demographics of our industry look this way.

So, apropos little else of this thread:

Don't let elite candidates skip your process. Standardize your process. If an
elite candidate balks, then you've learned something about them: they'd rather
your process suck and keep sucking than take any time to help fix it. That
sounds to me like someone who isn't prepared to invest their time and energy
in your team.

~~~
lhnz
> If an elite candidate balks [something personally negative about them]

It could also be that your interview process is bad and you should change it.

Perhaps the elite candidate is a canary in a coal mine, and fixing your
interview would help your less privileged interviewees, too?

~~~
tptacek
Your interview process probably _is_ bad. Having preferred candidates bypass
entirely while leaving it there for people who aren't cool kids isn't the
solution.

~~~
STRML
Labeling known engineers as "cool kids" is an easy way to dismiss it without
addressing the very hard question: how do you condense weeks or even months of
getting to know someone's skills into mere hours? If you know someone
personally or have someone you trust vouch for him/her, is that not a pretty
good way to focus your decision?

Those of us who don't have days or weeks to waste interviewing do what we can
to build a good team. Yeah, that often means allowing good engineers to fall
through the cracks, but we're all optimizing for time & effort.

------
CoolGuySteve
I think nobody's done more damage to the developer hiring market than Joel
Spolsky. His inductions about the liquidity of "great developers" seem to have
become true mostly because he was the only one writing about it in the 90's.

But a lot of it is anecdote and faulty assumptions. I don't know of many other
professions that have 8 hour oral exams that test the sum of all knowledge in
the field with such a strong negative bias towards hiring. Or a profession
that so strongly assumes ability is innate and cannot be trained.

It's outrageous.

~~~
Singletoned
I've been in the industry for 10 years now and I've never seen this at all. I
know a couple of people that applied to Google, and they reported that it was
a fairly gruelling process, but apart that, I haven't even heard from friends
about people going through anything approaching 8 hour interviews.

~~~
maxsilver
> I haven't even heard from friends about people going through anything
> approaching 8 hour interviews.

Is this a joke? "All-day" interviews are so common as to be the usual
expectation.

And while they aren't always a full 8 hours, it's not unusual for them to be
5-7+ (including giving candidates a lunch, and interviewing them _during_ it
while they eat).

~~~
flukus
I wonder at what point this becomes self reinforcing. They need the 8 hour
interviews because only the most incompetent will tolerate it or the ones with
full time jobs already can't make the time for the interview.

------
mixmastamyk
Yep I'm a fan of Spolsky in general, but the idea he supported that you must
be extremely skeptical, cannot trust anyone to be a good developer, and that a
bad hire can destroy a company has done untold damage to the industry.

Though I'm a _much_ better dev now than when I started in the 90's I had my
choice of jobs back then. Now it is horrible death march for the privilege of
slinging HTTP APIs, about the easiest thing a developer will ever face
professionally.

It's the reason why developer interviews are such a shit show, and a factor in
the "engineer shortage." People who can't code with a gun to their head (ala
swordfish) are excluded. Not to mention those that don't "fit", such as
minorities, women, and elders.

------
galdosdi
The author thinks that Joel is contradicting himself (since how can it be both
easy and hard to tell if a developer is great?), but I don't think so.

In fact, it's hard to tell for sure how good a developer is before hiring, but
easy after having worked with them for a while. This is similar to how it's
hard (as in, expensive) to be sure if a car is a lemon before buying it but
easy to tell after putting 10,000 miles on it. No contradiction.

Unrelatedly I agree anecdotally that from a developer point of view the market
for workplaces looks more like a market for lemons (it's hard to tell if a
workplace is crazy before joining it, easy afterwards, and a developer will
stay a lot longer at a nice workplace than a crazy one, so most job openings
are probably for places that have a high turnover for a _reason_).

~~~
nsgi
Not necessarily. Many job openings will be for new positions in workplaces
that are expanding. And if the best developers move more frequently between
jobs, the workplaces with the best developers will have the highest turnover
rates.

------
lhnz

      > Just for example, there’s someone
      > I’ve worked with, let’s call him
      > Joe, who’s saved two different projects
      > by doing the grunt work necessary to
      > keep the project from totally imploding.
      > The projects were both declared successes,
      > promotions went out, they did a big PR
      > blitz which involves seeding articles
      > in all the usual suspects, like Wired,
      > and so on and so forth. That’s worked out
      > great for the people who are good at
      > taking credit for things, but it hasn’t
      > worked out so well for Joe.
    

I have to agree with this, since many of the better engineers I have worked
with frequently interview. Generally, they run out of opportunities at their
current employment and need to find something new for them to grow. Also it's
often easier for them to get a pay-rise with a new job.

However, I wouldn't say that there is a "market for lemons" for employees.
Performance may well be difficult to evaluate during an interview process, but
after several months of work within a company it is generally quite clear who
is performing well.

I think the real issue is that:

\- Employment opportunities are a "market for lemons", and even if a team or
project is great to work within at first, it won't stay like this forever.

\- If a company spots a great performer they generally don't wish to offer
them preferential treatment (more autonomy, ability to learn something new,
pay rises, etc) due to its perceived effects on their peers.

There are all sorts of lazy heuristics that people use, and "good people are
never out of work" is one of them. Good people do sometimes go out of work,
but it will generally be to "scratch an intellectual itch" or to give
themselves time to be extremely picky about their next job.

I think the way forwards is to create more supportive development cultures
which allow for more room at the top (with opportunities for self-direction
and with pay improving alongside efficacy) and at the bottom (with mentoring
and training). This isn't just something that might be solved by a great
manager. It's also something that we I think we should hold ourselves
accountable for.

------
jacques_chester
> _Moishe Lettvin has a talk I really like, where he talks about a time when
> he was on a hiring committee and they rejected every candidate that came up,
> only to find that the “candidates” were actually anonymized versions of
> their own interviews!_

I worry about this a lot when I'm interviewing candidates.

Basically, would I have given myself a no-hire?

Sometimes I think I would've.

------
throw2016
The whole 10x great developer seems to be an attempt to build an elaborate
mythology to con immature and young workers to work themselves to death trying
to prove something that is vague, extremely subjective, illdefined and thus
unattainble.

Let's spice it up with 10x HR people, 10X CXO's and 10X VPs and hell while we
are at it why not throw in the 10x Barista to get Starbucks HR fired up.

Here is a better idea, forget the 10x developer. Show us the 10x code.

~~~
overgard
The famous 10x developers seem pretty easy to find. Carmack, Torvalds, etc. I
don't know what "10x" code means, but you could certainly look to codebases
from those two to learn. Similiarly with CEOs, with people like Musk or Jobs.
Even in fields like writing you have outliers like Asimov or King. Even with
your joke example of HR, while I can't think of any examples, you can imagine
an HR manager that improves culture and hiring so much the effect is enormous.
I don't know if people should bet their careers on becoming an outlier, and
there aren't a ton, but these people exist.

~~~
throw2016
By definition exceptional people are difficult to find or they would not be
exceptional. Everyone is not a Torvalds or Carmack.

That recognition has come after decades of exceptional work and experience,
not by solving test questions in an interview process.

How are you going to find Torvalds or Carmack in an interview process before
they have had the opportunity to do all the decades of work and gain the
recognition?

This 10x fantasy needs to stop or let's see some 10x code.

Anyone seeking a 10x engineer needs to ask themselves whether they can afford
them and if the work on offer is exceptional enough to require that level of
talent.

~~~
overgard
I guess I don't get what you're saying. It seems like your argument is that
exceptional people are hard to find so we should give up trying? What on earth
is 10x code, or the 10x fantasy? I already gave you easy examples of people
that are probably 100x more productive than average in terms of impact, so
it's not like someone 10x better than average is a unicorn. I'm not trying to
be rude, but "10x code not 10x developers" sounds like a delusional platitude
you'd hear from a faux populist politician or something. It means practically
nothing.

~~~
dilemma
It's very clear to me what the parent is saying. The people you give as
example only got that recognition long after doing the work that established
their career. In an interview process at the start of their careers this work
had not been done and their talent could hardly have been recognized in an
interview process. Actually, after reading Masters of Doom I am pretty sure
that a 20 year old Carmack or Romero would not get hired at any company in the
entire state of California that has an HR team. This due to personality
traits, lacking educational pedigree and poor work history.

------
spitfire
I'll post to this thread to simplify a lot of our discussion, tptacek also has
good insight here. Listen to him as well.

Hunter and Schmidt did a meta-study of 85 years of research on hiring
criteria. [1] There are three attributes you need to select for to identify
performing employees in intellectual fields.

    
    
      - General mental ability (Are they generally smart)
        Use WAIS or if there are artifacts of GMA(Complex work they've done themselves) available use them as proxies. 
        Using IQ is effectively illegal[2] in the US, so you'll have to find a test that acts as a good proxy.
    
      - Work sample test. NOT HAZING! As close as possible to the actual work they'd be doing. Try to make it apples-to-apples comparison across candidates. Also, try and make accomidations for candidates not knowing your company shibboleth.
    
      - Integrity. The first two won't matter if you hire dishonest people or politicians.
         There are existing tests available for this, you can purchase for < $50 per use.
    

This alone will get you > 65% hit rate [1], and can be done inside of three
hours.

There's no need for day long (or multi-day) gladiator style gauntlets. Apply
this process to _EVERYONE_ , including that elite cool kid. You don't want to
exclude part of your sample population!

[1]
[http://mavweb.mnsu.edu/howard/Schmidt%20and%20Hunter%201998%...](http://mavweb.mnsu.edu/howard/Schmidt%20and%20Hunter%201998%20Validity%20and%20Utility%20Psychological%20Bulletin.pdf)

[2] Technically IQ tests aren't "illegal", but the bar courts have decided
companies have to climb is so high it effectively means they are. I have
spoken to a lawyer about this. You should speak with yours too, before you
decide to try IQ testing.

~~~
intrasight
We use university degrees and GPAs as a proxy for IQ, and even with grade
inflation, it think it is still a good proxy.

~~~
tptacek
Degrees and GPA are primarily a proxy for social status. You have to start by
giving some thought to what your screens aren't telling you. A bad screen that
rejects 90% of qualified candidates can easily look like a great screen so
long as it's not passing through obvious bozos. That's the problem with
screens! It's easy to reject most bozos, but hard to let through most solid
candidates.

~~~
flukus
> Degrees and GPA are primarily a proxy for social status.

And IQ also has a correlation with social status, like it or not.

~~~
tptacek
I find all the most important and incisive comments about the nature and
distribution of intelligence in society tend to end with "like it or not".

------
caseysoftware
> _Joel’s model assumes that “great” developers are sticky – that they stay at
> each job for a long time._

The author is missing a fundamental piece here. It's _NOT_ that the "great"
developers will stay at the same job for a long time or that the company is
great at recognizing them. It's that their friends, colleagues, etc will
recognize them and bring them along.

When you take a new job (at any level) at a company you like doing what you
like, you will want to work with great people. Some will already be there but
most likely you'll have the opportunity to refer people in.. and you'll go
back to the people who you already know are "great" by whatever understanding
you have.

If you make a compelling offer hitting the right points - money, flexibility,
opportunity, etc, etc - then you'll get the person even though they were never
"on the market" in the traditional sense and almost definitely didn't have to
send a resume and "apply" in the normal sense of the word.

~~~
tptacek
This is _also_ bad for teams.

The premise of network hiring is that when one member of a strong team leaves,
they'll bring the best of the team with them. Hiring managers seem to
appreciate the aspect of this that means they can bring multiple good people
on at once, without appreciating the obvious implication staring them in the
face: when one of those people leaves THEIR team, they're going to strip a big
chunk of the team out with them.

Network hiring creates brittle cultures. It's probably the most popular
"alternative" to conventional hiring pipelines, and it's just as bad!

~~~
AtheistOfFail
Networking hiring works great if your company is good and you treat your
people well. On the flip side, if your culture is to burn people until they
exit, you'll find one person quitting and taking six along with them... and it
won't be the worst performers.

~~~
ambicapter
You don't have to be bad for a networking hire to leave. They just need to
find another, better opportunity.

~~~
user5994461
Correction: They need to find a _significantly_ better opportunity.

People don't change jobs for slightly better. It's too much risk and hassle.

Funfact: We're literally in a thread talking about how terrible are job
interviews.

~~~
tptacek
Funfact: we're talking about people who get to switch jobs without taking
interviews, because most companies have fast tracks for elite candidates.

~~~
user5994461
Funfact: We're in a thread talking about how terrible companies are at
assessing candidates... and you say that companies have special tracks for
elites candidates, even though they are not able to identify elites candidates
in the first place. :D

~~~
tptacek
Yep.

------
szx
"If you hire someone with a trendy background who’s good at traditional coding
interviews and they don’t work out, who could blame you? And no one’s going to
notice all the people you missed out on."

How is it that fear of false positives keeps coming up again and again in
discussions of hiring practices?

Considering at-will employment (is that the correct term?) is the default
here, you'd think it wouldn't be that big of a problem to get rid of an
underperforming employee. I guess it's more of a cultural/social issue but I
can't pretend to fully understand it.

~~~
AtheistOfFail
First, it's depressing to introduce someone on Monday and get them out the
door by Friday.

Second, people don't want to be known as "the lemon picker" within the
company.

~~~
szx
Yes, I understand that but obviously there's a trade-off here, the point being
that by avoiding firing people at all costs you're missing out on some great
developers.

Like I said, it's a cultural/social issue disproportionally tilting the cost
effectiveness scale.

------
mirkules
> Joel’s claim is basically that “great” developers won’t have that many jobs
> compared to “bad” developers because companies will try to keep “great”
> developers. Joel also posits that companies can recognize prospective
> “great” developers easily.

That's not what Joel's post said. Joel said that great developers don't _apply
for jobs_ much. A great developer could have as many jobs as an unqualified
one, but they rarely, if ever, need to apply to places to be offered a job
there. Think of any great dev - do you think they'd send their resume
someplace? No, they'd just leave, another company would get wind of it and
they'd be offered a job in a heartbeat.

~~~
throwaway13337
I've known great developers that are terrible networkers.

They are able to get jobs through the resume/interview avenue when they want
to leave but they still go through this channel. These developers are most
likely to be underpaid. Real gems for those hiring.

~~~
jwatte
Please send them my way!

------
heisenbit
In a developer lemon market developers are hired at the lowest possible cost
as their value can't be assessed in advance. Turning this thinking around in a
employer lemon market employers are selected by offered salary as that is the
only solid proof-able property that distinguishes them. Two strong diametrical
forces are here in play focusing the discussion on salary to the detriment of
considering the total package for both sides.

Lemon markets exist for one-time transactions between foreign parties. Public
records of companies and potential employees change this to a degree. A big
name company may be able to hire at lower cost as it is on record it is not a
total disaster. A public record can help to put a floor under the salary one
is being offered.

From a developer perspective one can

\- market skills in a way to decrease hiring risk (affecting offered min
salary)

\- market skills that are truly needed (affecting considered max salary)

\- research the company (allowing one to reduce demanded salary e.g. huge
solid growth etc.)

As always the power in negotiation is with the party that can afford to say
no.

------
kafkaesq
_" See? Joel Spolsky knows the secret to hiring Great Developers. Not only
that, he knows how bad things can go when you hire the complement of the set
of Great Developers, namely honkin' bad, can't-solve-a-brain-teaser about-
pirates-and-blindfolds and-poisoned-bottles-and-buried-treasure to-save-their-
life† Mediocre Developers. Therefore, you should buy consulting services
and/or products from Fog Creek. Because you know Fog Creek only hires Great
Developers."_

Was the trojan horse message behind Joel's now-infamous Great Developers meme,
which we are currently about midway through the second decade of. And that's
really all people should have read it as -- part sincere opinion; but part
pure and simple marketing shtick for Fog Creek.††

Yet it's taken on a life of it's own, as we know all too well by now -- with
no endpoint in sight.

† Such brain teasers -- and the ability to solve them right there, on the
spot, with strangers staring you, and your career hanging in the balance --
being, according to JS's unequivocal belief (until it finally became woefully
unfashionable), if not absolutely necessary, at least fantastically useful and
effective in telling Great Developers from Mediocre Ones.

†† A great, or at least an okay company, by all accounts (aside from this
single, unintentedly onerous piece of marketing shtick from the early 2000s).

------
gravypod
As a college student looking for a job, a lot of this is quite worrying. I
don't really know where to start as a junior developer and I have seen quite a
bit of this mentality that "we are looking for the best". Does anyone know
how, from our corner, filter out companies that will do crazy stuff like make
you barf up 30 sort algorithms?

And more importantly for my case, does anyone know where to look for companies
that are willing to work around a college student's schedule?

The cards seem to be stacked against us in this one.

~~~
shados
Its a candidate's markets. A few companies can afford to only hire top notch
candidates. You've heard of them, and that's why. If you only try to apply for
places you've heard of as being the best of the best, well, it will be harder
because everyone is doing the same.

There's hundreds, thousands of companies who aren't the best, and aren't
looking for the best either. Work there, get your experience up, jump around
every few years (so you can eventually get a feel as to WHY those companies
aren't the best), and you'll be good enough to go anywhere you want.

Or you can try to play the SV game, learn the 30 sort algorithms and learn how
to speak "Big SaaS Company" speak right after college and skip that.

I personally wasn't good enough for that out of college, so I did it the hard
way, and now I'm where I wanted to be all along. It took 10 years, but
::shrugs::, I made it.

~~~
gravypod
How do you get a list of the names we haven't head of?

~~~
AtheistOfFail
True story... I've seen a lot of small places that are so desperate because
noone wants to work for an insurance company or some other industry that needs
software but isn't a "software industry"

~~~
coredog64
If it's not the software industry, then you're working in a cost center, not a
profit center. That's not a fun position to be in.

~~~
AtheistOfFail
yes. But for a first job, it's better than being unemployment.

------
nhumrich
Joel's point is not neccasarily about "stickiness", just the need to apply.
Great developers form a network of people who know them. When they want to
switch jobs, they typically don't go " open on the market" and rather talk to
a friend in a specific place, do an interview for formalities sake, and get
hired. There was no "applying" or sending a resume to a hiring manager. Also,
often companies go to them, not the other way around. Joel's point is that
great developers don't need to put themselves on market at all in order to get
a job.

~~~
Terr_
> Great developers form a network of people who know them.

How do you know it isn't there other way around? That networking is crucial to
building a reputation as a "good developer"?

~~~
bostik
Engineers like to gossip, and most humans have a tendency to flock together
with like-minded folk.

Hence practically any engineer will be part of their organic network, whether
they realise it or not.

~~~
Terr_
Insofar as the generalization "Engineers like to gossip" goes, the difference
is they gossip _about problems_ , not their resume-bullet-point-achievements.

Plus, much of that gossip is going to be with co-workers, which doesn't do you
as much good when it comes to finding a job with people at another company
company.

~~~
morgante
> Plus, much of that gossip is going to be with co-workers, which doesn't do
> you as much good when it comes to finding a job with people at another
> company company.

Of course it does, because people don't work at the same company forever.

By far the biggest contributors to my network are former co-workers.

~~~
vonmoltke
> Of course it does, because people don't work at the same company forever.

You obviously haven't spent time in the defense industry.

~~~
morgante
No I haven't, but there's no need to be rude about it.

More importantly, I'm obviously talking about the average. On average,
developers will change jobs every few years.

~~~
vonmoltke
> No I haven't, but there's no need to be rude about it.

I didn't intend to be rude, though I did intend to be snippy.

> More importantly, I'm obviously talking about the average. On average,
> developers will change jobs every few years.

First off, I didn't think it was obvious you were talking about the average.
Generally when I see comments like that they are presented as some sort of
near-universal truth (which is why I reacted the way I did).

Second, I don't agree that developers change jobs every few years on average.
I only think that is true of a subset of developers that are overrepresented
on HN. My entire career so far has been in Dallas, and non-contract developers
who turn over jobs that fast are not typical here.

~~~
morgante
> First off, I didn't think it was obvious you were talking about the average.

I certainly don't think it's universal. After all, I too know some people who
have stayed in the same job for decades.

A useful principle for reading HN is the principal of charity.

> Second, I don't agree that developers change jobs every few years on
> average.

I couldn't find any hard numbers, but recruiters and HR people do tend to
agree that the tech sector has a shorter average tenure. You're definitely
right that this is more pronounced in the hubs though.

------
codingdave
"Great" developers may be that rare. But most coding jobs don't need "Great".
Most coding jobs are CRUD apps with some business logic. Toss in some UX for
flavor. "Good enough" will do just fine in most jobs.

~~~
maxsilver
This is my personal pet peeve. I've often applied for jobs at well known tech
companies who's technology is fairly simple (one company was a plain mid-sized
CRUD Rails app, another was three PhoneGap JS-frontend-heavy mobile apps +
JSON API backend, fairly mundane things like that)

And yet they still interview you like they're pretending to be SpaceX or NASA
or something. 5+ hours of programming brainteasers (which they swear are just
'simple programming exercises' that 'are just to give insight into process'
\-- but are actually brainteasers, and you are actually expected to solve on
site).

Which makes the inevitable "we like you, but have to pass on you for technical
merit" rejection sting pretty badly -- I have the technical capability to
handle these jobs, because I already do this same work every day. But I get
told my technical knowledge isn't strong enough to work on their apps, because
of stumbling on some of the latest trick questions.

And then, their managers write a blog post on Medium and complain about the
lack of tech talent, or how they are inundated with fake applicants who "can't
code FizzBuzz"

 _sigh_

Technical hiring is just totally screwed up, and no one seems remotely
interested in fixing it.

~~~
flukus
Everyone want to fix it, no one knows how to.

------
kelukelugames
A story on the bullet point about low pay.

One of the mottos painted on the company wall was "We don't want people here
just for the money." The CEO put it up because they couldn't pay a competitive
rate. The hiring manager insisted they paid well. A bunch of devs left
claiming they were paid near the lower end. For example, one dev received only
a $1k pay increase when she was promoted from SDE1 to SDE2.

How can perception be so different between CEO, managers, and developers?

~~~
user5994461
> How can perception be so different between CEO, managers, and developers?

It's not perception, it's marketing.

The interviewer cannot tell: "We pay under market. If you go interview at
almost any other company in town, you'll 20% more easily". People would just
not work there.

What happens instead is, they either lie straight to their face or oversell
the "culture".

In your example. The CEO going for "people don't work for the money" is
classic bullshit meaning they have low wages but it's a good place (even
though it is not). The manager saying they "pay well" is a straight lie.

People will believe it most of the time. They can keep employees around for a
while. They do what they are supposed to do: Run the company, whatever it
takes.

~~~
kelukelugames
I'm sorry user5994461. My company has an open culture. My manager would not
lie to me like that. /s

~~~
user5994461
And my manager wouldn't think of me as just a number in the company. /s

------
yawz
What it is that makes a developer great? They are expert at one technology?
Multiple technologies? Fast learners? Problem solvers? Not rockstars but great
team players?

I would argue that a lot of (if not most) companies won't even know how to
gauge long-time greatness.

~~~
intrasight
I've been working my way diligently through this very interesting and
pertinent thread. But you're the first, I think, to mention this elephant in
the room - we really have poor gauges for greatness in this profession. And
here's one reason. In many professions - doctors, lawyers, accountants, stock
brokers - you can measure success. Do most patients get better, did you win
the case, did you beat an audit, did you make money.

I tell my students that if they want to do something where they can be gauged
as individuals that they should not go into engineering unless you plan on
also getting an MBA and working for a big, stable company with a long track
record of nurturing talent.

------
CalChris
This reminds me of Joy's Law:

no matter who you are, most of the smartest people work for someone else

[https://en.wikipedia.org/wiki/Joy%27s_law_(management)](https://en.wikipedia.org/wiki/Joy%27s_law_\(management\))

------
anovikov
I strongly disagree with that. Best developers switch many jobs - that's how
they become great - by working on lots of different stuff and learning all the
time - there are very few full time positions where you can continuously learn
and actually do new things all the time and don't become a nuisance for your
co-workers. They also start their own startups, fail, and go to job market
again.

------
dunkelheit
One thing I didn't see mentioned. What if the team simply lacks interesting
work? If the team stamps out CRUD websites and the manager has somehow become
convinced that the team needs "great" developers, he or she will have trouble
hiring even if the pay is competitive.

~~~
rhizome
Compensate with pay, and "boring" means paying more than "competitive." If
it's just cranking stuff out like an assembly line, then maybe the developers
should receive a commission structure.

~~~
dunkelheit
Seems reasonable, but does anyone actually think like this? "Okay, we do
fairly boring stuff here, so we must compensate with pay to attract good
developers". Rather, the opposite rhetoric is prevalent: "Groundbreaking!
Disruptive! We need passionate developers! Prepare to take a pay cut in
exchange for a chance of changing the world."

~~~
mattkrause
Finance kinda does that. You're not curing cancer or anything, but you
certainly are getting paid.

------
asheikh
Where is the race equation in Joel's claim? I am a black and a great
developer. Many years ago, I worked in one of the top five tech companies in
North America. My second line manger called me 'a Slave' because I was working
harder than my team and contributing across team. I complained about the
incident, and left the company after there were no action from the top
management.

------
hibikir
I think the most important point here is that no place with more than a
handful of employees will be perfect for everyone they hire, and the bigger
the place, the bigger the internal environmental differences. I've worked at
places where there was an awesome manager building a wonderful culture
underneath, while another large team nearby had terrible management,
considered very substandard people to be their very best, and was a nightmare
to work for (and with). My idea of good people loved one team, and quit
quickly when working on the other. The manager in charge of both managers
never thought there was a difference, and thought both managers were great.

Managing one team is hard. Setting up an environment that is great for a
diverse set of people (whether we are measuring that by race and gender of
just by people with different values and ways of thinking) is even harder.
Many people in those positions don't spend anywhere near enough time trying to
make sure they are building the right thing and instead copy each other,
leading to what Dan describes.

None of this will change until we make breakthroughs into people management,
something that, sadly, only the largest companies have resources to really
look at, and the largest companies are often the most dysfunctional.

------
dkarapetyan
> Moishe Lettvin has a talk I really like, where he talks about a time when he
> was on a hiring committee and they rejected every candidate that came up,
> only to find that the “candidates” were actually anonymized versions of
> their own interviews!

Steve Yegge I think has a similar post but from a different angle and he calls
this problem the interview anti-loop. Depending on who ends up on your
interview panel you might get high or low marks across the board and it won't
be in any way correlated to your actual abilities.

Making good teams like Dan says is a hard problem mostly because recruiting is
a hard problem and letting anyone other than the team handle the process is
why things are broken. If you want to work with great people then you
personally have to be actively involved in recruiting great people by going to
conferences, going to meetups, writing blog posts like this one, etc. But that
sounds very time consuming and most companies don't think recruiting is
actually an engineer's job so they never properly budget for it in terms of
training and other resources.

------
anindha
By Joel's logic no good developers left Microsoft and decline of Microsoft
could be attributed to bad developers.

Neither of those is true.

Good developers leave companies but they apply selectively to companies and
find jobs quickly.

------
jbapple
If Dan is correct that companies often do not keep their best developers
happy, what might account for Joel believing the opposite?

~~~
spiralpolitik
While the developer might not be happy per say, the amount of crap that you
now have to go through in the interviewing process makes staying the least
worse option on the table.

~~~
stillworks
Couldn't agree more...

Interviewing of late is filled with randomness. One place I interviewed, the
Recruiter told me to expect coding exercise. The call starts, and I am handed
out a system design problem ! Never expected a positive outcome since I hadn't
prepared. Randomly, I got selected for the next round. This time around I
prepared for anything come what may. The call starts, I get asked a coding
question. I solve it in about 20 minutes, and the remaining 25 minutes we have
a good discussion about the company dev practices. Randomly, this time I am
not selected !

Another company I interviewed with last year but didn't make it but kept in
touch with the recruiter for re-applying after a 12 month cool-off period.
Come the time to re-apply, the good recruiter left and now the current ones
keep politely refusing my application.

Another interesting one wanted me to record a video of mine explaining what I
know about the company and why I would be a good fit and send that video to
them ! (this one is a mixed bag, I kinda liked the idea but didn't bother
eventually)

Another one had me fly out internationaly-all-expenses-paid after three Skype
rounds,on the day of flying back I left a courtesy email to the recruiter
thanking for the opportunity to interview and asking about possible turn-
around time for a feedback. Haven't heard back !

Overall I have begun to get the feeling that at I particularly am a Lemon (or
atleast the Potato no one is buying).

Was that a long comment ? Or maybe a rant.

~~~
ryandrake
No, you're not necessarily a lemon. It is true that the hiring process is a
complete random mess. Companies and candidates would probably be better off if
we all admitted from the start that it's a random lottery, and that you're
being chosen among the hundreds of other candidates essentially at random out
of a hat.

------
Annatar
_If it’s so easy to identify prospective “great” developers, why not try to
recruit them?_

Because they are not on the market, and they're very picky as to where and
most importantly, with _whom_ they will work. Does someone out there honestly
believe that a guy like Keith Wesolowski, Dan Price, Jerry Jelinek, or Jeff
Bonwick will just shop themselves on the open market? If so, it's time to do
some extensive research on the subject, because nothing could be further from
the truth.

Steve Jobs once put it like so: _A players hire A players; B players hire C
players; and C players hire D players. It doesn 't take long to get to Z
players. This trickle-down effect causes bozo explosions in companies._

And boy was he right; I've seen good companies and good, interesting jobs go
down the toilet so fast, my head is still spinning from it all, years later.

I know how that is first hand: I don't shop myself around on the open market,
people call me, and by people I mean people I have closely worked with in the
past, people which I know exactly what they're capable of, what they know,
what they don't know, and if I accept, the whole interview process is nothing
but an empty formality. It's truly eye opening just how much of a sham-theater
the entire inteview games are. The key takeaway is, if you're good, you'll
have a renomee, and you're unlikely to be on the open market - you come to
people and people come to you. You get the job long before any would be
competitors have even had a chance to apply ("we must satisfy human resources
policies"). Dan Luu's question is, by experience, an unlikely occurrence in
this particular industry.

------
coldcode
I liked the article but I wish this guy spent a little more time making the
articles readable. Wall to wall text at a small size is sort of hard to read.

~~~
mdpopescu
Yeah, I'm always using this extension -
[https://chrome.google.com/webstore/detail/just-
read/dgmanlpm...](https://chrome.google.com/webstore/detail/just-
read/dgmanlpmmkibanfdgjocnabmcaclkmod) \- on his site.

------
Eliezer
This article pleases the Market Economics Fairy, who rarely sees anyone
thinking top-to-bottom in supply-demand balances.

------
raverbashing
Well, first of all, companies do close, people do get tired of companies, so
"great" developers do move.

At some positions, the demand is lower than the offer

------
bbcbasic
Can someone explain his definition of great developer?

Is it just a competent developer who has effectively networked and marketed
themselves?

~~~
clifanatic
Based on 20 years of participation in software development forums like this
one, I'm pretty sure that 99% of developers definition of "great developer" is
"is me".

------
goldfishcaura
For me everything boils down to: as an engineer, how well aware are you of
your domain. If you are, then you know how to integrate tools and code
together to produce the next invention. I've written a post for engineers on
precisely that topic just last week: [https://my.caura.co/why-build-software-
in-house-not-f3c9bc72...](https://my.caura.co/why-build-software-in-house-
not-f3c9bc726b1)

------
issa
My pool for drawing personal conclusions about hiring is not deep, but in my
limited experience (both in hiring and being hired) there are two things that
seem to matter above all others:

1) How personably the candidate is. Do you want to work with this person? Does
he/she have basic social skills?

2) Do they have a coding-related passion project? It almost doesn't matter
what it is, as long as they have one.

------
sarahcr
I am one of these Great Devs. Joel is correct that i will probably only apply
to 4 jobs in my career. But the author is also correct and I am not sticky. I
have switched jobs several times over the past 10 years. Companies will try to
keep great people, but when you tell them you need a 40% raise, they will
pass. I think Joel and the author understand this and actually agree.

~~~
bbcbasic
The worst devs I've worked with are those that proclaimed themselves great.
Some could sling code well, others were hopeless but they all were toxic for
the team.

