

Programmer distillation - autotravis
http://rachelbythebay.com/w/2013/01/22/distill/

======
MaxGabriel
I agree with the author, but the petroleum analogy was extended way too far
and muddles the issues. Here are some specific topics that the umbrella of the
analogy covers that could have been addressed:

a) How important is 'cultural fit'? Should Paypal have not hired an otherwise
talented engineer because they called basketball 'hoops'? [1]

b) Hiring Generalists vs Specialists

c) How to evaluate candidates

As the questions get more nuanced, the answers can be far more compelling. For
example, you might come away agreeing with this article but not realize you're
subconsciously using the inaccurate heuristic Y to look for programmers. But
if the answer to c) is that work sample tests are the best way to evaluate
candidates [2], it's much harder to ignore.

[1] [http://blakemasters.com/post/21437840885/peter-thiels-
cs183-...](http://blakemasters.com/post/21437840885/peter-thiels-
cs183-startup-class-5-notes-essay)

[2] <http://news.ycombinator.com/item?id=4613543>

edited for formatting

------
freework
These kinds of posts make me happy and sad at the same time. Happy because I
agree with every word with every fiber in my body. Sad because literally 100%
of the industry as far as I can tell is exactly as how she explains in the
article. I can't even remember how many phone interviews I've done over the
past 8 months... Despite the fact that I have over 50,000 lines of code on my
github account and 5 years experience, I'm told I'm "not what we're looking
for".

~~~
martinced
I'm sure you'll eventually find out. That's the crazy thing: this kind of non-
sense shows how we're basically nowhere when it comes to matching talent with
companies.

The headhunter business, especially in IT, is already a huge one. But it's
really just in its infancy. In a better world there would be sites doing the
matching, not unlike online dating.

I don't worry for you because I know there are several good fits for you and
eventually you'll find one.

But still, it really sucks. At the same time it shows there's just so much yet
to be done...

------
3825
We'd need to decouple work and wages. Someone told me there is no such thing
as working illegally in the US. There is only illegally getting paid. I am
sure we can find work for everyone but how much is the compensation?

Perhaps we ought to guarantee a certain amount of money to everyone whether
they be Warren Buffet or Joe Schmucks. Then, we'd get rid of the minimum wage.

I had a similar conversation with a coworker this morning. What job would have
the most people applying for if no job paid any money? In other words, if
salary and job were decoupled, what result would we see?

~~~
goggles99
Wow, did you not even think for a second about the consequences?

 _We'd need to decouple work and wages_

Well what incentive would people have to go to 11 years of college then to
become a surgeon? What incentive would a start-up founder have to work 80 hour
weeks for years on end if there was no chance to get rich off of it?

 _What job would have the most people applying for if no job paid any money?
In other words, if salary and job were decoupled, what result would we see?_

The job which required the least amount of effort. The more difficult or time
consuming the job, the less applicants there would be.

~~~
HeyLaughingBoy
No, it's an interesting idea. People would do what they _wanted_ to do as
opposed to what they _had_ to do in order to earn a living. I can look to my
wife as an example. She's a horse trainer. She makes very little money (pretty
small market for clients to start with), gets injured frequently: sometimes
badly, but absolutely loves the work.

There are many of us out there who really like what we do and would do it even
if we weren't paid, as long as we still had a source of income

------
JumpCrisscross
" _Our rejected candidate ... represent[s] diesel fuel. It's also capable of
moving stuff around. Just look at all of the Mercedes and VWs and pickup
trucks, semis, trains, and everything else out there. It doesn't "burn" quite
the same way, but from 30,000 feet it all looks the same_ "

There are two solutions to the question of culture: one at 30 000 feet and one
at the microeconomic level. At the portfolio level yes, diversification is
good. At the company level, however, focus tends to produce better results.
Diesel won't burn in a petrol car.

The only thing that can be empirically agreed upon regarding effective company
cultures is that having one matters (more than which one you have) - this is
another way of saying having a set of correlated values. Ideally, an economy
(or portfolio) would contain a diversity of cultural heterogeneity, ranging
from prone-to-blind-spots monocultures to attention-deficit giants.

That said, it is good to continuously question the efficacy of measures at
measuring the intended characteristics and what constitute that set of
characteristics.

------
gergles
I've been trying to make this exact point to my current company as we try to
hire operations people.

I really liked the refinery analogy, and think it will come in handy. Thanks
for sharing your thoughts on it.

------
sneak
At this point, you should probably just cut Google in on part of your book
revenue. :D

~~~
rachelbythebay
Not all of my posts are about them. I'd say most of them probably aren't these
days. This one certainly wasn't. This one was inspired by a story which made
it onto reddit or HN (can't remember which) about how North Dakota now looks
bright at night from space due to petrochemical flares. That got me to learn
about flaring, and the whole distillation tower concept and so forth. Before I
learned about that, I had no idea crude oil could be turned into so many
different things. That in turn got me thinking about "using all of the
buffalo" - everyone's probably good _somewhere_...

Meanwhile, HN has these YC company job postings which can be completely
ridiculous, and it's impossible to discuss them to call them out on their
insanity.

If I write a post about something and it makes you think about a certain
company, that may say more about your impression of that company than anything
else. See also: <http://rachelbythebay.com/w/2012/03/03/corp/>

~~~
sneak
Oh, I had just assumed that you meant either Google's focus on academic
credentials or their down-the-rabbit-hole programmer interviews by "testing
for attribute Y", considering all of your other thinly-veiled "maaaan, google
is so fucked up now" posts.

I guess my reading of your posts is tinted by my mental classification of you:
"great ex-google writer and programmer who had too much common sense to keep
working there".

------
PeterisP
The whole article is written about how the author wishes productivity to be,
but doesn't go into analysis on how the world actualy works, and why.

These are completely unrelated things.

Wishful thinking won't make every wannabe programmer able to create every
product. For a real life example, google for the articles on people failing
fizzbuzz-test when applying for programming jobs. The distillation is used to
separate "non-programming sheep from programming goats".

~~~
Proleps
I don't think the original author means you should hire people without any
related knowledge. But if a company is looking for a JEE programmer they could
probably hire a programmer with another background as well.

------
fleitz
It really depends on what stage the company is at. Unless you're Facebook /
Google / Microsoft you're better off with a a bunch of full stack programmers
than a bunch of specialists.

Even at FB/GOOG/MSFT the specialists only really work well on established
product lines, and not skunkworks type projects. The cost of communication
overhead is simply to high for specialists to work well for most companies.

Also, you can usually rent a specialist for the few days you actually need
them to tune up your DB server, etc.

~~~
MartinCron
_Unless you're Facebook / Google / Microsoft you're better off with a a bunch
of full stack programmers than a bunch of specialists_

Sometimes when I read job listings for "backend dev" or "frontend dev" I start
to thi I am the only full stack guy out there. Thanks for helping me feel less
alone.

~~~
contingencies
Ditto. But moving further and further from frontend these days... can't
remember the last HTML I wrote. More time on HA clustering, continuous
integration, build systems, multi-provider cloud management infrastructure,
emerging kernel features, network-device-agnostic network connectivity
rulesets... blah.

~~~
MartinCron
I spent a few years detached from the backend before reestablishing myself as
full stack.

Also, the more I think about it, the more I think that CI, build systems, and
infrastructure are necessary and important facets of being a full stack
programmer.

Emerging kernel features? Probably not so much :)

~~~
contingencies
Depends on the complexity/size/requirements of your CI system/infrastructure.
I am mostly interested in the kernel features for LXC/virt: see
<https://github.com/globalcitizen/lxc-gentoo> .. damn handy for rapid and
efficient virtualization of complex infrastructures on limited hardware.

------
jacques_chester
The only universal answer for "generalist or specialist?" is that there is no
universal answer.

Sometimes you want a generalist. Sometimes a specialist. Sometimes you want
adaptability, sometimes adaptation. Sometimes coverage, sometimes convergence.
Sometimes generality, sometimes optimality.

As for analogies ... I prefer the pin factory, myself.

~~~
Proleps
I think most companies actually need more generalists (especially for web and
mobile). Lots of companies switch between different technology stacks every
couple of years. Sometimes you don't even have choice e.g., when a new phone
OS becomes popular.

This is different when you are looking for someone to work on one task for a
short while. But if you are looking for long term employees you should look
for people who are good at adapting to new technologies and have good basic
programming skills.

~~~
jacques_chester
Really, it depends. For every small startup that needs a good full stack
generalist to rush to different fires, there's a lot of medium and large
companies that need a <whatever> guru to come and tune their production
system.

Horses for courses.

------
martinced
Is the whole full stack generalist / specialist dichotomy a correct one?

I'm bootstrapping and I can do a lot by myself: setting up Linux from scratch,
installing & configuring the DB, the proxies, the webapp server, the firewall,
write administration scripts, set up the SSH tunnels, do the coding, do the
HTML+CSS... Full stack "generalist" way. (Heck, I can even build the server
myself if needed).

But at the same time I'm definitely a "specialist" in some fields. For example
I've been holding my SJCP (now Oracle) Java cert since the last century and
I've been coding in Java since more than 10 years and I know some Java
frameworks inside out.

Sure I'm not a DBA nor a Unix sysadmin specialist but I'm both a generalist in
that I can still do it if needed and yet I'm a specialist in certain
programming domains.

I mean: aren't all generalists still specialists in some particular domain?

Maybe too that HN is representative in that a lot of the entrepreneurs in IT
will tend to be "full stack"?

As a side note, sometimes it sucks to be "full stack" because people ask you
to do things you'd rather not do, because you're the one in the company
(startup) knowing that area the best. It doesn't make you very good at it, but
by knowing it more than the next guys, you get to do it.

As a second side note, when working for bigger structure, I've noticed that
the DBA, for example, or the Unix sysadmin, do really like it when they
realize they're talking with someone who understands what they're doing. Heck,
I've helped Unix sysadmin troubleshoot Java webapp server issues because they
weren't that familiar with Java ; )

~~~
MartinCron
_Is the whole full stack generalist / specialist dichotomy a correct one?_

Maybe it's not a dichotomy, and more of a spectrum.

Also, there's the idea of a "T-shaped person" who is broad in many areas and
goes really deep in one. I would take A T-shaped person over an I shaped
person, all things being equal.

