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.<p>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.<p>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.
<i>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).</i><p>These numbers strike me as <i>wildly</i> 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.
Are they really talking about Ninja-Rockstar engineers, or "only" developers at the 10x end of the Mythical Man Month spectrum?<p>Because you <i>can</i> 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.<p>From the article:<p>>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.<p>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?<p>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.<p>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.<p>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 <i>need</i> the 10x programmer and frankly are a waste of his or her time.<p>But there are also a lot of tasks (depending on the start-up) that <i>require</i> a 10x programmer (or better). Past a certain level of complexity, 1x programmers will <i>never</i> be able to solve a problem well. Even if you had ten of them. [1]<p>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.<p>[1] <a href="http://www.joelonsoftware.com/articles/HighNotes.html" rel="nofollow">http://www.joelonsoftware.com/articles/HighNotes.html</a><p>[2] <a href="http://www.joelonsoftware.com/items/2005/01/27.html" rel="nofollow">http://www.joelonsoftware.com/items/2005/01/27.html</a>
I don't disagree with a lot that's being said here, but:<p><i>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</i><p>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.
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.<p>It is, definitely, in their best interest to have their graduates being hired by popular startups.<p>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.<p>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...).
As a side note to the article, it's interesting to contrast the author's RoR school ( <a href="http://flatironschool.com/" rel="nofollow">http://flatironschool.com/</a> ) where the goal is to get people from zero to junior level with that of Hacker School ( <a href="https://www.hackerschool.com/" rel="nofollow">https://www.hackerschool.com/</a> ) 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."<p>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.
> By hiring junior engineers, and giving them the training and development they need to flourish<p>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?<p>Actually, I somehow think I know who the author wants to train all these juniors:<p>> Avi is the Dean of The Flatiron School, an intensive program to learn Ruby on Rails in New York
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.<p>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...
There are certainly some important take-aways in this article.<p>What certainly hit home was the reference to high turnover. In my experience, attracting and <i>retaining</i> (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.<p>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.<p>Lastly, as he mentioned - not all teams are equipped to handle & mentor junior engineers. This requires a formalized and <i>real</i> 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.
True ninja-rockstar engineers are professionals that don't exhibit the traits described.<p>The senior engineer described resembles more of the <i>diva</i> who is actually rarely that good, because he cares too much about his ego to question himself and progress.
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?
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.<p>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>I</i> am not going to train up a new accountant. (or for that matter, a new webapp developer.)
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.<p>"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.
This article seems like an excellent example of "understand the biases of the author to understand why he wrote what he did."<p>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.<p>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.
Sure, and hire a bunch of people who don't know what they are doing.<p>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.