Developers, Webmasters, and Ninjas: What’s in a Job Title?
Is there a difference between a “software engineer” and a “software developer”? How many years of experience do you need to be “senior,” or a “team lead”? Do people still call themselves “webmasters”? Does anyone actually describe themselves as a “rockstar” or “ninja”?
If you’re hiring a developer, or on the job market yourself, understanding these differences can be important to your work. At Stack Overflow, we host the Developer Stories of hundreds of thousands of engineers, representing a cross-section of several decades of the software industry.
We on the Data Team took a look at the titles developers used to describe themselves, and are sharing some of the most notable discoveries we’ve made.
Common job titles
Let’s start simple. What were the most common job titles, over all time, from the Developer Stories in our database?
We can see, not surprisingly, that some of the most common self-described job titles include “software engineer/developer”, possibly preceded by “senior”. Together the above 12 titles make up 25.8%) of the CV items in our database.
We could go a step farther and come up with a Markov chain, showing common chains of consecutive words. Shown below are all pairs of words where each word appears in at least 1000 job titles, and where word X is followed by word Y at least 1/3 of the time.
One interesting distinction is between “developer” and “engineer”: while they’re generally synonyms, they’re easily distinguished by the kinds of words they’re paired with. We can see that “developer” is often preceded by specific technologies (“java”, “php”, “python”) or by stacks (“front-end”, “back-end”, “full-stack”). “Engineer” is preceded either by “software” (which in turn may be preceded by a level of seniority), or by a functional designation such as “quality assurance”, “test”” “devops” or “R&D”.
We can see other common pairings, such as “user interface/experience,” “team lead/leader”, or “program/product manager.” (Why isn’t my own job title, “data scientist,” in this plot? Because “data” was followed by “scientist/analyst/engineer” in similar proportions, not to mention “architect,” “warehouse,” and other such titles).
Despite the hype, only one in ten thousand resume items includes the word “ninja,” and only one in a hundred thousand is a “rock star.”
What do job titles show about experience?
How many years of experience do you need to be a “senior software engineer”, or a “team lead”? How much experience does the average “intern” or “assistant” have?
We can answer this by looking at the developer’s years of experience at the start of each job. Note that this isn’t measuring (or intended to measure) someone’s skill or expertise: simply how many years of work they’ve listed on a resume before a particular job. (Here we count multiple overlapping jobs as additive, so it’s possible for someone who has been in the industry for 5 years to have 6 or 7 years of experience).
First, we picked out 26 common terms that could suggest a level of experience, such as “junior”, “intermediate”, and “senior”. How many years of experience did each represent?
A few observations:
- Unsurprisingly, more than half of jobs with “trainee”, “junior”, or “internship” in the title had no previous work experience. This is to be expected, but useful to check!
- A typical amount of experience for a “mid/intermediate” developer is 1-3 years, for a senior developer about 4. This is useful knowledge for both developers and employers when interpreting these job titles.
- The median VP has almost four times as much experience as the median CEO. Some manual examination of the data confirmed this finding. Many CEOs (especially those who fill out Stack Overflow Developer Stories) are startup founders, whereas VPs often rose to that position within a company and have more experience in the industry. (This doesn’t necessarily imply that CEOs are unqualified — just that many take such a position early in a career).
In general (not just terms we expected to be seniority-related), what common words tended to have the most extreme (most or least) experience?
One surprise is that not all terms are related directly to seniority- for example, jobs with “DevOps” in the title tended to have around 4 years of prior experience, which makes it about as strong a signal as the word “Senior.” On the other hand, the median developer with “PHP” in their job title had only one year of experience, and the average “Android” developer had even less.
Words changing in frequency over time
The software industry has been changing over the last twenty years, and how developers describe themselves has been changing with it. What words in job titles have been getting more common or less common in the last twenty years?
We identified the words that showed the fastest growth and the most rapid decline.
Some observations:
- Being a “webmaster” is out, but being a “frontend”, “backend”, and “full-stack” web developer is in.
- Mobile technologies such as iOS and Android that entered the industry around 2007 quickly got their own job titles “created around” them (each now appears in about 3% of job titles).
- “Network admininstrator” is a less common title than it used to be, as are “systems engineer” and “systems administrator”, but “DevOps” has been increasing.
There’s a lot more that we can detect about changes in the developer ecosystem from Stack Overflow data, both from Developer Stories and from the Q&A site. Some future posts from the Data Team will look at the technologies people list on their resumes and how those have changed. If you want to help our experiments, fill out your Developer Story today.
20 Comments
We asked about titles on the 2016 Developer Survey. It looks like the results differ. Especially noticeable is the relative difference in “programmer” ranking. If I had to guess, people are more likely to put their actual title provided by the employer on their CV. I know I was a “Systems Engineer” according to my previous employer, but I prefered to call myself a programmer.
Pretty on point. I list “Software Developer / Systems Administrator Apprentice” because the actual job title is long and convoluted, but if I had to write a (formal) CV, I would certainly put that, as it’s more accurate.
What tools did you use for the graphs?
R and ggplot2 for most of the graphs (with theme_bw()), with ggraph for the Markov chain network.
I’ve been meaning to get into R for quite some time. I have heard great things. Is R something you can download or how does one get R?
R is an open source languaje for stadistics. like SPSS but free. https://www.r-project.org/
R is free and you can download it from their website (or a listed mirror): https://www.r-project.org/
How is it possible for “full” and “stack” to have such similar curves? Why don’t “stack” and “overflow” correlate? What does the abbreviation CEO mean? Cloud Executive Officer? With 2 years of experience, it cannot be Chief Executive Officer, right? Why does the graph for “president” end in 2015? It would be very interesting to see it around the time of Trump’s election. Questions over questions…
1. “Full-stack” is a common term for web developers that are responsible for both front-end (html/css) and back-end (server, db) parts of a website. Generally the two words are almost always used together in titles (people don’t usually put “stack overflow” in job titles).
2. CEO stands for chief executive officer, but among developers it’s a title very often used by startup founders who are near the beginning of their professional career.
3. All the graphs here end in 2015, not just president, and I can’t imagine people changed their job titles based on someone being elected
Is the number of users with Developer Stories really 200,000+? That seems like a high number.
SO have ~6.5 MILLION users. So that’s about 3% of all users on SO having a developer story
That’s still a lot; consider that if you have 500 reputation (A fairly measly amount), you’re in the top twentieth percentile of users, rep-wise. Anyway, comparing the number to the amount of visitors to Stack Overflow is not very useful or honest, in my opinion. Stack Overflow doesn’t have anywhere near that number of daily or even active users, just registered ones. I would guess that a million or fewer registered users visit/use the site each day. Fewer still who have crossed the vague threshold of “regular” users. If so, that would put the percentage at 20%, a far greater number in comparison.
A developer story is a really involved thing, and not something you would really want to have unless you had an active account with lots of answers/productive additions to the site to show off in relation to it. Who cares about a developer story of some random user with one question and no answers? There are no useful metrics to compare the story to, there.
I got in here for the ninjas. Me disappointed.
duh… they are hidden! https://uploads.disquscdn.com/images/8b686eedb614b2ef0ead6037f5adec936c9ef26d593edac1d1da31d1d6d567f4.jpg
Coders have no titles. They are just coders. It is useless to compare coders and managers in terms of titles. In management there is a straight forward career path and titles. Like in army. But a coder is always a coder. For salary in management the sky is a limit. You get CEO you get millions, some gets hundreds of millions. And a coder will never earn more than some limit, whatever experience a coder has. 200k-300k maximum if a coder is lucky to be one of very few. And a title is always a coder.
– Who’s that guy?
– Ah, he’s a coder.
– And that one?
– Oh, that one is CEO.
I’m working on japan.
Seriously I believe that the title of my work should be a “ninja”, not a “software developer”.
I am sure there is some analysis about the reputation in Stack Overflow, Software engineering, code-review, code-golf and the Developer Story (either by experience and titles). Could someone point it where it is? If not I would be interested in seeing any relationship.
Some observations:
Job titles often change while some is in a job. For example they may start the job as a software eng and be renamed to senior software eng, but list the complete time as senior software eng. (Very like with jn as well)
Someone who was a network technician but retrained to be a programmer is much more likely to be in your dataset then someone who went from being a programmer 20 years ago to being a network technician now.
Been ceo, coder, developer, software engineer, architect, project manager, director, planner, owner, operator,…ceo is best.
This is a great post! Have you made your R code available for learning purposes?