Junior Developer: The Title You Should (Almost) Never Accept
I’ve had sort of a hate-hate relationship throughout my career with the title of junior developer. Wait, that’s too nuanced. Remove the “sort of” — I’ve just had a hate-hate relationship with the term.
This isn’t a job title you should accept, unless you have your back against the wall. A prospective employer might say to you, “congratulations, we’re offering you a junior developer position!” Treat this equivalently to “congratulations, we’re offering you a position at $10,000 below market value!” or “congratulations, you’re on your own for health insurance!”
If you’re hard-up, take it. But keep your job search going full throttle, and keep your current “junior developer” role off your resume. If you don’t have mouths to feed and rent to pay, take a pass.
Why? Well, I’ll get to that.
Junior Developer Title on My Mind
Last week, unprovoked, I tweeted out my opinion of this title. I don’t need to rehash that tweet here, since I’ve already explained my stance here. But I got a thoughtful and reasonable question in response.
Can I ask what your reasoning is? In the past we’ve taken on people with no development experience & called them “junior”, & the day they get to drop that word from their title seemed to me to be a positive celebration of their progress in learning. But open to new perspectives.
— Russell Dunphy (@rsslldnphy) April 1, 2018
I didn’t respond to this because I’m terrible at Twitter. In fact, I didn’t actually notice it for days and then I got busy. I thought to respond at that point, but then I realized that I’m enough of a blabbermouth that I’d adjudicate myself much better in a blog post of 1,000+ words than I would in a tweet of 280 characters or fewer.
Then, coincidentally enough, someone mentioned me in another tweet (that I also didn’t notice for a while).
Got some responses. Need more! RT for reach. #DevDiscuss
— Jose Gonzalez (@JoseGonz321) April 4, 2018
“How do you reward junior devs that are kicking ass?”
My initial, off-the-cuff thought? Stop calling them “junior devs,” for God’s sake. But I didn’t get the sense that was appropriate for the conversation.
Instead, I think it’s appropriate here, in a post telling you not to accept this title.
The Intended Audience Here
Notice to whom I’m directing this advice. In the last sentence of the last section, I told you not to accept junior developer as a title. Same thing in the title of the blog post.
I didn’t say not to offer that title. I’m not writing this post as a treatise on the nuance of which titles companies should offer. In fact, I don’t think much of the construct of job titles anyway. Internally, they’re mostly sound and fury, existing to salve egos and make the HR pay matrix easier to compute. Externally, though, they matter, and that’s why I’m addressing people who have not yet knuckled under and accepted a poison pill title like “junior developer.”
Now, it may seem that my tweet was aimed at companies — “junior developer shouldn’t be a thing.” But, actually, that was my shorthand (and, somewhat opaque, if I’m being honest) way of saying that it shouldn’t be a thing because everyone should stop taking it. If an org floated a junior developer role to the assorted sites, sharks, and recruiters, and nobody applied, the titular problem would soon sort itself out.
No applicants for bad titles, no more bad titles. So stop accepting this title, and it will stop being a thing.
I’m Hiring an Incompetent Software Developer — Any Takers?
Let’s do a thought exercise. I’ve pretty well lost track of what salaried software developers make these days, but I’ll assume that, for the most part, it’s going to be decently under $150K per year. But don’t worry, I’ve got a job for you.
I’m looking for a full or short stack ninja that tests first, asks questions later, agiles to the max, and whatever manically enthusiastic things will get your attention in a job blurb. I don’t like people to work more than 40 hours per week, I don’t have any ping pong tables, offering instead good health insurance, dignity, and autonomy in your work. And I’ll offer you $150K per year even if you made $85K per year at your last job. Sound good?
Well, there is one catch, and I’m pretty firm on this point.
The official job title is “Incompetent Software Developer.” That’s what it will say in your offer letter and on the placard adorning the door to your corner office. It’ll say that on your business cards as well. And we have a pretty strict social media policy, so you’ll also have to updated your LinkedIn, Facebook, and Twitter titles all to read “Your Name Here, Incompetent Software Developer at DaedTech.”
Do you take this job?
That’s not a rhetorical question, by the way. An incremental $65K per year is no joke — that’s a TON of money. Some people might say you can’t put a price tag on dignity. Others might say, “I sure can, and that price is $65K.” I wouldn’t judge either way.
The Job Title as a Negative-Value “Perk”
In a CIO role that I once had, years ago, I had to revamp the org chart for my group, as I described here. I picked the titles that I thought would make my people most competitive on the open market because I wanted good things for them in their careers.
The owner of the company had an objection at the time that infuriated me. He worried that giving them good job titles would make it easier for them to work elsewhere and wondered if we shouldn’t sandbag them a little. Make them “coders” instead of “software engineers” or throw in a “junior” at the lowest level.
I subscribe to Richard Branson’s wisdom related to this matter (which I think post-dated the conversation anyway). “Train people well enough so they can leave, treat them well enough so they don’t want to.” You keep people by partnering with them and making them feel valued, not by sandbagging them. When you sandbag them, you hold them hostage.
If I call you incompetent software developer, publicly, and overpay you, I’m slapping golden handcuffs on you. If I call you “junior developer” and offer you a job when most others won’t, I’m doing a milder, subtler, more socially acceptable version of the same.
Job Titles Matter More to Employees Between Jobs than During Them
The job title, in spite of being a construct whose value I fundamentally question, is sociologically fascinating for an armchair dilettante like myself. Within a company, job titles mostly matter procedurally. They tie to pay bands and the org chart, which means that they’re basically trailing indicators of your status. They don’t confer anything useful that your offer letter, HR file, and the organizational chart don’t convey. Mostly, they help with vanity considerations, like whether you’re more important than the “senior” down the hall or less important than the “principal” with a corner cube.
But then, when you go to interview somewhere else, they suddenly matter in a very economically tangible way. The loose title consensus across the broad spectrum of companies (and, quite often, the question “how much did you make at your last job”) is how your new company places you in its pecking order. If you were “senior developer” there, you should probably be something like that here.
This results in some weird dynamics with titles. For instance, take companies that get cute and give people titles like “software rockstar.” You’ll probably see a little steam come out of the ears of HR and recruiters as they talk to you, trying to figure out the appropriate pay band.
But take something less cute. Take something like “junior software developer.” They know just where to put you — on the reject pile before they bother with a phone screen.
You think otherwise? “Junior” is a synonym for “probationary” and for “we don’t think you’re up to this job, but we’ll take a flier that you might prove us wrong.” How do you think that’s going to play when you’re applying for other jobs while sporting that title?
They’d rather hire someone with no experience, because at least that’s an unknown. Hiring another company’s “junior developer” means hiring someone that another company knows about and doesn’t believe in.
Don’t Limit Your Options If You Can Avoid It
In the beginning of the post, I said that I wasn’t going to try talking companies out of making this play. Why would I? I’m not a fan of it, ethically, but it’s a rational realpolitik play. They’re taking a gamble on you at the entry level, so they have the leverage and the natural incentive to handcuff you in response. It’s little different than tuition claw-backs and overreaching non-competes. Both are rational, in my opinion somewhat bad faith, and entirely avoidable from an applicant’s perspective.
That’s why I’m not appealing to companies. I’m not going to beg them not to operate out of rational self-interest, or to avoid claw-backs or to stop trying to frighten you into silly non-compete contracts. And I’m not going to beg them to stop giving you bad titles if you’ll accept them.
Instead, I’m going to beg you to not accept bad titles.
But I’m only going to do this if it makes sense for you. If the company is an otherwise great opportunity or if you need to pay your rent, then do what you have to do and figure out how to generate mobility for yourself later. As you consider the offer, though, think of it this way. When you accept “junior developer” as a title, you’re throwing yourself entirely on that company’s mercy. Think of it as the equivalent of them asking you to sign a contract stating that you’ll only work for them until they say you can go elsewhere.
That might, in fact, be your best option. But if you can afford to wait for a better offer, then do so.By the way, if you liked this post and you're new here, check out this page as a good place to start for more content that you might enjoy.