

Startups: Stop Trying To Hire Ninja-Rockstar Engineers  - vrikhter
http://onstartups.com/tabid/3339/bid/87890/Startups-Stop-Trying-To-Hire-Ninja-Rockstar-Engineers.aspx?source=hn

======
chime
What he should be saying is don't hire pompous pretend-to-know-it-alls. That
is something all of us can agree with. But if you've spent the better part of
the last two decades learning how to be a good developer and have applied your
skills across various technologies, projects, and industries, you deserve the
six-figure salary. Why? Because ten mediocre singers cannot sing as well as
Aretha Franklin.

Hire nice, competent, hard-working people with the requisite
experience/knowledge and pay them what they deserve. If the project needs
junior developers, hire junior developers. If it needs senior developers, then
hire senior developers. Don't expect junior developers without any guidance to
automatically turn into proficient veterans just because they've been doing it
for five years. They could be doing the sub-optimal thing for a decade and not
know it.

Stop making lists of who/what/why not to hire and just give the promising
candidates a chance to prove themselves before/during/after the interviewing
process. Also realize that if you make it a company policy to not hire anyone
who is "senior", you could be violating federal laws against age-
discrimination, depending on how senior is defined. It's no different than
saying "must be a former Boy Scout", which immediately disqualifies all
females and thus is discriminatory.

~~~
notatoad
Have you seen the job postings here on HN? They all use that exact language -
rock star or ninja or some other silly adjective. It sounds like they're
specifically looking for pompous know-it-alls. I think what he says is exactly
what he should be saying (and for the most part, exactly the same thing you're
saying).

------
SomeCallMeTim
Are they really talking about Ninja-Rockstar engineers, or "only" developers
at the 10x end of the Mythical Man Month spectrum?

Because you _can_ hire a junior engineer close to that end of the spectrum.
It's just harder to know whether they are really that good without seeing a
track record.

From the article:

>The rationale you'll typically hear is along the lines of "a great developer
is 10x as productive as a mediocre one." That might be true, but it is an
impractical startup hiring strategy.

So...they grant that "it might be true," but recommend that, instead of hiring
someone on the 10x end of the productivity spectrum, you should instead hire
ten "cheaper" developers? At the bargain of $70k/year each instead of an
expensive $107k per year for one of them?

Oh, and don't forget to throw in the cost of a more experienced lead to manage
those 10 junior programmers, because they won't manage themselves.

Someone isn't really thinking about the math here. Or they like to spend their
Series-A funding like it's going out of style.

Don't get me wrong; there's a place for junior programmers in a start-up,
after you've gotten enough 10x programmers. There are lots of programming
tasks that don't _need_ the 10x programmer and frankly are a waste of his or
her time.

But there are also a lot of tasks (depending on the start-up) that _require_ a
10x programmer (or better). Past a certain level of complexity, 1x programmers
will _never_ be able to solve a problem well. Even if you had ten of them. [1]

What people don't realize is that the 10x programmer isn't a rock star/ninja
-- as Joel said a while agao, you're not actually hiring the top 1%. [2] The
best developers all just have jobs and aren't looking most of the time.

[1] <http://www.joelonsoftware.com/articles/HighNotes.html>

[2] <http://www.joelonsoftware.com/items/2005/01/27.html>

~~~
mindcrime
_The best developers all just have jobs and aren't looking most of the time._

Sounds like another good reason to focus on hiring recent grads, career
changers, etc., to me. You just have to figure out a way to predict - better
than chance - which ones will become great developers. Whether or not that's
doable is, I suppose, an open question.

~~~
enko
I guess the question is whether startups, who are usually in intense
competition and working against the clock, have the time and energy spare to
lead people through that process. I wouldn't have thought so.

A good place for juniors to start would be in normal web shops, not high-
pressure startups.

Do you think Tesla Motors grabbed a few engineering grads and shop floor
assistants, chucked them in a room and hoped they'd "grow into" knowing how to
make an electric car? Of course not - for a startup like that, timely and
accurate execution is absolutely critical and they would have hired the best,
most experienced people they could get. I don't see why software startups are
any different.

