For every job post calling for a “superstar” programmer, there’s a ranting blog post about how ridiculous it is.
Programmers are not like gurus because no one can possibly know that everything.
Programmers are not like rockstars because they don’t get gratuitous sex and drugs.
Programmers are not like ninjas because they don’t have throwing stars.
Supposedly, if you call a programmer any of these things, they will get lazy and arrogant. I’m pretty sure plenty of programmers were lazy and arrogant well before HR folk came up with those titles.
They became necessary because the system for hiring developers is fundamentally broken.
Those terms are the only existing way to succinctly express that you want a highly skilled, very productive person who is more focused on getting things done than process and more focused on doing quality work than playing politics.
The current hiring system for programmers emphasizes all the wrong things while ignoring all the important things.
- We emphasize age through years of experience, neither of which have a strong correlation with skill and productivity, and not even much to do with maturity.
- We emphasize the ability to condense your achievements and work ethic in business-speak riddled resumes, which has nothing to do with technical ability and douse any personality whatsoever.
- We emphasize the ability to communicate using generic cover letters that spout more business-speak and feel-good messages sprinkled with obligatory specifics grabbed off the company website. Is this the sort of templated slop you want in your software as well?
- We emphasize the ability to describe a design over actually implementing one. We emphasize being able to fit a problem into a neat little pattern over writing an algorithm.
- We emphasize getting along with QA, management, executives, marketing, etc over being able to get the job done. As in, don’t rock the boat.
The people who are successful in this environment are rarely the great developers.
So what do you do if you need a good developer? Maybe you don’t even understand WHY the system is broken. But you know that the people who are passing through the traditional hiring barriers are just NOT cutting it.
So you slap a “Rails Rockstar” or “Silverlight Guru” title on your job posting. Most likely the mediocre programmers will be scared off (“that sounds hard!”) and some great programmers will perk up (“that sounds interesting!”).
For those disgruntled among you: yes, it is an HR marketing gimmick. Because they don’t have any other way to get the good ones.
——————————————————————-
If you think there must be a better way, you’re right. Code Anthem is a way for employers to easily find great developers. If that sounds interesting, subscribe by RSS or by email, or follow us to stay tuned.


