Startups: Stop Trying To Hire Ninja-Rockstar Engineers

About This Blog

This site is for  entrepreneurs.  A full RSS feed to the articles is available.  Please subscribe so we know you're out there.  If you need more convincing, learn more about the site.

Community

Google+

And, you can find me on Google+

Connect on Twitter

Get Articles By Email

Your email:

Google

Blog Navigator

Navigate By : 
[Article Index]

Questions about startups?

If you have questions about startups, you can find me and a bunch of other startup fanatics on the free Q&A website:

Answers.OnStartups.com

Subscribe to Updates

 

30,000+ subscribers can't all be wrong.  Subscribe to the OnStartups.com RSS feed.

Follow me on LinkedIn

OnStartups

Current Articles | RSS Feed RSS Feed

Startups: Stop Trying To Hire Ninja-Rockstar Engineers

 

This is a guest post by Avi Flombaum. Avi is the Dean of The Flatiron School, an intensive program to learn Ruby on Rails in New York. He was formerly the co-founder and CTO at Designer Pages. You can follow him at @aviflombaum or @flatironschool.

Hiring technical talent is often cited as one of the most difficult parts of scaling a startup. Great companies are built by great teams so naturally, when it comes to technical talent, companies are competing harder than ever to entice the best of the best. 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.

While companies fight tooth and nail over engineers with MIT or Stanford degrees with years of experience, as CTO of designer pages, my best hires were consistently entry-level developers that I developed on the job. Some companies, like Zendesk and GeneralThings have already realized this and are working with schools like Dev Bootcamp in San Francisco, The Flatiron School in New York (of which I'm a co-founder) and Code Academy in Chicago to hire their newly minted web development graduates. Aside from the fact that they're significantly easier to attract, there are tremendous benefits to the company.ninja dev small

1. Cost- Starting salaries for senior developers have skyrocketed in the past few years. 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). 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 who's been with you that long and is still costing less than a new senior hire.
2. Attitude- Anyone that gets courted the way a senior engineer does today is at risk of developing a sense of entitlement (to put it lightly). When I hired 'rockstars' at Designer Pages, the requests became increasingly ludicrous. Senior engineers had four-day weeks, required conference budgets, and refused to adhere to the language and technology standards the company had established. They always knew best and felt that we were lucky to have them. Junior devs on the other hand, are hungry. They want to prove themselves and are eager to learn. And assuming you're fostering the right culture, are excited to be part of your team.
3. Turnover- High turnover is the easiest way to kill a product. In The Mythical Man-Month, Frederick Brooks discusses problems inherent in a system designed by a succession of leaders, each with his own style and ideas: "I will contend that conceptual integrity is the most important consideration in system design. It is better to have a system omit certain anomalous features and improvements, but to reflect one set of design ideas, than to have one that contains many good but independent and uncoordinated ideas."
Great companies need great engineers who want to solve complex problems. But the majority of work being done on a typical web application does not require a team full of PhD's with 10 years experience, making it no surprise that senior engineers quickly get bored and seek out other opportunities. By hiring junior developers and ensuring they're getting the continual training and development that they need, you can ensure that they stay engaged and derive as much personal and professional value out of your company as your company derives from them.
4. Culture- A prerequisite for being a great programmer is a love of learning. Unfortunately, many senior engineers come with a lot of baggage; they want to work on specific problems, in specific languages, and have little patience for the inexperienced n00b. By hiring junior engineers, and giving them the training and development they need to flourish, not only can you align everyone's technical styles under a cohesive vision, you can more easily create a culture wherein it is expected for the senior employees to mentor and coach new hires, just as they were coached when they first started.
To be clear, this isn't true in every case. I happen to know plenty of incredibly humble, loyal, and generous (though not cheap), senior engineers. And if you're trying to build a better search engine, or solve the world's most complex data problems, you probably do need to recruit from the top 1%. Most companies though just need great leaders who can help their teams think through the difficult questions, and team members who are wiling to work together to implement creative solutions. The bottom line is that for most products, seeking out rockstar senior engineers is like hiring Picasso to paint your apartment.
So what's the best way to put this plan into action? Here are some things I found to be effective when developing junior engineers at Designer Pages:
1 - Deploy on Day One- Making engineers deploy code on their first day is the single best way to get them feeling great about their ability to acclimate and impact change in your organization. Companies like Etsy actually have a hard-and-fast rule that all engineers should deploy to production on day one.
2 - Assign Mentors- Lots of companies say they mentor their employees. I've found that unless this is systematized, senior employees get too busy to dedicate the necessary amount of time. Make sure every new hire has a mentor to pair with basically all-day for at least the first two weeks.
3 - Foster Productivity Early- The best way to sharpen a programmers skills is to write code. Junior engineers shouldn't be trying to learn legacy systems when they first arrive- let them work in as fresh a codebase as possible so they can get cranking right away.
4 - Invest in Training- Nothing will give you a better ROI on your time than making sure your employees are well trained. Create a learning plan for each hire for the first 3-6 months, complete with recommended reading, that applies to the projects they are working on.
5 - Be patient. :)
At the end of the day, when you hire junior developers, you are investing in people. You are creating a culture of growth, promotion, and learning that will pay for itself multiple times over. And it will also help you recruit the Ninja-Rockstars when you actually need them ;).
What do you think?  What's been your experience in terms of bringing on junior members to the team vs. the almost mythical ninja-rockstar engineers?

