code ninjaIn the desperate fight to recruit engineers, start-ups and major companies alike are trying to spruce up their job descriptions with titles like “Code Ninja” and “Rails Rockstar.” It turns out that, by and large, engineers aren’t fooled by this. If anything, they’re turned off by this language.

Cute things like Ninja make me think I’ll be working with idiots and hipsters. [Start-up Employee]

Personality is cool, but “ninja” is such an overused term that it decreases personality rather than adding it. [University of Washington Student]

I dislike “programmer” because it implies work consisting of only programming, as opposed to design and algorithmic aspects. “Code ninja” is a beautified form of “code monkey”, which is bad for the same reason as “programmer”. Titles like software developer are more general and more neutral. [Student]

The company shoudn’t force cool on its job descriptions. [UC Irvine Student]

Ninja / Rockstar / whatever just sounds immature. Have you ever heard someone outside of technology refer to themselves as a Ninja? [Anonymous]

Ninja and Expert are sometimes outside a new grad’s reach! So I hate it! [NC State Student]

I conducted a survey of 200+ software developers, asking them their thoughts on different titles / labels in job descriptions. Each person was asked to rate the following titles on a scale from 1 to 5, with 5 being the best.

The specific question was this: Suppose you see “we’re looking for a _____________”, do you like it or hate it (the title / job name)? 

  • Programmer
  • Software Engineer
  • “Ninja” (Code Ninja / Java Ninja / Ruby Ninja, etc)
  • “Expert” (Java Expert / Ruby Expert / C++ Expert / etc)
  • Software Developer

People were also asked for their gender, country (US, India, or “Other”), and profession (Professional vs. Student). Note that the last of these was added after about half the responses had been submitted, and not everyone chose to answer these questions.

So what happened?

75% of coders like the term Software Developer in a job description; only 25% like “ninja.”

Cool terms like “ninja” do not impress – anywhere.

In the above graph, I've simplified the data to just "love" and "hate." "Love" = 4 or 5 rating. "Hate" = 1 or 2. The main (purple) bars indicate the overall rating, with the colored lines indicating the rating for a specific subgroup (US, India, Women, Students, and Professionals).

Average scores reported on a scale from 1 to 5

Average scores reported on a scale from 1 to 5

Percentage of people reporting each of 5 scores, on a 5-point scale, across entire population.

Percentage of people reporting each of 5 scores, on a 5-point scale, across entire population. 1 = Hate It. 5 = This is the Term I Prefer.


Another way to look at this data is this: For every person who hates the term Software Developer, 11 people like it. For every person that likes Ninja, 2 people hate it.

Why are some titles liked more than others? 

The titles tell you something about the job itself.

  • Software Engineer / Software Developer: As the official title given at company, these terms are largely neutral and synonymous with each other. They’re not “flashy,” but you can’t really be turned off by them. It is what it is. Only 8 – 11% of people reported hating those terms, and in almost all of those cases, there was something wonky about their response (giving 1s to all or almost all of the choices, etc).
  • Software Developer is just slightly preferred over Software Engineer in India, but there’s little difference in the US. Software Engineer may have more of a “science-y / advanced” connotation to it, while Software Developer sounds more practical / real-world. The data here is really too close to tell much more than it doesn’t matter much.
  • Expert is preceded with an expert in something – java, rails, etc. If you’re looking so much for someone who’s a Java expert, it suggests that you might be one of those people who doesn’t understand that a good engineer can pick up a new language quickly. And if you don’t understand that, do you really respect engineers? Is your current team talented?
  • Programmer sounds like code monkey. Developers are advised not to call themselves programmers, and you shouldn’t call them that either.
  • Ninja is perhaps the most debatable term. Not surprisingly, it had the highest variance in responses compared with any of the other job titles. Some people love it; it’s the new hip term. For precisely that reason though, some people hate it. It’s too trendy, and it sounds like you’re trying to be cool. You’re the kid wearing the clothes that some magazine told you was “in style,” not realizing that everyone else is looking at you kind of funny. But hey, some people still think it’s cool.
How Gender, Profession and Country Matter

The good news is that every group reported the highest satisfaction with the terms Software Engineer and Software Developer. But why are some groups a little more comfortable with terms like ninja, expert, and programmer?

  • Women are statistically more likely to be turned off by job descriptions featuring competitive language (note: “competitive language” is not the same thing as “competitive jobs / careers”). And you don’t get much more competitive than terms like ninja and expert. In fact, here’s a great story: “In 2006, GNOME received almost two hundred GSoC applicants – all male. When GNOME advertised an identical program for women, but emphasizing the opportunities for mentorship and learning, they received over a hundred highly qualified female applicants for the three spots they were able to fund.”
  • Students and Professionals differ little, interestingly, with the exception of their feelings on ninja. The relative youth of students probably makes them more accepting of hip / trendy terms.
  • India is considerably more accepting than the US of the terms ninja and expert. I’m not an expert in Indian culture, but this might suggest a greater focus on competition. India also doesn’t like the term Software Engineer as much. Anyone who knows a bit more about India care to explain this?

So yes, country, gender, and profession matter – a bit – but generally, coders are in agreement. Programmer makes you look like you want a code monkey. Ninja is (too) trendy, and may also turn off many women (and some men) due to its “competitive” language. Expert may suffer from both the competitive issue and from the code monkey issue. But Software Developer and Software Engineer? Those are perfect in their neutrality.

So go ahead and jazz up your job post with ninja if you’d like, but don’t be surprised if you turn off women, more experienced people, and anyone who rolls their eyes at flashy or ultra-competitive terminology. Me? I’ll stick to calling people what they want to be called – a term no one can really hate: Software Developer.

Gayle Laakmann McDowell

Gayle Laakmann McDowell is the founder / CEO of CareerCup, and the author of Cracking the Coding Interview, Cracking the PM Interview, and The Google Resume. Gayle has worked as a software engineer for Microsoft, Apple and Google. She holds a bachelor's and master's degree from the University of Pennsylvania in Computer Science, and an MBA from the Wharton School. She currently resides in Palo Alto, CA.

More Posts - Website

Follow Me: