Ageism: One way to combat it is to have a good network. Of the 7 jobs I've had in the last 20 years, 6 of them were from personal reference (schoolmate, co-worker, friend). You don't need to be a badass, just dependable.
Work around your limitations: I'm not as sharp as I was in my forties, and this is especially apparent when I pair-program with someone half my age. Younger developers have an astounding short-term memory (or, as my brother likes to phrase it, "they have a much larger register set"). As a simple example, we have 3 environments at work, and at any given moment they're being used for different purposes. I write their purposes down on a scrap of paper to keep it straight, but my twenty-six-year-old pair keeps it in his head.
Stay fresh: I know a 69-year-old developer/contractor say to me, "2000 was pretty good but after that the work dried up — I guess they didn't need COBOL programmers anymore". He had never bothered to stay current.
Make no mistake: picking up new skills can be hard. I remember in '86 when a developer in his 50's turned to me and said, "Brian, I'm tired of learning new things." He really liked to bartend though, so I hope that career worked out for him.
And some developers aren't interested in working anymore (I think this can strike at any age). I remember five years ago pair-programming with a developer my age who wanted to reminisce ("Remember when 640kB was a lot of memory?") and show pictures of his grandkids. I felt bad when they let him go, but it was hard getting work done while I was pairing with him.
This is one that a lot of people have trouble with. One of the best engineers I ever worked with was in his 60s at the time, and seems to have stopped learning new organizational systems sometime in the 1980s. Agile development processes were just newfangled bullshit to him.
He was hot shit at anything that required fine attention to detail, and implemented a distributed task system after I gave him a verbal thumbnail sketch. Correctly. The first time.
But I could see that his refusal to learn new things was interfering with his career all the same.
It sounds like another entity might be able to use his brain a bit more thoroughly.
That might be true and both you and he correct in every single way! But in this particular context it wouldn't have mattered one whit - he and I were working on a contracted project where the counterparty had mandated agile and it was written into the contract. It didn't matter if he liked or believed in agile methodologies. What mattered was whether he would learn them enough to be an effective team lead. He refused.
Quite often, new things are actually newfangled and universally less useful than extant tools. In such cases, I expect the wiser heads who can spot that to be able to clearly and compellingly make the case for why this is true in every scenario where one might consider using the new and inferior tool. He did not and could not.
Again, you're completely right. Lots of things are just value-free newfangled bullshit. There just might be a subtle distinction to be made between an old hand pronouncing something as such and it being an incontrovertible fact.
Younger devs, especially college hires, are given more leeway to train on the job and grow into their level of aptitude and interest. A similarly intelligent and driven middle aged dev won't be offered the same chances.
The biggest obstacle to middle age workers who are shifting career is to be unable or unwilling to take the paycut and downsides that come with a fresh start.
The recruiter has little interest in you being paid more. He's strongly incentivized to push candidates toward the average of the company.
Going over average is risking the company to bail out, too expensive. Going under average is undermining your credibility and leaving commission on the table.
Make the offer. If they turn it down, let them know they can change their minds later.
I always tell engineers looking for jobs that saying "no" is the employer's job. It goes the other way too. Offer the engineer the associate engineer job (or whatever the title is). Let them counteroffer or decide it's a bad fit.
But there is no shortage of new graduates and juniors with too little experience. What if the company already stopped hiring juniors because they are too many and there are not enough senior to train them? We have no job to offer at that level, it's not about age.
If you don't have junior level openings, don't offer the job, clearly.
If they're only worth introductory pay and responsibilities 12 months in, let them go take a pay raise elsewhere.
The attitude that pay only goes up incrementally year to year is fairly infounded. The curve should be steeper six months to three years in, depending on you industry and stack.
Organizations should also optimize their tech for onboarding efficiency. I rarely see that enter the discussion other than broadly: "It's easier to find JS developers."
It is still possible the older person is going to become a wizard later, but the question is: if they have it in them, why aren’t they a wizard already?
College hires are seen as unscratched lottery tickets, older workers are seen as known variables.
I’m not saying this is fair or clever, but this seems to be a part of it.
An aspect of this thinking is that people don't always know how to identify those 'wizards' if they can only evaluate someone against the company's own internal tech/lingo.
Someone very well might be a 'wizard' - demonstrably so with experience on visible projects. But if the interviewing staff can't parse out those skills in to something they grok, there's still a mismatch.
Another way of putting this: I've seen people in companies who were considered 'wizards' because they could do everything 'the company way', even though the 'company way' was demonstrable and horrifically both inefficient and insecure. Boat-rockers were not welcomed, regardless of the potential for positive impact.
Not everyone started in college, or started college at eighteen.
I'm not sure if employers are aware of this, but people staying at companies over 10 years are getting exceedingly rare.
If you're ten years at the same company, it's exceptional that you couldn't get an offer for significantly more money. Paying "market rate" is a policy for new hires, not existing devs as much.
And as you pointed out, that's a huge mistake. To this day I cannot understand why people simply don't do meetings where somebody says "okay guys and girls, we have a new need in the company; you 5 here aren't heavily loaded -- or we can relieve one of you of their current duties to work on the new thing -- is somebody up for it?"
I have witnessed such an approach I think twice for 17 years of career. And it worked really well the both times. Re-negotiating salaries is a matter of understanding and realizing that you now bring more value and/or carry more responsibility. For some reason HRs and CEOs absolutely hate raising wages of existing employees. They might hire somebody new at 3x the salary of a current senior engineer (seen that as well, and the new hire had significantly less expertise!) but they will be damned before they allow that current engineer get a higher wage.
It might be that they are afraid that if they raise one wage then everybody will demand the same. But I don't see how this would be different with a new hire. No more than 2 months in they will be sharing details of their arrangement with the other colleagues during the lunch break. Same thing, cat get outs of the bag sooner or later.
That phenomena -- huge resistance to raising wages of existing employees -- remains a mystery to me to this day.
"This kid (i.e., recent grad) reminds me of me. My shit doesn't stink. With my care, I bet his won't either."
vs
"There's no way I wanna be that old guy / gal. I deny the fact that he / she could be my future."
Basically, ego vs fear.
I suspect this confirmation bias contributes to various isms. Racism, sexism, etc. That is, they are not me, and I refuse to see they can be me.
Ah, "culture fit". Looks like me, dresses like me, educated like me, thinks like me.
The classic signs of 2 words till racism.
Best hire ever! The quiet shy kid could code circles around anyone id met prior.
Oddly he hired someone else with same degree from same well respected school, guy was not even one tenth as useful as the first hire. Third hire from same uni was junk too. That's when I really stopped looking at pedigree or even what degrees the person has, it's never proven to be a great indicator to me.
Edit;spelling.
If you don't mind my asking, which country were/are you located in and what line of business were/are you working in?
The vast majority of coders are not and will never be a "wizard". And that's OK. You can still be valuable to a company if you aren't a recent college graduate or a wizard.
Edit: also, be ready to pay through the nose for any actual wizard you want to hire. They can demand bucketloads of money.
2.) If you are hiring for vague sense that person grows in 10 years, you are extremely likely to be biased for all kind if cultural and demographic signals that have zero with actual performance.
3.) Old are not wizards now, for dame reason why young are not wizards now. Nobody can know everything and wizardly is moving target - half composed of myths and half of smokescreen.
It is not to say that great people don't exist, they absolutely do. But they all have expertise in what they do now and when they change jobs, there is learning curve.
These people do exist, though. Just like in any sufficently deep intellectual field, there are people who are very gifted and have insane focus. Compounded over years, they grow to be real beasts, just listen to any talk by John Carmack or Jonathan Blow. The bad news for the employees is that they tend to start their own companies, as typical firms don't have appropriate spots for them (as someone else mentioned, these people provide 10x value but are typically only paid 1.5x-2x).
Sure, a games company or similar, but would Carmack be a 'rockstar' on something like a node.js stack? I'm sure he could pick the tech up quickly, but most of his skills lie elsewhere. And yet there is the expectation in tech that truly experienced people will be good at everything, just look at the post about 'things I don't know' from yesterday to see examples of this expectation.
But also, they tend to be less of talkers and presenters which is another separate skill. As in, they are rarely public face.
2. They're cheap.
3. They went to the same school/non-school/frat/boot camp you did.
4. They look like they'll be fun to hang out with.
5. You also have no experience.
One of the reason i got stuck is that 3 years into my job; my ex-VPs, who are both CTOs now, asked me to build cloud based eCommerce platform for this top 5 online retailer.
where i was I charge of digital transformation for the entire online space except the infrastructure.
This was 3 year journey. That put it into 6+ year mark.
The (American) Jewish term of endearment for a female baby is bubbeleh, which translates roughly as "tiny future grandmother." On the surface it might look like shoehorning, but I think it's meant to be aspirational more than limiting. There may (or may not) be something similar at play here.
Having said that, the economy has been very different for this cycle than it was when I was fresh out of college. It clearly varies inside and outside SV, and all the other usual caveats.