Posted by Dharmesh Shah on Mon, Aug 06, 2012

COMMENTS

Well, then, how about "skydiving ninja rockstars"? http://s95.photobucket.com/albums/l154/truetechnohawk/?action=view&current=SkydivingNinjaRockstarsa.jpg

posted on Monday, August 06, 2012 at 2:24 PM by Akira Hirai


Hiring the Ninja-Rockstar probably happens because management doesn't have general technical knowledge and believe a Rockstar is the missing key to producing a shipping product. Another example of bad hiring is having a list of required experience, for example 5 years of "fill in the blank" experience in the following technologies. Both approaches to hiring are not good. 
 
The best approach is hire for cultural fit and growth potential and your startup will be much better in the long run. Investing in people shows that you believe in their potential and most will rise to the expectation.

posted on Monday, August 06, 2012 at 2:28 PM by TJGodel


In my previous role (one of the fastest growing tech companies in Scotland), I was tasked with building a SQL Server development team. 
 
Finding SQL Server developers is actually incredibly difficult, most are either admins or .Net developers and believe me I interview HUNDREDS of them. 
 
In the end, I built the team using two fantastic Edinburgh university computer science graduates, 1 expert contractor and a convert from Postgres. 
 
The grads were eager, hungry, keen to build their CV, keen to learn, keen to code and excited above all else. 
 
The code they produced was exceptional, their contribution was always above expectations and I wouldn't hesitate to work with them again. 
 
One thing I would say is that these graduates weren't run of the mill - we took particular care to find people who were immersed in computer science, loved the subject, had their own personal projects, but also showed ability to learn the business value of their developments and develop to the needs of the business rather than exclusively to artistic comp sci lab styles. 
 
I would suggest it's just as hard to find these graduates as it is to find grade A experienced engineers, but when you do find them they're worth their weight in gold.

posted on Monday, August 06, 2012 at 2:28 PM by David Hilditch


This is bullshit. 
 
Sure, it doesn't make sense to hire ninja developer, which doesn't want to learn, has an ego greater than solar system and who requires to be pleased all kind of ways. 
 
However, smart and experienced software engineer will beat the hell out of junior programmer.  
 
And 10x factor is VERY real. Actually, in the long term, it could be easily 100x factor, when you will find that the whole project written by junior guy is a mess.

posted on Monday, August 06, 2012 at 3:18 PM by Victor Ronin


I think I get the jist of this article, in that good talent is critical to success, but you don't have to buy the fully mature talent - right? For startups, I recommend partnering with good talent - that's a recipie for success.

posted on Monday, August 06, 2012 at 3:44 PM by Andrew


We found at <a href="http://www.opensourceconnections.com>OpenSource Connections that it was easier to grow our own talent and then rent out the ninjas. The ninjas offered the secret sauce that our homegrown talent learned and then adapted to make their own. The homegrown talent also did things our way, which, while probably not perfect, was ingrained in our culture. You can teach anyone Rails. You can't teach just anyone intelligence, tenacity, curiosity, and ingenuity.

posted on Monday, August 06, 2012 at 3:55 PM by Jason Hull


Great article but you are thinking too pragmatically. The real reason most startups are gaga over top notch talent has more to do with fundraising (having the right team on paper) than it does with productivity or results. It is one of those accepted truisms at the moment, that having A players increases odds of successful ROI for the company and for the investors.

posted on Monday, August 06, 2012 at 4:34 PM by Neal Cabage


The title of the story hooked me because I agree that seeking out "the best of the best" can, indeed, lead you to the Prima Donna Syndrome, where you're ultimately paying a premium for a headache employee. But then... it felt that this post morphed into a bit of an ageist bias -- I started thinking "senior" was a code for "older" rather than possessing greater experience -- and that the author flat-out isn't in favor of grey hair and wrinkles. Harsh perhaps, but that's how it came across to me! 
 
I believe balance is key. I'm in a top management role now, but I remember when I was a n00b toiler in the tech industry -- and frankly how little I really KNEW! Sure, it'd be overkill to have "nothing but PhD's" on the team -- but still, I'm a firm believer in mixing talent levels, and giving EVERYONE the chance to be a brand-new learner. Even old dogs crave learning new tricks. A "senior" engineer worth his/her salt will be utterly keen on continual learning -- otherwise they're useless. There's nothing more lame than a 40 year old who's behind the times -- and nothing cooler than a 50 year old who rigorously dedicates time each WEEK to learning what's new and cutting-edge in his/her field. 
 
Just a thought. Balance is everything. Hire both -- and don't allow ANY prima donnas.

posted on Monday, August 06, 2012 at 4:42 PM by Laura Higgins


$107K in Silicon Valley? Try $125K. Starting, not ending. 
 
Being a rockstar, though, tends to be in the eye of the beholder. So many companies delude themselves into thinking that certain employees are rockstars when, really, they are nothing special.

posted on Monday, August 06, 2012 at 4:46 PM by


I'm certainly surprised by the ninja-rockstar mentality. In the past I've held the title of Principal Software Engineer, though at the moment I need to update my skill set. I'm sure I'd be an attractive candidate for a startup—knowing how to think like a Principal Engineer is a valuable asset!—even though I would have a learning curve. But ultimately the learning curve disqualifies me as a rockstar, and that's the end of that.

posted on Monday, August 06, 2012 at 7:07 PM by Mike Sasso


And therein lies the fallacy. It is more about having recently worked at Google or Yahoo, than how much experience you have. And it is more about slinging Ruby and Objective C code than it is about being a good engineer that understands design patterns.  
 
Indeed, it is NOT about hiring the best *engineer*. It is about hiring pedigree and credentials and buzzwords ... for purposes of raising funding. Suppose you're talking to money guys who don't know engineering ... how do they know the difference without those credentials right? Its the only quality signals they have to go by.  
 
on the plus side, this has a net positive effect on the overall engineering ecosystem. It sets high pay expectations and absorbs more of the upper end talent pool. Its a much healthier philosophy than we saw 7-8 years ago when the hot idea at the time was offshoring everything. ;-)

posted on Monday, August 06, 2012 at 7:18 PM by Neal


Nope. VCs don't care if you have ex-Googlers or ex-Yahoo! on your team. They might care if your CEO is an ex-Google VP but they could care less about the rank-and-file engineers. Ex-Google and ex-Yahoo! people end up at the same companies because people hire their friends, regardless of merit. 
 