Maybe they need a ninja to throw the rock-star.
The whole thing sounds like the Peopleware chapter on “Hiring a Juggler”. See him juggle.
But I also don’t think it is unreasonable to have someone who works well with QA, Marketing, etc. I’ve done so – how do you know what you are going to write – what the goal is? Make it up? Extrapolate from a half-sentence “vision”? Or go around, learn what everyone does, what their names are and how we can help each other.
This is often as a contractor where I just go in, don’t play politics, and things just start working – but not just my assigned task. I often end up being the interface between the departments or people. The whole point of any product is to make someone’s life easier, but I shouldn’t limit that idea to the assigned project. Helping someone with their computer for 5 minutes might get you a lot of credit and sympathy when you need them to do something. Make the coffee. Help moving boxes. And I’ve often said “OK, I’m doing this but is there anything else I can do as well as long as I’m here”. Even the stodgy companies – sometimes especially the stodgy companies – have all kinds of needs that the corporate system can’t meet. I’m here to help. In any way I can. And I can program.
We emphasize the ability to describe a design over actually implementing one. We emphasize being able to fit a problem into a neat little pattern over writing an algorithm.
I disagree with the negative connotation of that point for I think, that a programmer isn’t likely to write good algorithms, when he can’t even get a good grasp of the bigger picture around it. On that subject I would recommend reading this blog post on the “The Reinvigorated Programmer” including it’s follow-ups (Common bugs and why exercises matter, , Testing is not a substitute for thinking, Writing correct code, part 1: invariants, Writing correct code, part 2: bound functions , Writing correct code, part 3: preconditions and postconditions). And if you have some time, try to get through the comments on these as well… Really good stuff.
Oh and if you’re reading the initial post at the quotation of the book “Programming Perls” where it reads “Try it.” – don’t just jump into it right away
that’s what I and many others did – continuing reading after finishing the algorithm just to see that the author intended a challange with some simple but mean rules
But it was a refreshing exercise however.
Cheers
My blog post was indeed long and ranting, and it was probably two essays that were mashed together, Paranoid Android style. I didn’t expect that, 3 days later, it’d be two clicks away from the Hacker News front page.
I really admire the work that you’re doing and the motivation of your project, and I wish you the best of luck. If you can fix the hiring process in software, you can add a lot of value and, if you even capture a small fraction of the value thus added, become very successful.
My problem with the term “rock star” is the attitude that it reflects in society as a whole. It encourages a mentality of looking like a high performer rather than actually being one, which often involves making others more productive and making everyone succeed. Rockstarism is about our society’s fetishism of transient individual success rather than long-term value creation. It’s the general attitude– not that a few people resort to using this terminology in job ads– that I take issue with.
Finding good programmers is very difficult. First, you have to be well-located. You need to be in a city with a good university of serious size, or you won’t even get started. Second, tools and languages are big. Paul Graham writes of the “Python Paradox”. Jane Street Capital has a lot of incredibly talented people because it uses Ocaml; JSC practically *is* the New York ML job market. The traditional excuse for defaulting to Java is that it’s standard and has a lot of libraries; but now that Clojure and Scala exist, if you want to use Java and be able to get good programmers, you should probably use one of those languages.
To be frank, I would be turned off by a job ad asking for a “rock star”. It shows a lack of subtlety. You don’t show that you’re an elite company by screaming it; you show this by producing great products.
@tz I think you’re right, of course, that a programmer is more valuable at a company if he can communicate effectively with marketing, management, etc. The trouble is that in the existing hiring funnel, only people with the best resumes, best cover letters and best behavior interviews make it through to the “technical portion”. Even worse, many companies skip the “technical portion” or don’t know how to do an effectiveness technical assessment.
@Michael I see that you just opened shop on your blog – congrats!
Candidates are generally looking at a sea of similar job post titles and don’t have time to focus on all of them. If a company wants to get their attention subtle it is not but it gets the job done.
Another benefit would be that if they’re looking for a “superstar” then I’d expect their pay to match that skill expectation. Nothing like spending time on a potential job that requires X years of experience, only to discover that they don’t value that position much at all.
As far your complaints against a transient, superficial rockstar attitude, I can dig it. Personally, though, I think I would tend to work harder and better if I get to be called a “Java Rockstar” rather than a “Applications Engineer IV”.
Ha, I like the idea of being thought of as a web developer rockstar
But maybe that just plays in to my secret fantasies about being an actual indie rocker (in my vision, I’m the cute bass player/backup vocalist… never mind that I can’t actually play guitar outside of a video game).
I do think that people have to have team skills, communication skills, is able to funnel their ambitions towards the business’s purpose/profit, etc… someone who is simply a “rockstar developer” without having those things is a highly productive/efficient worker who ends up costing a company money (especially when they eventually leave and no one knows how to pick up where they left off). That said, the fundamentals of being a rockstar developer: the challenge, the drive, the emphasis of productivity and quality (over a 9-to-5 put-in-your-time mentality)… this is all near and dear to my own heart.
Wow, that comment was poorly edited. Fail on my part. Let’s try that again:
Ha, I like the idea of being thought of as a web developer rockstar
But maybe that just plays in to my secret fantasies about being an actual indie rocker (in my vision, I’m the cute bass player/backup vocalist… never mind that I can’t actually play guitar outside of a video game).
I do think that people have to have team skills, communication skills, and be able to funnel their ambitions towards the business’s purpose/profit, etc… someone who is simply a “rockstar developer” without having those things is a highly productive/efficient worker who ends up costing a company money (especially when they eventually leave and no one knows how to pick up where they left off). That said, the fundamentals of being a rockstar developer that you’ve mentioned: the challenge, the drive, the emphasis on productivity and quality (over a 9-to-5 put-in-your-time mentality)… this is all near and dear to my own heart.
Might I suggest replacing Guru, Rockstar, or Ninja with Hacker? Not only would it be an interesting sight to be had on any typical job board, but the mayhem caused in HR is bound to be priceless
.
One of the best job postings I’ve seen in recent times was one posted on Palantir.net (http://palantir.net/blog/wanted-virtuosos-join-palantir-team).
Instead of “Rock Star,” they chose “Virtuoso” as a metaphor. Why? Because a virtuoso has to have both tremendous individual skill and the ability to play expertly with others. A virtuoso is also not required to know everything (no guru illusion). Nor is there only one virtuoso in a symphony. In the ideal symphony, everyone is a virtuoso.
[...] Gurus, Rockstars and Ninjas, Oh my! What’s more interesting is how much even programmers invest in these “ranks.” It’s clear that there’s real demand for more nuanced ranking within software engineering. [...]
Members of rock bands – including those who rise to “star” status generally do auditions. Does any musician hire on the basis of keywords on an resume?
[...] I'm not talking about being that kind of rock star but about Rock Band (which we'll talk about later). In retrospect, I don't know what I was [...]