You Deserve to be a Software Developer

Mike Overby on September 26, 2018

Shibbo Leth @lethargilistic Saying Junior developers should be "thankful" for getting hired is toxic af.It's a job. Your job is a job.Stop de... [Read Full]
markdown guide
 

In my opinion, the number of years experience in a programming language or technology isn't what makes someone a senior level developer. It's entirely possible for a developer to have 1 year of experience 10 times over, so years of experience is a garbage metric. I actually consider the title of senior to be absolutely dependent on junior level employees being present. If a senior developer isn't mentoring and growing a junior developer's skills then they aren't a senior level developer.

 

I see this all the time. I can’t tell you how many interviews I have done with a senior person with 10 plus years does not have the competence and experience to do a junior level develops task on my teams.

It comes down to experience.

This is the same reason I have junior developers do code reviews, knowledge shares, and in short treat them like any other developer. As their experience grows, so does there responsibilities.

 
 
 
 

The word junior has become attached with quite some negative connotations. I think instead of using the title junior software engineer/developer, the 'junior' should be dropped and positions should be advertised as simply 'software engineer'. Furthermore, there should be an intermediate position as well as a senior position.

 

When I was looking for a job I really gave no thought to my own title. I sort of just naively proceeded. And it worked. Sometimes I wish other newer devs were less aware of a perceived hierarchy which erects walls in their own ambition.

 

When I was switched to Senior Software Engineer, it was brought up to me by a "junior" with awe in his eyes (less than 1 year in his career) and I told him I didn't even know since nobody had told me yet and that there was no difference from the week before as far as I was concerned.
Being in Japan, the hierarchy is important and so even the way he started to talk to me was more "reverent" ... It felt so strange that I stopped going to lunch with him.

 

When you are not worried about the title, the wall is the years of experience. When you go through the description and see a 5+ years required, it is hard to go forward. It is obviously aimed to senior developers.

 

Atleast at my company, the different roles in the 'hierarchy' are well defined, which in turn provides a clear idea of where you need to grow and what you need to improve for each jump.

Yeah, I don’t want to dismiss the value of the hierarchy, but my own head-in-the-clouds outlook on the whole thing really wound up being a feature and not a bug. I never felt like I had to pay my dues at any certain level.

The world sort of holds you to your title, but if it’s not important to you, it’s not necessary that you hold yourself to it.

 

TL;DR: You don't need permission to develop software.

If you're looking for one key takeaway from this post, ...