Lots of VPs are lazy so they tend to settle on one engineer as their "brain". As far as they are concerned, that guy is always right, is a rockstar, is the "go to" guy, no matter what he does. "Oh," we say, "yes, John's a dope but he's Bob's brain." Meaning that Bob the VP has picked John to do all his thinking for him. Then, Bob runs around telling everybody how his company only hires rockstars but what he really means is that he thinks that John is a rockstar who everybody else who knows John thinks is a dope. But, of course, outside the company, the media and everybody else totally eats it up. 
 
Lots of startups secretly hire the cheapest, too, then publicly claim that they hire rockstars. Or grow rockstars. 
 
That's the art of PR.

posted on Tuesday, August 07, 2012 at 9:25 AM by


Our issue was finding the right guy/girl to lead the charge -- a person's whose technology vision and capability matched our business vision of what we wanted to present to the market. We wanted a senior tech who drank the Kood-Aid -- and not someone who thought that he or she were "entitled" to be treated or paid like a rock star. Once we found that person, everything else was just matching needs to skills.  
 
One final thought: If you need your engineering team to have resume value to enhance your likelihood of financing, then perhaps your offering isn't sufficiently compelling.

posted on Tuesday, August 07, 2012 at 9:59 AM by Andrew Ellis


Give 10 rockstar engineers to a bad manager and it doesn't matter how much better the 10 are. 
 
So where are the calls for rockstar managers? 

posted on Tuesday, August 07, 2012 at 10:16 AM by Undertoad


Nothing says "bubble" quite like people who call themselves "rockstar", "ninja" "guru" or "genius." 
 
This sort of nonsense always happens during the run up to a meltdown. 
 
I'd prefer to hire someone who use to think they were a rockstar, has been humbled by events, but retains and grows their skill set to do good work in a rational economic atmosphere. 
 
If you require catering (on a table or to your ego) please go work elsewhere.

posted on Tuesday, August 07, 2012 at 10:20 AM by Not A Coder


This a completely ageist article. Besides giving what is likely illegal hiring advise, you are dead wrong. 
 
You first hire for talent. Period. 
 
This talent may come with experience in your domain, or it may not. But talent is talent. 
 
In MANY cases, you also need to add experience to the search criteria. Else, how is this "mentoring" supposed to happen? who's going to "mentor" when you are building a team? 
 
It seems more to me that Avi has a bone to pick, being a young, and I assume smart guy. But has never had the experience and pleasure to work with really experienced and really senior devs, that can backup up their cost and experience with 10x the productivity of others, and that can usually elevate a team. 
 
It's your lack of experience Avi. In your case, the people that doubted your experience, to make you have this point of view.. were likely right... :-P

posted on Tuesday, August 07, 2012 at 11:23 AM by Javier Frias


Hmm. The dean of a school/company that creates junior developers writes post for companies to hire junior developers. 
 
Sometimes the bias just writes itself.

posted on Tuesday, August 07, 2012 at 11:26 AM by the tech hustler


@Victor Ronin: just LOL...

posted on Tuesday, August 07, 2012 at 11:33 AM by Junior


I totally agree. Not only are these terms ridiculous but they are also not telling. What does it mean to be a "Rockstar"? Who knows! Should I apply? 
 
Many people also do not want to be Ninja-pirates but happy members of the team instead! 
 
It's also why in our hiring efforts we put more emphasize on the character than the mad interwebz skillz, see: http://www.rankpanel.com/jobs

posted on Tuesday, August 07, 2012 at 11:49 AM by Alex


I totally agree. Not only are these terms ridiculous but they are also not telling. What does it mean to be a "Rockstar"? Who knows! Should I apply? 
 
Many people also do not want to be Ninja-pirates but happy members of the team instead! 
 
It's also why in our hiring efforts we put more emphasize on the character than the mad interwebz skillz, see: http://www.rankpanel.com/jobs

posted on Tuesday, August 07, 2012 at 12:15 PM by Alex


Hold on a second... whats wrong with an engineer acting entitled? As far as I'm concerned its a long overdue reaction to grubby managers trying to avoid providing quality compensation. want me to work bizarro hours? then yes, i require 4 day weeks or flex fridays. Oh, i have to work them on site? then yes, i require a $900 chair to sit in while i do that work. You need me to give up some of my personal life for your mediocre product? then yes, i'd like a beer here and there.  
 
