Note the qualifier, after 35-40. There is no doubt that it is a great field for anyone younger than that, but is it all sunshine and roses for people older than that?
I am not yet 35, but will be there in a couple of years.
So it is not surprising that I have thought about this question: is software development really a dead-end job?
I would like to think that I have been pretty successful in my career thus far. I started as a developer and am now working as a Software Architect. I have experience working as a developer, architect, Scrum Master, team lead, etc. On the non-technical side, I built teams from scratch, hired the right candidates, trained them on their weak points, etc.
In short, I have skills in many areas of software development. I like to get involved in many aspects of SDLC and can honestly take a team forward (both technically and in terms of managing teams, creating the right development processes, and creating an intellectually stimulating environment for developers).
Does that make me a good candidate for any job? You'd think. "Yes, why not? I've got all the skills." I thought the same too.
When I was job hunting recently, I did not get an interview with most companies I applied for. It was taxing to go through recruiters who were trying to match keywords in the job spec to my resume.
Recruiter: Worked on Java?
Recruiter: Worked on Spring, J2EE?
Me: Spring, Yes. J2EE in 2004, yes. JavaEE since then.
Recruiter [confused, but carries on]: What areas of Spring?
Me: MVC, Data, Security, Spring Boot, and many others [I specify the list].
Recruiter: What about XML?
Me [a bit annoyed by now because I realize where this is going]: Yes.
Recruiter: What version of Wildfly application server?
Me: I have been working from the JBoss days, and I'm now on Wildfly 8.
Recruiter: Oh, but you have not worked on Wildfly 9? Sorry, we are only looking for guys with Wildfly 9 experience. [Hangs up.]
For most jobs, my skills did not match the exact keywords, so you can imagine how much worse those interactions were. They did not understand that I was more valuable than just the keywords listed on the job spec.
Among the handful of companies that I got a call from, they were looking for someone to do “just the coding” for a measly salary.
There were also a couple of companies that assigned me coding tests where they asked me to “print a ladder” and “find repeating numbers.” I rejected those tests not because of arrogance but because my skills were beyond what they thought is needed from the role. And yes, the roles were for a Software Architect. However, instead of testing my skills in architecture and logic, I had to print a ladder on the screen.
The remainder of the companies were too far to commute and needed me to spend five hours on the train every day. I rejected the calls for interviews from these, too, as moving my house was not an option with my family settled in my current town.
I got rejected without an interview from 99% of the companies. Among the remainder of 1%, I found reasons to reject more.
Now, let's wind back 10-12 years when I was in my early twenties. I was a Junior Developer then. I was single and had the freedom to move to any part of the world. I could have chosen any job in the world. I was also happy to work in “just development” for a lower salary.
So, what does this story tell you? Was I a better Software Engineer in my early twenties? Hell, no!
Now that I am in my thirties, I am picky about my job. I care more about the impact I bring to the company. I also care about spending quality time with my family.
Unfortunately, the companies don’t understand that. They also want a person with specific skills, not one with a huge range of experience in many areas. I believe that the reason for this is because more often than not, you are being hired to replace somebody who has left the company. You are only expected to do what the previous person did, nothing more. Most of your “extra” skills turn out to be useless for the role you are applying for.
So, yes, in a way, this profession is hard on people who are in their thirties and beyond, not least because we lack in skills, but because we have more things to consider before we make each move. Whether it is a dead-end job or not depends on your personal situation and how flexible you are.
This nicely leads us to the next important question: is programming becoming a commodity job? That's for a future post!
Note: I wrote this answer for a question on Quora.