~~~
tatsuke95
> _"I don't see why software startups are any different."_

You don't see how a photo-sharing app is different than starting an electric
car company?

That's a problem. I also think that's the point of the article: 99% of
startups don't need rockstar developers. They aren't doing earth shattering
engineering. Most startups need competence and nothing more. If they actually
hired on that basis, it would help the eco-system.

~~~
kragen
We're talking about _software_. If what you're doing is easy, you're doing it
wrong; automate it and shatter the earth under the competition that's still
doing it by hand. There are always opportunities for earth-shattering
engineering in software.

------
patio11
_The average starting salary for a senior Ruby developer has climbed to
$94,000 ($107,000 in Silicon Valley). Compare that with the average salary for
a junior Ruby developer, $70,000, ($80,000 in Silicone Valley)._

These numbers strike me as _wildly_ below current market rates in the Valley,
based on my discussions with people in it trying to hire. I'm willing to be
wrong on that.

~~~
dsolomon
Here in the DC area tech talent is cheap. You can get senior developers for
around $60K.

~~~
SomeCallMeTim
Seriously? Why wouldn't they move somewhere else then? They LIKE living in DC?

~~~
vbtemp
No, he's not serious. Actual salaries are double-to-triple what he's saying.

~~~
tocomment
Wow, where would you find triple? I've never heard of a developer making 180K
in DC.

~~~
doktrin
$180k+ isn't inconceivable, but it's certainly approaching a salary range
typically reserved for Architects and team leads (in my experience).

It's fully realistic for non-management senior engineers to earn up to $150k,
however.

~~~
rdl
We really should be talking about total compensation, not just cash salary.
$180-250k isn't unreasonable cash+%+bonus for a sales engineer or consultant
who puts in huge hours, or for a senior developer with bonus/stock/etc. I
think a lot of people at Google end up hitting $180-200k based on total
compensation once they're at the 5-10 year of experience tiers.

------
untog
I don't disagree with a lot that's being said here, but:

 _At that rate, you can give a junior developer a 10% raise every year for 3
years at the end of which you'd have an experienced senior employee_

This won't work, because of the "short-termism" that permeates through startup
culture. A great many companies have no intention of still being a startup in
three years time- they want to be acquired or be absolutely huge (at which
point that individual programmer means less). There is a huge (and perhaps
damaging) focus on early results, and in that environment waiting for a junior
to get to grips with stuff will be seen as a weakness.

~~~
mindcrime
Personally, I think "short-term'ism" is a disease that plagues business (if
not society as a whole) in America these days. I also think taking more a of a
long-term view can be an advantage on many levels, and I have often said that
- when we get to a point where we can hire employees - one thing we will do at
Fogbeam Labs is focus on hiring younger, less experienced folks and provide
training, education, and mentorship... and build a "promote from within"
culture where we aim for long-term relationships. Some sort of profit-sharing
plan would seem to be a good idea as well.

Then again, we have all sorts of radical "against the grain" ideas. Like, the
idea that you don't need to recruit at Stanford and MIT and Harvard to get
great people. We believe you can recruit at, say, NCCU[1], UNC-P[2], ECSU[3],
etc., - or even WTCC[4] - and find talented people who will not demand the
same salaries as the Ivy Leaguers, but will also be hungrier and have a
something to prove.

Time will tell...

[1]: <http://www.nccu.edu/>

[2]: <http://www.uncp.edu/>

[3]: <http://www.ecsu.edu/>

[4]: <http://www.waketech.edu>

(disclaimer: by saying "younger" I don't mean to say that actual age will be a
factor... it's just that less-experienced folks _tend_ to be younger by
nature. But we would hire a 65 year old who had just undergone some sort of
career retraining program, for example, if he/she was qualified.
Discriminating by age, color, religion, ethnicity, etc., isn't just illegal,
it's _bad business_. Why narrow down the pool of quality people you're working
with?)

~~~
codeonfire
It won't work. you won't do the promote from within step, or you will promote
one guy, or you won't pay enough money with the promotions. It will take your
employees 2-3 review cycles to learn what's up. At that point your (now
experienced) people will leave for places that pay more for experience.

~~~
SatvikBeri
What's with the cynicism here? I've worked at at least two companies with a
great train & promote from within culture, and heard of several more from my
friends.

~~~
codeonfire
It's not cynicism, it's just logic and my observation of how several tech
companies operate. It may seem great that a company would want to promote its
novices, but the fact that it operates with novices doing the work precludes
this. It's not economical to promote and pay more just for the sake of
promotion. All they need are novices so why pay senior wages? Turnover does
have some cost, so companies will either bait there employees into staying a
bit longer by promoting one or two people and letting everyone know that
person's new salary, or they will just not promote anyone. Either way, most
people are going to look elsewhere after 2-3 years of flat salaries.

~~~
mindcrime
OK, I don't know what other companies do (or will do, or claim to do), but
what I'm talking about, vis-a-vis the company I'm working on, is _not_ a
situation where we have "novices doing the work." We're definitely working on
hard problems that require smart, experienced people. All I'm talking about,
is having a mix of both very junior and very senior people, and then focus on
adding senior people by helping the n00bs advance to that level over time.

This may have veered away from what original article was proposing, so I may
be muddling the conversation here a bit.. but I definitely believe we can
build a company that has a strong "promote from within" culture, that provides
a very supporting environment that helps people grow, and provides a career
path for technical people that doesn't require them to move into management in
order to advance their careers.

 _It's not economical to promote and pay more just for the sake of promotion._

But you don't do it just for the sake of promotion... you do it to keep a
person's compensation in line with the value they create and to stay
competitive with the market. As people gain new knowledge and skills, and gain
experience, they become more valuable.

------
edwinnathaniel
Before the discussion goes too far, do keep in mind that the author of the
article runs a school/e-Learning company that teaches Web Development to its
students.

It is, definitely, in their best interest to have their graduates being hired
by popular startups.

The content of the article seems to argue with that goal in mind. Whether the
content is true or not, it is yet to be proven: I have not seen a modern
statistical data of every single argument in both the article and the
discussion here in HN.

Especially when it comes to "10x more productive engineer" since in our field,
we haven't done a good job measuring anything at all except some data of
failed software projects and how bad workers negatively influence the company
(just like any other sector...).