Don't like it? you could also pay me a better salary, but thats CLEARLY out of the question, so deal with it. 
 
Remember kids, when a manager gets on a comment board and says how he doesn't like it when engineers act "Entitled," remind yourself of the 3% unemployment in the field, of the amount of money made per dev vs. other employees, and exactly how much of your work directly influences and generates income for your company.  
 
Then promptly realize what their true concern is: their bottom line. He/She realizes that outsourcing won't work, or that replacing you really IS that difficult, and of course they'd be in a losing position if they even discussed that, so they just want you to not act so "Entitled". 
 
Stop being a Beta wimp engineer and start realizing how valuable you really are. Then charge accordingly. theres nothing wrong with having astronomical demands, its just business, and the other side of the table would love to get the exact opposite from you. 
 

posted on Tuesday, August 07, 2012 at 1:07 PM by dave


Where does one partner with talent like this? Craigslist? That's what I want to know.

posted on Tuesday, August 07, 2012 at 2:09 PM by kanon


You are basically saying that the Ninja developers aren't easily exploitable, because they value their own knowledge, talent, and time. They also gain a lot of power over time in the company as a result of their knowledge and that is exactly what the none technical founder doesn't want. 
 
Power, choice, decisions, convenient work hours and other perks are only reserved for business people. Scientists, hackers, ninjas, and rock stars should be confined to their desks and cubicles and do as they are told while the business people mingle in startup parties and get all the credits for the works. 
 
So let's hire the native junior who yet doesn't know the bitter realities of the tech industry.  
 
I also criticize the talented developers for not taking charge and starting their own companies. It is easier for the hackers to learn business than for the business person to learn technology. It is time for the hackers and Ninjas to become Hackerpreneurs and Ninjapreneurs and refuse to offer their talents to those who are trying to exploit them.

posted on Tuesday, August 07, 2012 at 2:25 PM by Rastin Mehr


Sounds to me like you want to be the only "rock star" at the company. First rule in real life: always hire someone smarter than you. Make sure the person you hire is better at what they do than you are. At times that will mean listening to this smarter person and taking their advice. I find as a manager and CTO I need to listen to people I trust and I just don't really trust someone with no experience. Let me say in a startup can you really afford to have people learning on the job? Get your money, make your product and sell, sell, sell. Then you can build out with new inexperienced talent...

posted on Tuesday, August 07, 2012 at 6:22 PM by Steve


I think what you say makes tons of sense if you are established 100 person companies but when you have 6 months to launch a product you need really smart and experienced coders. Taking one of them away from heir focus for 2 weeks to mentor? That's nuts. 
 
Sorry but this is advice for the enterprise.

posted on Tuesday, August 07, 2012 at 8:16 PM by Arlo Gilbert


i have read this article but how some one will develop in travel & hotel industry by using ninja techniques.

posted on Wednesday, August 08, 2012 at 7:05 AM by ram chandra dash


Very true!! 
The giants like google..FB have deep pockets to poach your ninjas when ever they want... 
The flip side to it is: The leadership at the helm of the start up should have be absolute clear about what they want from the junior developer

posted on Wednesday, August 08, 2012 at 3:24 PM by Prasanna


I agree with most of the points tackled in this article. However, in order to have a broader perspective on this recruiting issue, I would highly recommend reading this other article : http://www.consultingcafe.com/articles/building-effective-teams

posted on Thursday, August 09, 2012 at 9:55 AM by Julia Williams


Unfortunately, it's a terrible long term strategy to focus on hiring junior devs. Experience is a key factor in dealing with problems, especially in production. A team heavy with junior people won't have the depth to handle or even approach certain problems. It almost sounds like you're advocating hiring an inexperienced team and expecting them to perform the same as an experienced one, because painting a room is just painting a room, right?

posted on Saturday, August 11, 2012 at 2:58 PM by Chris Henry


