One thing that stood out to me though is that a lot of the older candidates I interviewed that had been struggling had deep knowledge of a technology that's no longer used and had had very little interest during their career in learning new things outside their job. So once the thing they were expert in was no longer fashionable, they had a hard time catching back up.
I know it's unfashionable to say this and I know that a lot of people have full time jobs and don't want to have side project additionally to their full time job but if you want to keep a career as a software developer past 40 without going into management then you need to do side projects,you need to keep up to date with some of the latest fad (even if some of those fads are cyclical and recycle concepts from 20 years ago). Doing a job well and becoming an expert in an obsolete technology is no path to career growth.
Sad thing about this is that some of us (like me for one example) have known this since the days before personal computers were even a thing, but it don't really help to stay on top of modern tech when all the people in charge of hiring in the tech industry are twenty-somethings who automatically instantly hate anyone with even a single gray hair or wrinkle visible, and instantly dismiss a lifetime of knowledge based entirely on ageism.
Even sadder is that the "decision makers" in many tech jobs still to this day actively ignore good advice that people like me have been giving since the early days re; things like network security being more important than they want to admit to themselves (just to name a simple and obvious example), and then when their ignorance of such issues come back to bite them in the ass they always scapegoat the "new guy" somehow and out he goes.
But I did want to explain the typical issue I have seen when interviewing older software engineers that had a long career but shot themselves in the foot by being too tied to a specific technology. At no point did I want to say that it was the case of every engineer I interviewed. And I fully agree that it's often tough dealing with the ageism in this industry.
It takes some politics, and interpersonal trust to get your advice taken seriously. Sadly, this also means looking past the technical details and considering organizationally why certain decisions need to be made. The company might prefer the occasional breach and "we are sorry" PR over spending a lot of money on network security, for example.
Sure, but what about when the choice presented is more along the lines of "Hey, let's spend a little money on network security now so that we don't have to spend millions later cleaning up a huge mess", and is met with the mentality of "You're worrying about nothing." Ummm, no? I'm sharing the expertise for which I was hired?
This is true for anyone. I've interviewed young people with 5 years experience only to find out they had 5 years experience doing the same thing over and over that they learned in the first 3-6 months on the job.
While the pace of change has slowed down in some software areas in my last 20+ years of working, I never saw it as a field where a person could learn something in school and simply apply it for an entire career. For better or worse, it requires learning outside ones job, or at the very least, constantly moving jobs to keep skillset building.
For me, this has been fine because I've always loved tinkering on the computer. Learning new tech is something I've always done as a hobby as far back as I can remember.
Those going in only thinking programming is an easy way to make money, may struggle later in their career. Though, this is less of the case now as there is so much more older code out there to be maintained.
Developers who understand the fundamentals of a particular area may not be ignorant of so-called developments in that area , but rather may be able to see where trends and modern approaches fail or lack. I know a Swiss developer who never used react in his life, but he coded up a rough approximation in an hour in front of me. He has his own tool belt, naturally. Would he be a good front end factory grunt? No. Smart companies use his services to design them tools.
Got a link?
Paradoxically, this does have the side effect that I'm more skeptical of learning some new ways of doing the same thing, preferring to prioritize new learning for actual new capabilities vs different arrangements of the same deck chairs. I see that behind some of the inertia in my experienced cohort -- just-in-time can be reasonable approach to picking up specific tech.
OTOH, I've certainly worked with people who are aggressively disinterested in picking up anything new, even when offered the chance to do so on the job, and that's certainly no fun to work with. Or manage.
When compared to other careers after, say, 15 years of experience you are not well established high paying position as a lawyer or an engineer (the actual kind :) )
After 15 years you are out-of-date dev that didn't find a time to do their job, manage family and friend and have a side projects to keep up to date with technology.
This is a bit overdramatic but sw devs are expected to ride the wave all the way through their careers when other career paths offer stability and protectionism of well established fields.
That seems to be available only in US for handful of VERY vocal people.
It’s not easy, and you may need to actually go to the place where those jobs are. But each of those companies will hire thousands of people at those compensation level in the next year. And the people they hire were in no way exceptional (or different to you) before they started down the path to getting where they are now.
There’s no reason you can’t be one of them.
To get the interview, you just gotta have some years of experience, some side projects, and that's about it. If you went to a top tier school or something like that, you don't even need the years of experience. Getting an interview at those companies is the easy part, pretty much everyone I went to college with got an interview with one of those companies before graduating (and I didn't go to some super known ivy league college, it was just a pretty good public school in Georgia). The issue was that most people didn't pass those interviews.
To pass the interview, read up on systems design, read up on algorithms, practice some leetcode/hackerrank/etc., and you are good to go. All of those resources can be easily obtained for free. There is no secret or trick to any of that.
It worked out well for me at TomTom: I kicked ass during the 3 month probationary period as a contractor, then when they decided to offer me a full time contract, I was in a very good position to negotiate a salary (and even a hiring bonus), much better than if they were hiring me cold out of the blue.
By doing so, that cuts out anybody who currently has a job. Looking for a new job is much less stressful when your fallback option is "keep working at the current job and continue the search". It also gives you a much stronger negotiating position, since you don't have the deadline of bankruptcy hanging over your head.
If I heard that a company wanted me to work for two weeks on a probationary manner before deciding, that would be a very hard pass. That's long enough that it couldn't really be done without leaving a current job first. Best-case scenario, the transition becomes immensely more stressful for no good reason. More likely scenario, the hiring company decides to play hardball after the two weeks, and I'm over a barrel because I already left the safety net.
(I have never understood this industry's way of hiring. Long drawn out interviews, and candidates whom are just average that get jobs.
Why not hire a guy for two weeks. See how they do. And of course, be upfront. Tell them this is probationary. You don't sent a guy to relocate, just to be let go in a few weeks.
There are some really great older workers that some company will scoop up when hiring is upgraded to this decade. Sorry about the sentence fragments. Too lazy to fix.)