------
andrewjshults
As a side note to the article, it's interesting to contrast the author's RoR
school ( <http://flatironschool.com/> ) where the goal is to get people from
zero to junior level with that of Hacker School (
<https://www.hackerschool.com/> ) that wants to take people from average to
"ninja-rockstar" level (or at least a better engineer). I don't think that the
goal of having more junior level engineers out there is a bad one, but in
terms of what the market is currently looking for, I see the advantages of a
program like Hacker School in the social proof of being one of the "ninja-
rockstars."

I also personally agree with having one strong senior engineering being more
advantageous to an early stage startup than a handful of junior ones (but not
just from the programming side of things). A good senior engineer is easily
worth double the salary of a junior one if they can provide both overall
technical direction as well as general team direction and mentorship.
Otherwise, a team composed and lead by only junior level people can quickly
feel like the inmates are running the asylum for any one you're trying to
bring in (junior or senior). The examples given in the article are all of
places that have a strong, established tech team. If you're early stage and
don't have a strong foundation to build your tech team on top of, getting
three junior engineers for the price of one good senior one might not be the
deal you think it is.

------
enko
> By hiring junior engineers, and giving them the training and development
> they need to flourish

If you don't have battle-hardened, experienced, senior programmers around,
who's going to train them? Who's going to answer questions about design? Who's
going to come over to their desk and teach them how to test X?

Actually, I somehow think I know who the author wants to train all these
juniors:

> Avi is the Dean of The Flatiron School, an intensive program to learn Ruby
> on Rails in New York

------
trebor
I'm no ninja-rockstar! I'm a cybernetic Viking berzerker, battling each and
every bug and feature to the death. I might have scars from my many
encounters, but I won... eventually. My software is a well honed and polished,
though sometimes nicked, piece of work.

Seriously guys, ninjas were criminals! They were outlaws that killed mainly
via indirect confrontation, OCD-like planning, and typically poison. They
deserve no praise or idolization for that. Just like I wouldn't hire a
diplomat-rockstar programmer either...

~~~
pbiggar
What's wrong with diplomats?

------
doktrin
There are certainly some important take-aways in this article.

What certainly hit home was the reference to high turnover. In my experience,
attracting and _retaining_ (perceived) top 1% developers is no small feat.
It's damaging to a project when a "rockstar" developer builds out a product
set in her chosen (often bleeding edge) framework / language, and then departs
at the sign of another "fun" opportunity elsewhere. No one needs to sign an
oath of loyalty in blood or commit to a project for life, but fickle engineers
- no matter how talented - can be a net loss to a team.

Insofar as the salary requirements are concerned, the numbers are a little
off. Top developers in this area (DC) command north of $120k, with junior
developers starting at anywhere from $50-60. Regardless, however, I tend to
regard salary (within reason) as an appropriate investment.

Lastly, as he mentioned - not all teams are equipped to handle & mentor junior
engineers. This requires a formalized and _real_ commitment, which unless
executed properly - will result in un-productive junior hires. Like the
author, I believe that mentoring and training junior staff (and interns) is a
fully achievable goal, but one that requires planning and forethought.

~~~
dsolomon
Personnel retention is easy - just demonstrate on any level that the
contributions of the workforce is appreciated.

Since I'm in the DC area too, with clearance, the number you're throwing
around are a bit of a stretch. We've got junior developers in the high $30K
range and senior in the mid $60K range.

~~~
vbtemp
Since I'm in the DC area too, without clearance, the numbers _you're_ throwing
around are not realistic. Junior developers will start in the 50's-60's (with
BS), usually 70-80 with MS, and seniors will generally be 110+... In the
contractor sphere with clearances, it will be correspondingly higher.

I do know that some agencies tried to give peanut wages to certain fresh-out-
of-college students, but everyone I knew scoffed at it and found positions
that paid twice as much elsewhere.

~~~
dsolomon
10+ years of working in the DC area supporting the Columbia customer, McLean
customer and the Quantico customer for a variety of companies and still no one
paying close to the rates you're claiming. It obvious you can't distinguish
between the billing rate and a salary rate.

~~~
vbtemp
Ok, then enlighten me. Are you claiming that an average dev in your business
will make high 30's before tax?

~~~
dsolomon
Yes. We have some on sight, for a government agency, as part of a government
contract, for which we are the prime.

Additionally, we've taken people from help desk, put them on the server team,
then placed them doing host based security and paid them upper 40's (before
taxes).

Clearance level is TS.

------
shin_lao
True ninja-rockstar engineers are professionals that don't exhibit the traits
described.

The senior engineer described resembles more of the _diva_ who is actually
rarely that good, because he cares too much about his ego to question himself
and progress.

~~~
michaelt
Does "ninja-rockstar engineer" sound modest to you, like someone who doesn't
care about their ego?

~~~
SomeCallMeTim
Doesn't someone who can do 10x-20x the work of an average employee deserve a
bit of an ego boost from time to time?

And that's if the "average" employee can do the work at all.

I've pulled so many "average" developers' nether regions out of the fire when
they've gotten stuck that I've lost count. I don't care what term is used, but
it's nice when the term actually describes the discrepancy between my
performance and most developers.

Ninja-rockstar will do nicely, thank you. ;p

Seriously, though, MANY high-end developers in the start-up space are probably
on the 10x-20x end of the spectrum. At least at the successful start-ups.

I'm sure there are exceptions for when the start-up is more about pushing data
around in a mundane but novel way, and where the primary business value is NOT
technically challenging. But even in those cases when the company scales it
often has a problem, because the developers haven't done things optimally, and
once you're already having scaling issues it's really hard to rearchitect
everything to work better without messing up the existing site. YMMV.

------
lsc
hm. From what I've seen? senior salaries are rather higher than the article
mentions, and Jr. salaries are rather lower. (in Silicon Valley) - Junior
types are still having a hard time finding work at all, as far as I can tell.

That said, I think that the key is "what skills do you have?" If you are (or
have) someone good already, hiring on a apprentice can be a great thing. But
you need someone at the company that is good at what you are doing. That could
be you, and that could be an employee. But, for instance, _I_ am not going to
train up a new accountant. (or for that matter, a new webapp developer.)

------
modoc
Are we really STILL talking about those terms? I don't mind those terms
myself, because what I think everyone ACTUALLY means is they want a A++
player, someone who's deeply involved in the specific tech, a cut above your
average senior dev cube dweller. These are the best sort of people for
startups where your small size and large goals mean you can't afford any dead
weight. Who cares what term you're using?

~~~
slurgfest
'A player' is another one of those obnoxious, means-nothing words like 'ninja'
and 'rockstar'. In practice it means 'my kind of guy' - and someone
acculturated to the same self-promotion ideology - more than it means anything
about qualifications.

It's funny that EVERY company says it will be crippled unless it hires only
people who are far above average. Because if developer quality is even close
to normally distributed, about half of the actually employed population is
below average (let alone top 1%).

Big companies, of course, need people with years of deep specialization. So if
you aren't deemed to be "crushing it" in the top 1% and you don't have 10
years of experience in some extreme specialization - regardless of what you
can actually do - you are COMPLETELY useless to the industry and will save
your time if you just start mowing lawns and waiting tables.

~~~
modoc
Okay so what term(s) are acceptable to you?

I've worked at many large F500 companies, and trust me they can and do employ
a much larger group of average and below average people, including developers.
There are tons of people at F500s that if I brought them into a small startup,
would KILL the startup because they simply can't produce.

Not sure what you actual work experience is but there are absolutely a range
of skills/productivity/involvement. If you don't call them A/B/C or Ninjas or
whatever, you have to call them something. Having worked with a wide range of
folks, I have my preferences:)

------
jakejake
I think a good team has a balance of rock stars and junior devs. I don't find
it usually the case that a rock star will do 10x the work of a junior dev. In
fact they will often do less work - however the work they do is easily 10x or
100x smarter and better for the company long-term. Junior devs tend to work
very hard but also can cause a lot of havoc if a someone is not helping to
guide them. Many times in fact the work that junior devs do winds up being a
mess that the senior has to fix or re-do entirely. Junior devs can also suck
up a lot of time from the senior devs, so in fact they may at times be
reducing productivity. On the positive side the junior guys tend to bring a
lot of enthusiasm and fresh ideas. They keep the senior guys on their toes.
And they will grow into senior devs, hopefully giving you a few years of solid
work when they reach that point.

"rock star" status to me is somewhat based on age and experience. But in fact
some rock stars are young and some mediocre devs are older. I think it has to
do more with personality and motivation on the part of each individual.

------
jfb
Too, the whole puerile "ninja badass" nomenclature is a social signalling
device that will turn off many excellent hackers. Stop it immediately.

------
rdl
This article seems like an excellent example of "understand the biases of the
author to understand why he wrote what he did."

He runs a ruby on rails cram school and some kind of non-infrastructure
e-commerce site. From the first, he has an obvious incentive to talk up the
market for his graduating junior developers, both to increase demand for the
classes and to get them jobs when they graduate.

Designer Pages doesn't look like it has any particularly unique or difficult
technical challenges -- it's not Facebook scale (highly interconnected large
userbase), it's not super high availability, it's not computationally
intensive, etc. That's the kind of thing where a couple of senior developer+
founders plus some junior developers might be useful.

------
mattieuga
"Silicone" valley? Really?

------
sulife
Then how do you expect YC companies to write a job ad on HN???

------
vtry
Sure, and hire a bunch of people who don't know what they are doing.

Do remember that Google has hired away pretty much all the top engineers
already. You won't be able to get good people for cheap prices anymore.