The takeaway that was key for me is this; everyone is afraid. It essentially boils down to, "I don't want to hire the wrong person." (one of "I don't want to make a mistake"'s many children) which reintroduces the catch-22 of needing to get experience and not being hired due to lack of experience. The more money involved/bigger the company, the greater that fear and the more things people will do to try and ensure "hiring the wrong person" ("making a mistake") doesn't happen.

It's probably impossible to change the mentalities of these job-fearing people. After all, "you should be thankful for a job". We still tell kids to get jobs. This is wrong, imo. The problem starts there. Maybe if a job wasn't placed on a pedestal, people might feel confident enough to branch out on their own more often.

No one cares about your experience if you create a functional something that they like.

I get it, bills, food, etc. So, jobs. It just seems disconnected from a domain with such low barrier to entry and unlimited range of application. The next "Blahblahblah" can be written by a 20 year old in their dorm room, they'll then quit college/uni and continue building the thing full time -- this pattern has happened so many times it can be called a pattern. Everything that is Minecraft was essentially started by one man.

So, why lay prostrate for a job?

I say, "Would be software developer, you deserve better."

Not quite a solution, just a different perspective.

 

I find the Jeffersonian outlook comforting at times. (He believed that America should be comprised of individualist and independent yeoman farmers.) However, the reality on the ground is that working for corporations is the way to make money in software unless/until you have an idea of your own. Barring something like a universal basic income (I'm hesitant) or a radical reversion of our global relationship with corporations (they used to not be so scary), I don't think appealing to the market's lottery-like system is so much more realistic and stable for most people.

 

I don't think appealing to the market's lottery-like system is so much more realistic and stable for most people.

It isn't. :(

If everyone said, "F this, rolling my own." we'd have too many chiefs, not enough indians. Is that analogy even PC anymore? Anyway, every ecosystem in every industry would look like JavaScript, and we most definitely can't have that.

the reality on the ground is that working for corporations is the way to make money in software

This reminds me of Pandora's Box. A corporation isn't what it used to be, but, now that it is what it is, there's no going back. That's... unfortunate, even if someone can say, "But look at how many jobs Acme made!" ... kinda like Wal-Mart.

 

Hell yeah Mike! :-)

Senior is also a word that means something different to different organizations. Some call senior devs people with 5+ years of experience, some 7, some 10.

I have no qualms to admit that I was hired at my first real fulltime job for two reasons: I was visible on Python local mailing lists AND I knew someone at the company.

Knowing someone who knows someone is still the easiest way to get a job interview at least.

Thanks, you reminded me of this post and the discussion that followed:

 

I was very tempted to write about how deeply rooted referrals are embedded in our "meritocratic" hiring, but thought the article wouldn't be focused enough then.

 
 
 

Going out on a limb here, my first comment on dev.to...

I agree with everything except that all companies should hire junior developers (not stated directly but implied).

Some companies and teams cannot realistically coach a junior developer if they are dealing with live site issues just about daily and have no or follow very little good software practices.

This environment will sink most junior devs and slow down the team (i.e. may go out of business, yep this is real).

This type of team or company running in emergency mode unfortunately is most likely to under pay, over work, and not treat junior devs fairly. My two cents: Take any job to get experience, but keep searching until you find a 'real' software company. Your career will see a turbo boost and you will be happier.

 

I would argue that if you have a team experiencing this issue, that you already have a team of junior engineers, one more wouldn't hurt. A real senior dev though might help get the team into a good place and put and end to constant chaos by developing the existing juniors that created this sort of mess.

 

I said "organization-of-size" to cover this nuance in passing. The article I linked out to has a good rejoinder to this comment.

 

If a company cannot hire junior devs because its senior devs don't have time to mentor them, then that company is already stretching its senior devs too thin.

I personally agree with those that say that people who have been coding for less than a year will hardly have enough knowledge to work a realistic junior developer position. However, I had been coding for 10 years on my own before landing my first real, dev job (as a junior dev) and found myself doing most of the mentoring. Part of my responsibilities as a junior was to integrate and teach the use of Docker, Javascript, Angular and Go to all of the senior devs who worked almost exclusively with Java (directly on Windows) for the last decade. Obviously, the company leveraged my lack of "real" experience to try and stick me with a miserable salary (for dev positions). This is a common practice in neoliberal America where salaries are based off negotiations not credentials.

I obviously receive mentoring from the senior devs in matters of management and design which IMO is more valuable than any of the technologies I brought along. They may be outdated soon but software development is still a growing field when it comes to the administration of labor and organization of tasks.

I think companies are mistaking "junior dev" for "experienced software developer that hasn't worked for a F500 company".

 

Seniors need juniors as much as juniors need seniors. When I started being in charge of reviewing developers job applications, I wanted all our new hires to be seniors, but I ended up having to "settle" for junior developers. And I'm really thankful for that, now I see you can't call yourself a senior developer if you can't guide a junior through his learning process.

 

Like many others who have commented, here, I generally don't care for the words "Junior" or "Senior". The use of the word "junior" has become somewhat pejorative and used to establish a sort of pecking order, as others have pointed out, and "senior" is has become bankrupt.

I think what matters most is really what John Allspaw calls "maturity".

 

We were all developers jr at the beginning, so I do not understand the problem. There are people who believe they have a great knowledge and therefore less value to others. But in the world of technology, there is always something you do not know.

When I started working I did not have those problems and now that I help with the recruitment, I make sure that everyone has the same opportunities.

A serious mistake is to judge without knowing.

 

Programmers are procrastinators. Get in, get some coffee, check the mailbox, read the RSS feeds, read the news, check out latest articles on technical websites, browse through political discussions on the designated sections of the programming forums. Rinse and repeat to make sure nothing is missed. Go to lunch. Come back, stare at the IDE for a few minutes. Check the mailbox. Get some coffee. Before you know it, the day is over.

 

This article was one of the best reads I've had in a while! Thanks for sharing and writing I can relate to this!

 
 

Fortunately companies like this are likely to fail if this attitude persists. The ability to work in teams is just as important or more so than individual competence.

 
 

If your organization does not [...]

Please let my organization decide who to hire and how to hire, ok? Found your own organization and set your own rules there, please.

Furthermore, I doubt all the evangelists and advocates of the “junior deserves the same as senior” mantra would ask for a junior lawyer and/or a junior surgeon when it comes to lawsuits and/or surgery.

Nowadays we need to put more effort into getting the driver license rather than to become a “software developer.” That is plain wrong. Developers need the education. That might be self-study, or whatever, but it should happen. It cannot happen in 7 days, 21 days, or even 3 months. No matter what glossy books in bright covers and ads of everything-in-3-days-courses promise. I coded for 2 years before I ventured to apply for the real position, paid with money and all that stuff.

So yes, there are juniors. And it is totally up to the organization whether to hire them or not. Hiring juniors is sorta charity and it’s not affordable for every organization.


We do hire juniors. I personally spend a significant amount of time teaching juniors in many different ways, from thorough CRs to free courses on exotic languages twice a week. I also help people on SO. I do a lot of stuff to deserve the right to hire whoever I damn want.

The most hype I have heard about “we must hire juniors” actually comes from (surprisingly enough) juniors. Here is the receipt for them: spend your free time to learn to become seniors sooner instead of wasting it advocating the necessity to hire juniors. That works better.

 

The most hype I have heard about “we must hire juniors” actually comes from (surprisingly enough) juniors.

When I was "junior", I didn't know anyone or advocate for anything. I think most juniors keep their heads down and do their work. There may be some outspoken, but I think most of the actual discourse on this subject comes from experienced developers who have good relationships with their newbies and want other orgs to do the same.

 

from experienced developers who have good relationships with their newbies

Well, maybe.

and want other orgs to do the same

That’s the thing that drives me nuts. Many developers are fine using Apple devices, despite the evidence of unacceptable working conditions at their Chinese factories. Many developers are fine using AWS despite working conditions at Amazon in general. And now I am told I have to do something these developers consider being good.

The subject is not generalizable at all. Some juniors are fine being and feeling juniors (they grow fast.) Some have an impostor syndrome and need some additional care. Some just need to be fired for claiming to treat them as seniors.

This world is not b/w. General solutions do rare if never work.

 

You can't really "learn to become seniors sooner" if your seniority is measured in years of experience working in a classic enterprise environment.

 

This is a problem of classic enterprise environment that might be addressed separately.

I personally strongly advise everybody against applying to Big5, or even Big100, until they will come to headhunt you themselves.

In a healthy environment, we look at what the applicant might show (gh/test/interview.)

I agree with your suggested method of evaluation. However, most companies wont even call you back if you don't have some big name on your resume. And, in my experience, a large enterprise has more "wiggle room", for lack of a better term, to hire junior developers. In a startup, there are fewer safety barriers between the junior dev and the production codebase. A large company often has a large amount of non-critical projects that a junior dev can join to learn the non-technical processes that are critical to the stability of the client facing product.

code of conduct - report abuse