Article is full of BS. you need to hire smarter people than you to be successful or else you are going down the drain. You need to manage and retain the talented people. From the article it is clear that you lack leadership and take a shortcut route. be careful you may fail. watchout. change your attitude.

posted on Saturday, August 11, 2012 at 9:04 PM by Startup Ninja


Wait, so a few years ago it was smart to hire the best people possible and then pay them what they're worth. 
 
Now it's better business to hire people that aren't very good and hope you can train them?

posted on Sunday, August 12, 2012 at 12:21 PM by Tyler Hurst


After many years hiring developers I find experienced developers so much more productive than juniors that I decided to find a way to work with them.  
The way I found is to hire small teams, two or three programmers working on their own and guide them with my own project managers under very strict guidelines.

posted on Monday, August 13, 2012 at 12:03 PM by Matías O'Keefe


I think it is not good for hiring a technician. Most of the companies have a best team for the talented structure. Every company is competitive to each other. So they want to create best apartment for the customer. It is good achieve for the consumer. Thanks for super review. 
apartment buy and sale

posted on Thursday, August 16, 2012 at 1:59 AM by Cecylia randy


Hate to break it to you, but you did not hire 10x engineers. Real 10x engineers do not share the traits you mentioned. Instead, they are actively mentoring an organization, leading the way for junior and less senior people, removing obstacles and so on.

posted on Friday, August 17, 2012 at 10:11 AM by Martin Wawrusch


Dean of The Flatiron School, an intensive program to learn Ruby on Rails in New York. He was formerly the co-founder and CTO at Designer Pages: Vested conflict of interest, if you don't mind me mixing a little metaphor.

posted on Saturday, August 18, 2012 at 5:39 AM by Ernie Cordell


Found a little oddity when reading this piece. At first you bemoan ninja devs that required/requested "conference budgets," but then spoke towards the importance of "investing in training" for the junior dev. 
 
I'm solidly behind supporting professional development at all levels. Even ninja devs can grow and get better. So I guess I don't understand the difference, why you felt the need to call one out versus the other? 
 
I've also known other people who have used "personal training budgets" as a negotiation item/option during the hiring process... again, I don't see this as odd or even a "ridiculous request," as you put it.

posted on Monday, August 20, 2012 at 1:29 PM by Matt Velic


i would say those junior developers have the enthusiasm and pure spirit(not familiar with ugly truth of tech world politics) which helps to get the work done from them pretty easy...

posted on Tuesday, August 21, 2012 at 3:43 PM by suraj


Totally agree with the author. In fact, in my company for the first few years I only hired fresh graduates. Reason being: they're affordable (or in other words, I was cheap :)), and they're eager to learn (no extra baggage). Worked perfectly well for us.

posted on Thursday, August 23, 2012 at 6:08 AM by Gaurav Mantri


Your articles are very helpful. They act as a power of inspiration for my early days in entrepreneurship. Find the article on Employee Satisfaction, work Relationships and what really works Its quite interesting. 
 

posted on Wednesday, August 29, 2012 at 12:47 PM by Vishu


Unless you are pre-IPO Facebook you are always facing tradeoffs. Any company has to some degree or another: 
 
* limited cash 
* limited appeal to experienced candidates 
* limited appeal to ultra talented candidates (of course, some candidates are both ultra talented and experienced) 
* limited access to a large talent pool due to geographic location 
* limited time to engage in the search 
* opportunity cost for not making a hire 
* even more opportunity cost for making a bad hire 
 
Each company will be in a somewhat different position and rationally make different choices, just like each person in NYC has somewhat different real estate preferences. 
 
There is no one right answer - junior devs are great for some companies and terrible for others. It would be interesting to hear comments on what sorts of companies should (and do) hire junior devs and what sorts of companies shouldn't. 

posted on Wednesday, August 29, 2012 at 2:11 PM by David Fischer


Perhaps you should consider stop hiring assholes.

posted on Thursday, August 30, 2012 at 4:30 AM by Ariel


Comments have been closed for this article.