I'm 49! I've been working since I'm 17 as a developer -- I think the KEY thing is to be valuable, and be able to change quickly BUT not as quickly as the snowflakes.
Ignore the fad tech, get a good, serious, bulletproof base in actual computer science -- I mean, LOW LEVEL stuff--, that will help you learn ANYTHING computer related quickly, and continue surfing that wave with whatever tech you fancy might actually be useful to make you sellable in the future...
And don't hesitate to drop stuff you invested a lot in. If it's no longer trendy/selling, just drop it like an old sock and spend time updating yourself. I'm a frigging EXPERT in dozens of stuff that would make people smile now (those who are old enough ;-))
And, if you're that old, you should be GOOD. Not just nerdy and opinionated, you should be able to demonstrate being curious, capacity to change, to work with younger guys as a 1:1 basis -- and use that tons of experience of yours in new fields.
I'm lucky, I manage to 'channel' that stuff because I'm probably still more passionate about my job most people will ever be, despite the pile of years, but I've never been 'age discriminated' before. Apart from when I was 18 and winging it a bit ;-)
Cool; I'm about the same age, been getting paid to do, for the most part, what is called 'devops' today since 1993, though unpaid a number of years before that.
I'll confirm and reinforce everything you're saying here.
Six weeks after I decided to move companies, last year, I had three excellent job offers to choose between, and even more that were less great but still doable.
> you should be GOOD
I like to think that I'm pretty ok at this. Being able to compare and contrast Linux top half and bottom half interrupt handlers all the way through optimizing a y combinator implementation during an interview leads to some good results.
To the other replies about how to stay passionate after so many years of 'basically the same things over and over': I don't have a good answer to that.
I did some amazing stuff earlier in my career, and I long desired to find a place where I could go even further, but I've come to realize that it's unlikely to ever come about again.
Perhaps it's kind of like 'grinding' in your favorite video game. Same stuff, over and over, mildly challenging. Take pride and feel good about getting it done, well, again and again.
> how to stay passionate after so many years of 'basically the same things over and over': I don't have a good answer to that.
I don't know if my answer is good, but here it is...
If I find myself in a position where I'm actually bored and doing the same things over and over, then I move on to a new challenge, be it with my current employer or not. The most important thing for me in a job is that it's interesting to me. If it becomes boring, then it's time for a new job that is interesting -- partly for my own emotional health and partly because that's a strong sign that I've learned all I can learn from my current position.
>I did some amazing stuff earlier in my career, and I long desired to find a place where I could go even further, but I've come to realize that it's unlikely to ever come about again.
If stated briefly, it tends to come across as self serving and disingenuous, and I don't have time to add the necessary political and technical backstory to avoid that. But fuck it, here's the brief, high-level.
Starting in the 1990s, I was in the 'devops' team inside of Network Engineering in an enormous and enormously successful (to this day) retail chain. At the time, we were told by AT&T, our biggest WAN provider, that we were the largest centrally managed network they were aware of. Even larger than any one of their own various management regions. When I left there in the early 2000s, there were tens of millions of IP addressable devices on the network, and my team wrote the software that managed and monitored most of 200,000 Cisco and Nortel routers, switches, access points, and other kinds of devices.
At the time, this retail chain was, on average, opening or relocating a new store every day, and each store had a surprisingly large network. Also, we were pioneers in just in time delivery.
So, the network had to be extremely agile (we had people all over the world, all the time, being paid to mess around with our hardware in the form of upgrades, installations, rollouts, etc) and exceptionally stable.
Store shelves would start to go bare after an hour of network downtime at one of our hundreds of distribution centers, across 10 countries. (The 'bareness' would happen many hours later, of course.)
For most of that time, I was the technical leader of the automation team inside of Network Engineering. NE itself had on the order of 40 or 45 network engineers, plus the 5-7 people on my team.
At that scale, automating 99% is about as good as automating 0%. EVERYTHING needed to be automated. And, as things changed, rapidly, my team's automation had to be ahead of it, all the time.
For most of the years I was there, my team delivered spectacularly. We even hit 99.9999% global network availability one quarter. Note: this is absolutely not a bullshit number. The sense of urgency and focus demanded that all assumptions were tested all the time, and availability metrics were very accurately calculated.
The monitoring system I designed and we built was state of the art at the time, and in some ways, even compared to the offerings today.
True story: an NCR contractor (who we widely used to do the in-store hands on work) decided to start stealing our equipment in Southern California. He knew we had redundant store routers; the frame relay circuit plugged into one, and the dial backup circuit plugged into the other. He knew that when one router was to be taken for service and another wasn't immediately available, the procedure was to plug both network lines into the remaining router; our automation handled that and kept dial testing.
So he walked into a number of stores, did that, and walked out with an expensive router.
When he was caught, the data from our monitoring system was featured in the prosecutor's case against him.
We guaranteed within less than a minute of accuracy that any managed device that fell off of the network would be noted and reported. And so it was, and he did go to jail.
From a technical perspective, I'll just say that the entire system was built around the paradigm of message oriented programming. Neither I nor any of my team members knew about erlang at the time, but the system we made organically had many of the same features and strengths.
And, finally, just before I left, I was pushing forward into using machine learning techniques to do truly predictive network monitoring and management. The initial results were extremely promising.
Ignore the fad tech, get a good, serious, bulletproof base in actual computer science -- I mean, LOW LEVEL stuff--
I can’t agree with this. Most businesses aren’t doing anything that require leetCode and deep algorithms knowledge. After a certain age, what’s important is to know how to drive business value and how to either save the company money or make the company money.
Also, be well aware of where a technology falls on the hype cycle and keep your skills current with it. Whether you are looking for a job or not, see what other companies are looking for and make sure your skills are in sync.
Also, knowing how to speak the language of business is just as important as knowing how to talk tech - if not more so.
Finally, networking. Network with former coworkers and get to know local recruiters.
I’m 45 and I am not seeing any signs of ageism. My former manager is in his late 50s, self demoted to an individual contributor after his kids graduated and is now a full stack React/C# developer on top of Azure. All of the people he hired at our former company were 38+ and we are still developing, switching jobs, and are very much in demand. None of us are in management.
I understood the low level stuff as to how memory, disk, CPU, syscall, network works. Those models haven't changed in years and are useful for anything that runs in a computer.
I’ve only been asked about algorithms twice. Once in 1999 when the job was to write portable C and the second time I was asked to write a merge sort in 2016.
Even though they made an offer, it told me a lot about the company that they never asked me any architectural questions. I declined the offer. The job I did take, the manager asked me what would my 6 month plan be to create a modern software development department and to migrate their system from one based on PowerBuilder written in 2000 to use modern technologies.
For my current job - still as just as individual contributor at a small company, we discussed the technical challenges and the goals he had and we started diagramming.
I would have to try my best not to laugh at a company who was building yet another software
as a service CRUD system who asked me to do algorithms.
The big money question is: How have you managed to stay passionate about your job?
I just posted a comment in another thread about burnout. It's very common in our industry. I believe it's due to the Coolidge Effect. Aka, the brains inherent search for novelty. It's a struggle to not look at almost all programming tasks as just some variation of the same problem, if you've been doing this long enough. How do you keep it interesting enough, to stay passionate?
I had a bit of a burnout around 2006 -- I had worked my ass off on a fantastically complex framework, the pinacle of years of experience, and it was a joy. It was SO cool. There was an application on top, which was also pretty cool.
And the marketing bods/management and so on more or less dragged the project off track, up to the point I didn't want to work on it at all, I quit, I left my 'baby' and had a hard 6 months where I didn't really want to do anything... Good thing is that I became a pretty competent landscape photographer along the way...
Nowadays, I work a LOT more like a mercenary. I don't mind working on projects that leads straight to the wall -- NOBODY will listen to you, or trust you've seen that 12 times before.
So as far as I'm concerned, I enjoy the work, the architecture, the TECH challenges, and everything which gives me a quick, and I completely ignore the outcome in the end. Sure, if it's a success, whoohoo whoohoo but I no longer put the same amount of 'care' and 'ownership' in what I do. I just let it go, and do something else just as efficiently.
It might sound cruel, but for the like of us who REALLY get a kick from designing/building/implementing stuff, it's actually quite liberating.
I just smile benignly on at the idiots in the room sometimes, it's quite relaxing :-)
There's a certain point where you've been abused so much, you've GOT to let go. The reality is, we don't work on these projects in a vacuum. Rarely do we have full control and responsibility for the outcome. If you can't control something, you can't hold yourself accountable for its success or failure. I still do my best work but if I'm put in an impossible situation, my outlook is similar to yours.
Heh, respectfully, I think we're talking about two different kinds of burnout.
The form I am referring to, builds steadily over time. It's not the result of some bad interaction with management, rather, it's the result of doing the "same" thing for 30 years.
I recognize that the problem is in seeing it as the "same" thing. Yet, given our job as programmers is often to see the forest through the trees, to identify patterns, it becomes hard not to see yourself as solving the same set of problems over, and over, and over, and over.
That's the type of burnout I'm referring to. I'm guessing you don't struggle with that at all ;)
Well to be fair I went from doing well over 20 years of Mac programming with a lot of UNIX/Linux alongside to a semi-hardware developer with linux low level stuff, pure embedded and FPGA development...
There's LOADS of fields that you haven't done. I remember my first time trying to get my head around some VHDL code and I felt I was 12 years all over again looking at 6502 assembly code.
It's quite strange and yet makes sense, that embedded salaries are lower than easier higher level development. On the one hand, embedded is NOT the kind of thing some random 14 year old kid can do, whereas iOS/Android/Web is. But unfortunately, there's just not the plethora of jobs demanding embedded folks.
Yeah, as someone who generally winds up rewriting the mess that you wrote for everyone in the room, I really wish you'd pay more attention to the outcome in the end.
Not as old as op but approaching 40 fairly shortly.
Most programming tasks are a variation of the same problem, you realise it, accept it and then realise that the way to write good software is to get decent at the building bit and then work on getting decent at all the other bits around it.
Requirements gathering (aka talking to people and writing down/recoding what they say), testing (hitting things until bits fall off), reliability (making sure things don't break the same way twice), documentation (making sure the poor sod in after you has more to go on than you inherited).
There is a tonne of variation in what the average dev has to do day to day (unless you are a "Here are the requirements, you can change nothing, implement this spec, never question it" dev - in which case I pity you) so the trick is to keep learning in multiple domains when one gets stale rotate to another, variety is as they say the spice of life.
Not the OP, but I'm 51 ;-) This week I'm writing some logging code for about the 1 millionth time. Logging is fascinating. What's the best way to do it? Global variable? Send a parameter to basically every function? And then when you log something, you need a time stamp. Where do you get it from? Do you insert side effects into virtually every function? Do you have any choice? It's amazing. I can write it a hundred different ways and I have no idea which way is best. How do I get past that?
Every day is the same. If you want to search for novelty, it's the fact that it is the same problem and it's been broken from the beginning of time. So do something else! But what? That's what drives me.
You can't dally, either. It would be easy to just spend a year logging (and probably get nowhere). But you can't do it in a job. They won't stand for it. So what can you do in your few minutes of leeway? What difference can you make? You aren't going to fix it, so how can you extract just a tiny bit more information so that maybe someday it will all click?
I think most people don't care about this stuff. Programming is inherently boring. You need to care about insignificant details to really get deep into programming, I think. I mean, it doesn't really matter. Global variable, passed parameters. It sucks one way or it sucks the other way. Who cares? Only crazy people, probably. But in my opinion, that's where the fun is.
I know a guy who I think, without exaggeration, is one of the best software engineers on the planet (in the top 10%, anyway). He burnt out big time a decade or so ago.
His solution: he became a long-haul truck driver (he asserts that the skill overlap between software engineering and long-haul truck driving is far larger than you'd think). After a couple of years doing that, he reentered the software engineering world, completely revitalized.
"I believe it's due to the Coolidge Effect. Aka, the brains inherent search for novelty."
But I can't think of a better industry than software development to satisfy the search for novelty. There's always something new and interesting to learn.
Reading your post made me smile. Your writing style reflects your personality - full of positive vibes and tremendous passion. That's all I wanted to say.
Ignore the fad tech, get a good, serious, bulletproof base in actual computer science -- I mean, LOW LEVEL stuff--, that will help you learn ANYTHING computer related quickly, and continue surfing that wave with whatever tech you fancy might actually be useful to make you sellable in the future...
Instead of listening to you and I (age 50) there are some young people who would rather claim that basic/low-level/first principles knowledge is irrelevant.
I've never been 'age discriminated' before
I have. These coder-bros I was interviewing with accused me of Googling the answers and started in on the complete condescension. (I was doing the classic dynamic languages programmer thing and writing a quick script to answer their question programmatically.) Nothing fundamentally age-discrimination about that. It was how they spoke to me and treated me after that. Sometimes I still get mad or sick thinking about it. One thing I've learned, when people are projecting things on you which contradict the facts, that's a big symptom of bias.
The problem is that it's hard to bring your years of experience on an interviewing table.
Some older people I worked with (I'm 40 now) were well respected by the others, because they prove time and time again that their experience is really valuable on all kinds of stuff, both low level details and high level strategies. To show this in an hour is difficult.
Although I was once able to do it, and was hired. They asked me a typical OO inheritance questions with a base class Animal, and derived classes Dog and Cat, and then let them "bark" and "meow". I knew were it was going, so I said "There will probably come more animals after this, so what I would do is drop the inheritance and move into a data-driven approach, where the specific animal behaviors can be defined in a config file, without needing to go through programmers have to compile a new exe every time". They liked that response, although that was probably not the standard answer that they were looking for when interviewing juniors.
And basically such things are your job as a senior anyway, to look into the future and steer the short sighted solutions that juniors come up with.
These coder-bros I was interviewing with accused me of Googling the answers and started in on the complete condescension
I'm really sorry about that man... I guess young people tend to feel like they own the world. I'm 27 and I believe I have been raised outside this toxic bubble (I got a lot of shit from my parents, I never thought I was somewhat special just for the sake of it, I only felt special after achieving goals, I always felt necessary to them though, regardless of achievements). I believe younger people are raised like they are too special, the promise of a better world, the ultimate legacy of their parents and that tend to go over their heads, specially after a historical period of unprecedented growth in which my parents and I believe their parents lived (60s through 80s) in which they prospered.
Young people tend therefore to believe they inherited their parents achievement and they can only go forward. I feel lucky I don't share that and I would love to be your coworker and learn from you.
> Instead of listening to you and I (age 50) there are some young people who would rather claim that basic/low-level/first principles knowledge is irrelevant.
Yes, that sounds like the normal "folly of inexperience" -- it comes from people who don't yet have enough experience to know that they don't know as much as they think.
There's a reason that people (in any field) with less experience tend to be more certain of the correctness of their judgement than people with more experience. The more I learn, the more I realize how little I know.
> Sometimes I still get mad or sick thinking about it.
I think back on instances like that as dodging a bullet. Can you imagine the hell that actually working with those people would have been?
Instead of listening to you and I (age 50) there are some young people who would rather claim that basic/low-level/first principles knowledge is irrelevant.
It is irrelevant to most jobs and no I am neither young nor inexperienced. I first started programming in the 80s in 6th grade doing a combination of 65C02 and x86 assembly language and I spent my first 12 years professionally bit twiddling in C - first on DEC VAX and Stratus VOS mainframes and then on x86 PCs. Later I maintained a proprietary compiler/VM used to write apps for Windows Mobile.
It is irrelevant to most jobs and no I am neither young nor inexperienced.
Just as one example, the basic level of algorithms, where one could realize when they're creating a O(n^2) routine, is relevant to just about every shop I interacted with working for a language/VM vendor. I found it disturbing, the number of times I could play the hero just by knowing that much.
I've worked in shops using C, where I kept bumping into workers who hadn't the foggiest idea how a C compiler might work, and it not only showed in their code, it even showed in management decisions. (Long story short: The application literally had 100's of re-implementations of linked list.)
I've interviewed recent grads from top-tier schools with near 4.0 GPAs, who try and tell me things, like adding a pointer to a struct incurs zero memory use. Then I ask them how much memory a pointer would take up, and they can't give me any kind of answer. (Or ask me a relevant question for more info, so they can answer.)
All this stuff could be avoided if there was just a certain level of basic background knowledge. They're like car mechanics who don't know the first thing about electricity. There's a certain level of background that can keep you from inconveniencing and hurting yourself. You don't need it most of the time, but when you do, it can save you a lot.
How much is really relevant to the average developer out there writing a bespoked internal app that no one will ever see outside of a company or yet another software as a service CRUD app?
I think I’ve had to implement one complicated algorithm that was low level and not a complex business requirement in years and that was the “shunting yard” algorithm to convert a string algebraic expression to a number as part of the parser for the compiler I was maintaining.
Most developers could go there entire successful career without ever knowing how a compiler works.
How much is really relevant to the average developer out there writing a bespoked internal app that no one will ever see outside of a company or yet another software as a service CRUD app?
Only a smattering. I could cover just about all of it in 2 nights of instruction. However, that doesn't mean the students would have mastered and internalized the concepts to the point where they'd make the right realizations when they need to.
I think I’ve had to implement one complicated algorithm that was low level and not a complex business requirement in years and that was the “shunting yard” algorithm to convert a string algebraic expression to a number as part of the parser for the compiler I was maintaining.
Right. Most of the time, one implements simple algorithms, using hashmaps and "vectors" as building blocks. But first principles knowledge can also make one better at that.
Most developers could go there entire successful career without ever knowing how a compiler works.
(Their.) Right. Most people can manage. Just like most mechanics can manage to muddle through learning as they go. But why not have mechanics learn basic knowledge about electricity? They do, because that kind of 1st principles knowledge can save people from pain. The same applies to CS/programming. Also, the knowledge itself is pretty neat. A lot of people get pleasure from learning it and being able to understand their world in a deeper and more nuanced way.
People going to top-tier 4 year universities, getting a 3.75 GPA, but coming out with no more than a glue-crud-apps-to-cookbooked-machine-learning/buzzword-of-the-day-library level of knowledge just strikes me as a colossal waste and colossal rip-off. It's also people becoming the victims of low expectations. I know that kid who tried to tell me that a pointer doesn't take up space could well have learned that stuff, if his program had just had slightly higher expectations. I'm reminded of schools who track certain kids into learning nothing more than what's necessary to balance a checkbook. That's killing young minds with the bigotry of low expectations. We're probably already at the point where some say asking kids to learn enough math to balance a checkbook is asking too much. Something about that strikes me as selling people short.
In my market, a major city in the US with a reasonable cost of living (ie a five bedroom/3000 square foot house in a good neighborhood in the burbs can be bought for $350K), the average framework developer who can push out a CRUD REST API in Node and can throw together a website with Bootstrap and React can make about $120K in a few years out of college and live a nice comfortable life and is well above the median income - I don’t think that’s doing too badly and certainly not “low expectations” based on salary.
I think back on instances like that as dodging a bullet. Can you imagine the hell that actually working with those people would have been?
That's very true, but it has changed my attitude for the worse about interviews. The particular situation where someone can take facts and reality itself away from me (not really in reality, but in terms of the outcomes of the immediate proceedings) is like hell itself. The possibility of that lurking, because I am indelibly "marked" by my age is awful.
I don't think you were "age" discriminated here my friend, it's likely you were just skill discriminated -- sometime it happens -- something you think is terribly easy and boring might come out as completely "wow" to some -- some people take it well, some, don't. Don't let that drag you down, remember the other thing I've posted in that thread: THESE people failings are what will keep you employed to fix them in the foreseable future :-)
I remember a while back on a guy who was raving about my code setting a (as boolean) flag with "done++;" -- he thought it was such an awesome idea. OH YEAH.
I don't think you were "age" discriminated here my friend
I think I definitely was. The attitude of one guy changed when he was looking through my resume and realized how old I was. There's this condition and particular set of reactions that accompany people getting strangely willing to believe you did something bad, even when they have scant or incomplete evidence. I grew up someplace where we literally had to drive 50 miles to visit friends of our approximate ethnic group. It's something that's familiar to me.
Why would you have that far of history on your resume? I only have 11 years worth of experience on my current resume and my year of graduating isn’t on there either. No one cares about my C programming experience on mainframes in the mid 90s nor my C++/MFC/COM programming up until 2008.
How easy would it be to get another job? That’s kind of the point. I found one or two C/MFC jobs back then but dozens of C# and Java jobs that I wasn’t qualified for.
If I need a job now, I want to be able to call my list of recruiters and within the next week have dozens to choose from and 3 or 4 offers which has been easy to do between 2008-2016. When I was looking in 2017, there were more companies looking for Node and full stack developers paying what I was looking for than C#. I happened to find a job that needed my combination of C# and architectural experience, but the pickings were getting slimmer.
So now, as much as I hate it, I’m going down the full stack JavaScript road because that’s where the opportunities are, and filling in a few gaps that will let me be an overpriced “digital transformation consultant”/“cloud consultant”, etc. (Yes I die a little every time I say those words).
One skillset is about getting a job fast if needed the other is by getting one that pays more. It’s about optionality.
When you are still trying to be a software developer in your 40s you can't afford to not keep up. Companies are far more willing to let younger people learn on the job than older, presumably better paid old developers. They already stereotype us as not being up to date, no need to reinforce it.
You have me beat, but I have a coworker who used paper tape. That is, computer data storage was via holes punched in a long strip of paper. Another coworker wrote Alternate Reality, which was a game for the Atari 800XL 8-bit home computer.
Finding these experienced people isn't easy. Many don't want to move. You can't just drop by a college and grab them in bulk. We'd hire more (see https://news.ycombinator.com/item?id=19055183 for "Who is hiring?" post) if we could just find them.
> You have me beat, but I have a coworker who used paper tape.
When I first learned to program (I was about 12), I was using paper tape and those old Bell teletypes, in a facility that still used punched cards.
Here's my punched card story -- I bumped a box with a card deck and it sent the cards flying, mixing them all up. The systems operator made me sort the cards by hand. It took me hours. It was a few months before I learned that they had a machine that would have done that for me automatically -- but the sysop had decided that I needed to learn a lesson (which I did, in fact, learn!)
Phoew that's cool! I have to say Opendoc always smelled wrong to me, so I stayed clear -- But I did implement the 'whose' descriptors in Applescript once, and I still have the scars to prove it :-)
I wrote a lot of "Apple Telecom 3.0" that ran on most "powerbooks" back in 1995+ or so, you know, modems, faxes, voice mails and all these very high tech stuff :-)
This is the Steve Jobs more young entrepreneurs need to know about and emulate. Not the "Jobs was an asshole and successful, therefor if I am an asshole I will also be successful" vision of Jobs. Or the "Jobs made pretty things and suckered people into paying too much for them" vision of Jobs.
Wow. I need to remember him taking that drink of water and giving himself time to respond. I respond way too quickly to things far too often. You can just see himself giving himself a second to collect himself. Brilliant.
I wonder if you can expand on this. As I get older, I find myself and my peers confronted with having to answer to younger, often less experienced, stakeholders. What kind of challenges have these presented for you and how have you adapted? What philosophy or attitude should us aging techies adopt as the gap between our peers widens?
Basically the only rule is: NOBODY (that much younger) will ever know how good or experienced you are. They just can't know. It's impossible for them to be in your shoes, but you CAN put yourself fairly easily in THEIR shoes and work from there...
Don't feel underused or misunderstood etc etc even if you blatantly are. You won't be able to change it anyway, just work with what you have, and use your remaining brain cells to do stuff they CAN'T do: for example learning the next big thing quicker than they will...
Ultimately, it's just tech. it comes, it goes... You've likely seem most of it before anyway...
Also, when you DO find the basket case of someone who is interacting with you like an ass and has no clue about your real value, remember that it's THESE GUYS failings that will ultimately keep you employed to make stuff work in the end :-)
I feel this does not address the question directly. I know passionate, good developers over 50, and they do have hard times on the free market (I can still use 'they' as I'm few years younger). It raises the question - when were you last time actively job hunting?
Thanks -- actually, interviewing is also a skill that is about as important as your tech background. I'm lucky to be gifted in the way I can convey my passion(s) (despite english not being my native language)
-- but people who don't will always struggle --
-- MORE so as they get older! --
So I know it sounds silly, but acting classes, talking in front of the mirror or whatever else might help a lot more than staring at a screen for a few days...
Can I ask, with 32 years in the business, are you in a management (or less technical) position now, or still 'in the trenches'? Is there a difference in the likelihood of ageism in management roles v developer roles?
I'm not in management -- my philosophy has always been to try to be the tree that stands outside the forest, not the one IN the forest. In management I might make a good manager, or perhaps a crap, or average one, and where is my edge there?
My guess is that I'd be pretty average or less, given my patience threshold -- I've worked with fantastic managers before, I'm not them. I don't think there's much of a problem of age discrimination in managements, unless it's for places like startups and so on where "people" NEEDS to "look cool and startupy".
I'm a pretty effective mentor tho, and I seriously enjoy that -- I think it's a lot more "my place" than trying to manage/herd cats :-)
I have a personal request... Please don't say "And, if you're ${SOME_DEMOGRAPHIC}, you should be ${SOME_LABEL}"
I understand what you are saying, but it doesn't leave room for someone like me. I got mu first dev job at 40, about 5 years ago. No matter how good I am, it's not possible for me to have more than 5 years of experience. And my age has nothing to do with how good I am.
I'm currently a sophomore in high school and I'm studying a low level language called Rust and I'd be interested in what you think about the language and what languages you have a lot of experience with.
Angular will pass, so will the next framework and react to, once you’ve been through a few of these frameworks, you’ll probably become less excited about investing your time into them if you have the opportunity to invest into something more fundamental, say functional or logic programming, data modelling or architecture skills.
Young devs are surprised when I say Git is only okay, look forward to the next SCM tool, they tend to think git will be the tool fir eternity, and surprised when I list if the 6 other tools I’ve gone through in my career ... so far!
Seriously, get down low, and go up a few notches gradually. I mean, learn SOME assembly of some sort. It doesn't really matter if you never WRITE assembly, but learn how a processor works at the very least. Pick whatever is you fancy, pick AVR (8 bits Atmel) that will give you more knowledge about how a processor works than 90% of most commercial programmers worldwide.
Oh and be fluent in C -- you might not like it, you might despise it, you might think whatever you might think of it, but you will find 10 examples of anything in C for any programming problem you have.
Basically it's like being able to read/write Ancient Egyptian when finding a stone with wierd symbols on in the desert.
Then do a small run on how compiler works (you know some assembly, and you know some C now to match) from then you can infer how an interpreter works, and even infer how a JIT works. You'll get to understand how the Javascript in your browser actually /works/ -- that's more than what 99.9999999999% of the population will ever know :-)
Then feel free to play with other languages, quite frankly, I'd suggest not getting enamoured with one in particular. Ultimately, they are all the same. Make sure you understand how a garbage collector works, how dynamic loading of libraries works, and more generally, how the operating systems works -- no need to get in details.
Just ^^^ THAT makes you more knowledgeable than many people throwing O-n's problems around the place.
Language-wise, assembly and C will allow you to excel at debugging. And debuging will make you earn a lot of money if you're interested, or will help you spending more time on developpement cycles.
For training, i think you should try some easy "security challenge" that exist on the web, especially those based on shell, network and assembly with no stack-protection. They are not usable in the "real world" (well, some shell exploit might still work tbh), but you will learn how to use debugging tools efficiently, as well as reading assembly. If you want to be a devops, those skills are very important imho.
I have the COBOL spec on my shelf.. but I refused that path. IBM hybrid codebase is seriously traumatizing. I don't know how it is in other companies though.
I've always thought that COBOL was insanely profitable too, however, I'm not seeing that in the Chicago area. I've seen hourly rates around $50 for COBOL/JCL positions, which is a lot less than other jobs.
I'm 51 and I have found that doing embedded and low-level programming seems to insulate me somewhat from age discrimination. I think in part that is because people expect programmers who work very close to the hardware, like me, to be geezers. Breadth of experience seems to help as well.
By comparison, trying to get a job in web or app development was a nightmare of interviewing with twenty-somethings in open plan offices, who gave me programming puzzles to solve on the spot, then turned on loud techno while I struggled to concentrate. Which honestly told me all I needed to know about what it would be like to work in their trendy consulting office.
But my opinion on all this might very well change if I lose this job... maybe there is an age "brick wall" at some point I won't be able to scale. I'm hoping not.
I see something similar in my industry. I work on embedded systems for industrial automation and in my mid 30's I still tend to be one of the younger ones in any group of coworkers/clients. In my case don't think this is issue of "insulation" but rather a difference between technical fields. Industrial automation is a long-game. Development projects can last a year or more, and client support can stretch into the 10s of years. Also, there is a lot of value in deep domain knowledge that takes years to develop.
I think age of the companies themselves comes into play. If a company is only a year old, nobody has had time to age with the company, almost nobody is going to have had a kid, been through major medical issues, ect, while working there. Even if an individual may have that kind of life experience, the company itself doesn't. I think it shows in the kind of environments they create and the type of people they tend to attract/want.
My academic background was Computer and Systems Engineering, with a focus on computer science and machine vision. I started with project/application-level work at a company that specializes in industrial machine vision then moved into embedded Linux development on the devices I had been doing project-level work with.
Unfortunately I couldn't really offer any useful advice here as it wasn't really a major transition for me. My academic background was Computer and Systems Engineering which includes embedded systems programming.
Everyone here is talking about their skillset, and I'm going to take another direction: appearance and interpersonal skills.
There is ageism, yes, but I think a deeper problem is reaction to peoples appearance. If you are late twenties concerned about age, then hide it, starting now.
* Always wear sunscreen when you are outside, regardless of race. It prevents skin aging, and you'll still tan and get Vitamin D regardless.
* Work out: lifting weights and doing cardio have differing goals and match up in interesting ways. Learn them. I do almost 100% pure heavy weight lifting, and I'm actually very thin, despite what I toss around.
* Make sure your clothes fit and look good. Go to a tailor and get one outfit made nice a year for interviews/on-sites (if working remotely) etc.
Taking care of yourself physically might not seem related to a lot of this, but people discriminate in a number of ways, and the more you take away, the better you might do. In addition, two of the above are general health things that you should be doing anyhow.
I forgot about interpersonal skills when I first finished writing this:
* Practice getting people talking about themselves. It's the best way to get people to think that you are interesting. I would argue it's the most important tool in my interpersonal skillset and I've met a ton of interesting people using it.
Professionalism both in terms of appearance and interaction are definitely helpful. And despite my ripping on SV stereotypes in other posts I actually adore IT. I'm delighted to come to the office every day because it's an opportunity to apply something I know, solve a problem or learn something new.
I recently changed roles after going back to my UNIX SA roots and working for the last few years in a front-line customer-facing support group; what people would call the ops side of devops. My boss was gutted to lose me as their last line of defense before escalating to Red Hat but what he and his boss miss the most (so they say) is my ability to remain cool under pressure and solve technical issues while managing bridges with MDs and EDs on the line.
Partially it was organizational authority (oh, they escalated to that guy) but it was also technical authority (oh, they escalated to the guy who solved the last major problem we had, and put in a SIP to make it never happen again) and partially it was managing the message and keeping it appropriate to the audience.
I realize this is an absurdly self-aggrandizing post but it's an honest assessment of beyond strictly technical ability how some people add value and my way of agreeing with the post above mine that interpersonal skills are paramount.
And to echo what others have said - keeping current is IMHO the key to keeping employable. I ran down the Red Hat Certified Architect track because my employer paid for it and it was a way to get my guys motivated to get it done too to better their skills. We have several more RHCAs as a result.
But I also spent the last year building k8s clusters and figuring out how to integrate kubernetes into my employer's systems and now I'm off extending terraform providers in go to the same end. It's fun as hell to think every day I shave off getting systems to my peers sooner is one more day they're productive that much faster. At the scale we work that's a huge lever. How can anyone not be excited about that regardless of age?
The comment you're replying to suggest something slightly different. It suggests that you do things that will minimize the chances that you will look older than you are.
While I don't think it's a cure any more than locking your door is a cure for theft, it does improve your chances of getting hired in the world we live in today.
Great advice, if we could all look younger when we want, we would! A lot of it depends on genetics. We'd all exercise more if our knees and backs weren't grinding down from years of use.
Any over 50 female developers care to respond to this "look younger" advice?
Not developers, but I work with a lot of professional women and basically every single one who is old enough to have gray hair, colors her hair to hide the gray.
I've posted about this before but Ginni Rometty, who is 61 years old, has perfect blond hair with no gray; she obviously has it colored. She is the CEO of IBM and feels the need to do this... that gives you a sense of the amount of pressure on professional women to look young.
I do understand that women have a different experience than men in tech, and everywhere for that matter, regardless of age. I'm sorry for this, I didn't create the situation, but I live in it. I want to be part of that solution. That's not what I'm going to discuss next, though.
Working out with a bad knees and back is not that hard, and is really common with runners who started in high school. Extremely common in fact, especially with road runners. I see these people in the gym all the time lifting weights because it's so low impact, while at the same time being a primary defense against osteoporosis. Nothing that you do can replace it and I would strongly encourage it after talking to your doctor.
I'm 60 and doing a combination of IT and app development work. I totally agree about the exercise part of this. Not so much to look younger (although it might help), but rather to have the energy and mobility of a younger person.
I agree with all this except the sunscreen part. I was under the impression that sunscreen can actually increase the chance of cancer. Furthermore, sunscreen does block vitamin-D. But, you don't need much (sunblock free) sun exposure to max out your vitamin-D absorption (just 12 minutes a day will do it).
On a side note, I do intermittent fasting and caloric restriction to hopefully reduce my rate of aging.
There is vast scientific evidence showing that using sunscreen reduces cancer risk. There was a study that showed it could cause increases, but when analyzed further (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1447210/) it showed that people who use sunscreen spend more time in the sun. While using sunscreen reduces your chances of getting cancer, there is nothing quite like avoiding the sun entirely for the vast majority of the day.
There are more recent studies like https://www.ncbi.nlm.nih.gov/pubmed/22086817, where if you go to the link, it actually points out the value in spending some time in the sun, getting some melanin and vitamin D development, which will fight a specific kind of skin cancer (CMM) that doesn't seem to be stopped by sunscreen, and might have a number of confounding factors.
The basics are that it's complicated, but that if you are spending time in the sun, you should be using sunscreen, but that you also need some sun, or something like that, who really knows.
This. I would also add hygiene to that list. Take extra care about your teeth, control the smell (hint: diet!), cut hair regulary, cut & clean nails, trim nosehair, earhair, cure acnes, clear blackheads. Don't be afraid of beautician.
If you haven't read it, pick up "How to Win Friends and Influence People" - it's the best book on interpersonal skills you're likely to find. One of the key points in there is that people love to talk about themselves. If you want to impress someone you've just met, start asking them questions about themselves, and be genuinely interested in what they have to say. When you part ways, that person is likely going to think you're a great conversationalist, even if you hardly said a word about yourself.
In other words, you're an interesting person if you're interested in them.
If you have difficulty making eye contact with people when you're speaking to them, practice it over and over again until it becomes natural. This was tough for me at first; I had to practice a lot. I tended to start the conversation making eye contact but then dropping my gaze, looking away, or glancing over the shoulder of the person I was speaking to.
Eye contact is a powerful thing, especially if you're trying to be persuasive. And persuasion is an important part of business, even if you're not in sales and even if you're a software developer.
I'm almost 66. Still working on active fun projects, and love what I do. Tips?
1. Be of value.
2. Always learn new things.
3. Seek opportunities in the code base (there are wins in there)
4. Keep learning. A repeat (see #2), and important.
5. Embrace new.
We work in an adapt or die industry; keep that in mind. And, if a shop discriminates about age, find a better shop.
I'm 60, and going strong. Most important is bring not only depth and breadth of knowledge but also wisdom to the work. As a graybeard, you're expected to add value because of your years. For example, when my office was going nuts about Kubernetes, devops, etc., it got me a raise to compare this new tech to the original Unix philosophy and point out some lessons learned in Unix design that would help with our containers. Everybody reinvents everything, every 5 or 10 years; use your history to add value, and you have a unique selling point that can't be duplicated.
The longer I'm in technology, the more I realize that there's a lot of value in just having been in the industry for a while and paying attention to what's going on. This is particularly relevant in troubleshooting. So much of being able to diagnose a problem quickly is just a result of having diagnosed a LOT of them before. Our brains are optimized for pattern matching, which is perfect for this - you start looking at something and go "You know, I've seen something like this before, where the server lost connectivity intermittently. I should look and see if the network drivers are out of date. Yep, that's the problem."
Ever deploy the same software to multiple servers, and it maddeningly behaves slightly differently on different servers, and you're not quite sure why?
This is the problem docker solves. Install exactly once, when you build the image. Then deploy the exact same code, down to the bit, as many times as you want, to as many servers as you want. Or quickly roll back to the Docker image for the previous version.
So this is how Docker helps you scale quickly and deploy as often as you want, with confidence.
Kubernetes, meh. Just some code for spinning up more or fewer Docker containers in an automated fashion. At least that's my impression, I haven't had to get my hands dirty with it yet.
One reason to use containers over VMs is that building, updating and extending containers is far easier and more maintainable than full virtual machines.
Containers give you the ability to layer the pieces you need on top of each other, so you are only responsible for the parts that you maintain. No need to rebuild an entire VM image every time one piece of the stack is updated.
Distribution of containers is also far more efficient than full virtual machines (especially important in a highly distributed environment).
I don't find the Docker API particularly intuitive. For my use-cases so far I've found it much simpler to spin up a VM if I want to duplicate a particular environment.
I think where Docker tends to shine is when you are operating at scale. For larger players using VMs to recreate a computing environment is expensive and eats into your bottom line. In such situations there's value in having some kind of tooling or API that partitions and simulates specific environments for processes running in the same kernel space. For better or for worse, in 2019, Docker is the best solution to this problem.
Comments like these are so infuriating! You get to shit on a huge community with zero reasoning, and zero consequences for being wrong.
Your negativity is only rewarded if somehow you're right (which is more a result of broken clock syndrome than anything else), so you and people like you are incentivized to keep sniping from afar.
Is there not some part of you deep down that looks back at the last decade of technology and feels "well I'm glad we're not doing things that way anymore, it was totally wrong for our situation"?
It just seems that that is constantly the case. We might well be another 3 or 4 decades away from software development technology hitting real maturity in terms of really streamlined tooling, frameworks, languages that help us work at the right level of abstraction at the fastest speed.
I don't think it's an entirely unwarranted comment. I think it's wise to constantly be thinking about and looking for "what awfulness are we accepting as a trade-off to get the great benefits of this particular way of configuring our process?"
By all means get into the hype, dive in, be excited. But don't forget to shit on yourself because you know the shit is coming at some point. If not in 5 years then in 10. It'll help you see it coming.
What actually ends up happening is people like you get left behind. Jobs become harder to get as you struggle to keep up, your ambition hardens into a self defensive ego shield, and you're stuck telling yourself that you were right to stop moving forward because things only got downhill from the moment you chose to stop learning.
The rest of us reap the benefits of innovation, standing in the sun, while you rot in some forgotten basement where the last self-hosted server rack at a fortune 10 company is kept. You'll have cursed yourself to the menial task of caring and feeding the pets surrounding you, the last vestiges of what you've tricked yourself into believing was a simpler, saner time.
Pessimism loses against the unyielding light of positivity. It may feel good to take shots from the shadows, but you're developing a hunched back, hiding from view.
What actually ends up happening is people like you make outlandish truth claims about the dispositions, aspirations and futures of strangers on the internet who they have no context for. And get it it oh so wrong.
People often misconstrue my pragmatic hyper-realism for pessimistic defeatism. It's nothing of the sort.
Nice rhetoric though! I really pictured the rotting corpse at the computer in the basement of the fortune 10 and partying on the beach with models and bottles making the promo video for Fyre festival. You really took me there.
The big companies self-host for legal reasons. It is easier to put up a legal fight with self-hosting. With other hosting, your data can be silently grabbed. You won't even know your data has been compromised.
It's also just cheaper and more reliable at that scale.
Hard to do in a comment, but the real value of containers, etc., is really microservices and micro-environments.
If you dig in, there are dozens of similarities to both the Unix shell kit and the Unix kernel design. The translatable wisdom starts with principles — do one thing well, smaller is better, and hugely, let data be the interface that assembles individual tools into a process / flowchart / blockchain / supply chain / etc ad nauseum. Let those principles guide your design and how your containers envelope the problem. Like I said, hard to explain in a post, but the gist is that “everything old is new again, except I invented it!”
Not me, but my father in law, located in the midwest, is a sql dev. He's about to retire in a few years, switched jobs a few years back. From what he tells me, they didn't care that he was going to retire soon, they needed his skillset.
Location probably matters. My (also midwest) company was foaming at the mouth for a competent Java/SAP developer (which, forgive me for being catty, seems like a technology only a 40+ yr old would fill) a few years ago, never found anybody, position was never filled.
The Midwest has a lot of age 50+ devs. Java and ASP.NET rule the land and it’s almost all B2B like hospitals and other large orgs that don’t want bleeding edge tech. For example, trying to find React devs in the Midwest proved difficult.
I'm 47, but my kids are reminding me 50 is coming soon!
I'm working as a web engineer — not a manager or even team lead — working remotely from the Midwest for a coastal company, and I'm pretty happy with it. All I can say is keep learning, be friendly, and delight in the energy of all you young people. I am not entirely sure why I have been hired, or even whether it was a good idea for my employer. So maybe stay humble too?
Maybe being remote prevents me from pinching the cheeks of adorable devs 25 years my junior. My advice: Don't pinch cheeks. Turns out Millennials don't like it. No matter how adorable those little non-grey-haired hackers are.
Anecdotally, the older I get, the less ambitious I get about my own career and the more interested in just helping out and doing things that make a difference. My self-discipline has become marginally better over the years, and my coding ability marginally worse. Definitely trending towards grandparent.
Things I especially like: interviewing, having a real-world impact, learning things, using cool new tools, helping out, justice.
Things I dislike: politics, jockeying for position.
Also, the whole "I've forgotten more than you've ever known about this field" feels true. But honestly thank goodness you didn't have to learn it, because a lot of it is irrelevant now.
Could you share some examples of the things you learned but then became irrelevant? I wonder if we could find some pattern to help people avoid learning modern stuff that will have the same fate.
Off the top of my head, things I never implement or use anymore:
* socket listeners
* line drawing
* explicit memory management
* old APIs and libraries
* Perl
* Assembly
And things I rarely use:
* Semaphores & other threading primitives
* XML
* C/C++
Now, knowing these sometimes helps, but the amount of time I spent on them probably doesn't justify the benefit aside from the fact that it was necessary at the time.
And somebody is doing these now — I just find I don't need to, as it's always handled somewhere below the abstraction layers where I work.
An equally interesting list would be the things I use now that didn't exist when I graduated from college in 1996.
There's a good course on Pluralsight about learning management strategy. It basically boils down to considering the expected half-life of the knowledge and then apportioning time based on that and stratifying the learning.
I can't recall the specifics but it's something like
10% deep-diving on long-lived fundamentals
25% going deep on your core stack you will be using for the foreseeable future
The rest on the what's in front of you + what's coming next
There is a technology called hair coloring, stack it with a hoodie and some well fitted slacks, roll up one of the ankle cuffs a bit. Talk like you've exited a startup and are just working for fun, or something to keep you interested, but not like you actually have to.
Agree 100%, it has blown me away my whole life how engineers downplay marketing and [product|personal] presentation in spite of the reams of data suggesting it has some of the best ROI possible of anything you can spend your time improving.
Do you want to make more money, get more connections, have everyone like you more and treat you better? It's as simple as buying some nicer shirts, getting regular haircuts, and eating better (which has its own host of plusses).
Some programmers are 55 and really good. They also have stains on their t-shirts, are overweight, and act morose all the time. In a perfect world this wouldn't matter for a job interview, but you are not interviewing or operating for a job in a perfect world.
In my experience, the opposite of the aforementioned 50-something hoodie wearer would be someone with a Oxford shirt and jacket, ie well-dressed, but not hip. And they might dress up similarly in their free time, when they're not with their co-workers. So the "Han Shot First" tee might be as much an unwanted disguise as the "business casual" dress code the startup bros avoid.
I'm not saying that one shouldn't adapt a bit, but dyed hair and "How do you do, fellow kids" clothes overshoot the goal by a good bit.
I often tell people (particularly younger ones, college age-ish) that one of the best ways to stand out among their peers is to learn how to dress. You don't have to wear a three piece suit, but wear clothes that are clean, fit your body (and body type), and look nice. This applies regardless of company dress code. If it's jeans, then wear nice jeans that aren't wrinkly or full of holes. Pair it with a nice shirt and shoes, and you'll look better than 90% of the people around you. If your job calls for something dressier, buy the best quality stuff you can afford (it will last longer), and get it tailored so that it fits you.
This seems like a minor thing, but assuming you're not incompetent, someone who knows how to dress themselves will be perceived better by those whose opinions matter.
The key is to match the general attire of the people around you, but do it a bit nicer. If everyone is wearing shorts and jeans, don't wear a suit to work.
Edit: This advice isn't limited to young people, there are plenty of older people that need to learn how to dress themselves. As a general rule, though, the younger generation dresses a lot more casually than I did at their age, and many don't seem to have been taught when an occasion calls for dressing a little nicer.
That’s an ok strategy if you actually want to end up in a loud open office, “crushing it” with 20-something tech ‘bros, failing fast and playing hard. However, I’d guess that most people will see past the “How do you do, fellow kids” disguise.
Embrace the gray beard, find one of those companies that welcomes us geezers, and clearly articulate how our decades of experience translates to business value.
Take Dan Lyons' book about his time at Hubspot. In what universe was that going to end well? (Leaving aside the question of whether it was ever intended to end well by all involved.)
Clearly there are some companies more open to more senior people in various roles. At some level, the path of least resistance at least is to accept that.
This seems a bit tongue in cheek, but there is some truth to it. You have to at least be able to seem like someone the 20-somethings can hang out with without feeling awkward. This is less about appearance than attitude. If you are enthusiastic and keep up with the youth culture a bit, you can probably fit in ok.
I'm 49 and have gray hair, and have since I was in my mid 30's, but I've not had any trouble getting work when I had to (or wanted to) change jobs. That said, I dress fairly youthfully (in typical Silicon Valley jeans/untucked shirt) and am told I don't look my age.
To all the haters, yes it was half tongue in cheek..
Forget about you 50 year olds out there, I was the stupid 22 year old wearing a suit out of university.. didn’t get any offers till I put on a scandinavian accent and dressed like a hipster.
I totally understand your frustration and that looks matter even if just subconsciously to everyone is quite the shitty paradigm to navigate. Humans being mimetic creatures results in all sorts of weird unfairness and idiocy.
However when it comes to advice, are we interviewing for a job in an imaginary world, or the real one?
If it's the real world, this is great advice. Just like having a marketing team instead of thinking every product will sell itself is great advice that almost every company in existence learns at some point or another.
I'm in my mid-50s and it has not caused a career problem for me. I don't do anything special about my age.
What I do is what I've done from the very start of my career over 30 years ago: I am constantly learning and keeping my skills current. That's not something I do to ensure employability, it's because I am genuinely into this stuff. I produce software for a living, and I also produce software as one of my hobbies. There's always something new and fascinating to tackle, whether it's in the workplace or not.
My professional focus has become networking and security, but my skillset is far broader than that, so I don't call myself a "specialist" at all. I'm just an experienced engineer. I don't know how to answer the tech stack question, because I use a very wide variety of tech stacks, operating systems, and platforms both in the workplace and at home.
Have I been discriminated against because of age? I honestly don't know, but I have no problem getting excellent jobs, so if it's happened, it doesn't matter.
I determine if a company is right for me in two steps --- first, before I decide to apply, I research the company to learn its history, what prior employees think of it, what technologies it uses, etc. If I feel good about or am still interested in the company after that, I'll apply.
When I interview, I don't look at it as them interviewing me. It's exactly the other way around -- I'm interviewing them. I pay close attention to what they say (not their sales pitch, but what sorts of questions they ask), the physical environment, and I pay attention to all the employees that I can spot who aren't on the team that is interviewing me. Do they look happy, angry, etc? My experience is that whatever they're feeling is likely to be what I'll be feeling if I take the job.
specialty is assembler, firmware and hardware prototyping.
I usually work on contract. The thing with high level stuff is that it is always changing face but never goes past the fact that it all boils down to low level operation of digital devices. If you can work at the level that allows high level language to operate then you have real power and controll, but not the convenience of ready made assembler routines, you have to roll your own firmware, and your own assembler macros. If you are a bonafide OS engineer, firmware engineer, and chip engineer, everyone else is riding your coattails, and you have direct knowledge of how a computer or any other sort of object code device functions.
{adde} after skimming through the comments it helps if you already have a code library of your own. You should be equivalent to a tradesperson with a full set of tools appropriate to the job demands. if you are re-writing code to implement a UART for example thats like an electrician constantly manufacturing a screwdriver on the job.
If you can write a piece of code from memory thats good, but proper preparation before hand is a mark of experience.
What do you mean stay up to date? From my experience I've noticed that if they dig deep and understand the underlying fundamental concepts of the trade, there's not many programming problems, platforms, or languages, that couldn't be learned in the span of a few days. The longer I go, the more I realize that everything that seems new and fresh was most likely already invented in some capacity before I even wrote my first line of code. I completely understand if they are non flexible and still choosing out of date frameworks or libraries that aren't necessarily used any more, however the ability to compare and contrast frameworks and languages and choose the one based on a deep understanding of the underlying implications seems to me more important than being fluent in the latest platforms.
Why would I hire someone who didn’t keep their skills up to date and didn’t show any desire to do so when I can hire someone who can hit the ground running from day one?
I’m 45 and have religiously kept my resume “buzzword” compliant.
You can’t learn best practices, frameworks, etc in a few days. Yes things were already invented, but if you don’t know the ecosystem you’ll end up reinventing the wheel badly.
I'm 57 and seen plenty of age discrimination, almost exclusively in big companies. Smaller companies don't seem as prone to the practice. Stay current, change as needed. After 35 years of software only, spent the last two years going back to Electrical Engineering roots and developed 3 circuit boards from scratch and developed software for the boards. Large companies that cut solely on age deserve the loss of wisdom and experience.
I don't really think the tech stack matters. I'm a dotnet guy for the most part and have been gainfully employed from it for 20 years, hell going back to vb-6, com etc before dotnet.
I get around age discrimination by looking a lot younger than I am. I achieve this by dressing current which doesn't mean trendy, just don't wear that same old sweater to work you've had for 10 years, keep it for family time. New clothes go a long way in this situation. Also don't over dress, that's a huge give-away so no suits.
I also shave my head, but if you aren't losing your locks, good for you though you'll want to consider dying it.
I also workout a ton, eat well/little (restricted calories, etc),take a ton of vits and sups including metformin, NMN and resveratrol to name a few of the more useful and/or exotic items. I thinking being lean, fit and strong also goes a long way toward conveying both youth and confidence that employers are naturally drawn toward.
I mean look when you've been coding for 30 years the problem isn't your abilities, it's how you are perceived by a potential employer.
> I thinking being lean, fit and strong also goes a long way toward conveying both youth and confidence that employers are naturally drawn toward.
This is my experience as well. I'm a lifelong amateur athlete and I don't wear sloppy clothing. I've seen the difference in treatment with other guys my age (49) firsthand. It's not about looking younger necessarily, just looking like you aren't falling apart. For whatever reason, some people correlate physical appearance with ability.
I'm only in my early 30s but I have loved having old timers on my teams. They tend to have abandoned their illusory superiority (and super low estimates) that young devs exhibit so frequently, which really grounds a team. And talking tech with them is always an adventure instead of a sports team argument about which framework is best.
Age 53. At my last job, I was doing React front end work. When I argued against Redux, Coffeescript and Typescript because our app didn't need them, I was told I wasn't a team player and that I wouldn't succeed in that company.
Don't swim against the river. If you're the only older person and not the leader or person being looked up to for direction. Don't buck the trend and go against the river, you will only make yourself visible.
Valid point. Ageism can also include people thinking your advice is an unwillingness to change because of age ("old dogs don't learn new tricks" mentality), versus a young "opinionated" or "emotional" worker.
Start your own freelancer/consultant business. Businesses will pay you a lot of money for your knowledge and wisdom. This is what I did 9 years ago (I'm 43 now) and I never looked back.
My ex-employer said that if I want to have a better pay, I'll had to have a management job. I'm not interested AT ALL about having a management job. I LOVE programming, system engineering, ...
This is why I started my own "one-man" freelancer business : I do what I want (and not what my boss want), when I want, ...
Now, I work for MY dreams and not the dreams of another person ;)
Don't be afraid to learn new things. I started my IT career almost 20 years ago doing Struts and later Spring MVC. I felt a bit stuck in the enterprise java realm, but I branched out to Pylons and then Spring Boot. Now I'm doing Laravel/Vue.js and I have to say it's a breeze having worked with MVC frameworks for all these years. If you have a hot skill, which reactive/SPA apps seems to be these days, you'll always be in demand.
Started my own mobile app company. B2C is a rough market but I love not dealing with customers, sales people, etc. I do hope to shift into some B2B webapps instead.
Also now working on another startup with friends roughly my age and have a couple other startups as options there if I wanted to take on more.
My specialty is pretty much being a jack of all trades and being able to learn new ones quickly. In some ways it sucks because there isn't any one stack that I eat, sleep, and breathe, but on a typical day I do some golang backend, js/html/webgl frontend, obj-c iOS, maybe some python, linux sysadmin, and some graphic design. The benefit is that it means not needing to go find and hire/contract another resource.
Keep learning new things. I know many people my age that spend 10+ years on a single tech stack and never really learned anything new. Then suddenly they're out of work and realize the demand for C99 on Solaris isn't that high. Go to Meetups, conferences, webinars. Take on side projects. Mentor students.
It helps that I look a bit younger than my age. I honestly probably get more discrimination due to my weight. Working on that, but if you can maintain your fitness and the appearance of boundless energy, it overcomes a good bit of age.
There are myriad ways to pull this off but more than a few them require luck of some kind. A particular technology, a particular company even a particular manager.
However a recent study shows that, in the US at least, 55% of all workers are laid off before they reach their "natural retirement age". So you need to plan ahead.
Over the past twenty years the demand for technical talent has changed a lot. In particular, the demand has increased a lot at small and medium sized companies due to their use of the internet.
So a useful outline of a career now is, start at a large company and learn the ropes, then move away from niche technologies to more generally in demand technologies like LAMP for example. By the time you hit 35 years old you should be starting to angle for more senior jobs at smaller companies.
Software development now for smaller firms is starting to look more like law and accounting practices. Your experience there is now an advantage since you will understand more of the complete corporate needs in addtion to your tech chops. Whereas if you stay and a larger company (cough IBM) you're now just too expensive for you niche skill set.
Not one myself but over the years I have seen older engineers who have published a book on a popular technical subject or have had open source contributions in widely used projects are seldom discriminated against!
I'm over 50. I haven't encountered any age discrimination. Then again I don't go looking for it. I'm sure people make judgements about me based on my age and appearance. That's just life.
To the folks posting comments suggesting they are 50+ and still going strong or started coding when they were children: kudos to you. However, I think you represent the minority.
Development shouldn't be a 'King of the Mountain' contest, but it is. Here's my story: I have commercial experience in C, Java, Visual Basic, MUMPS/M/Cache and Node.js. I've worked in Healthcare ( A/R, Laboratory reporting & instrument data acquisition ), Integration Space (e.g. webMethods), US defense space. I've worked in a 'tools' team delivering components used by application development teams.
On the side, I've written an open source project on Github, I've attended many meetups in recent years - and user group meetings before the Internet was a thing.
My point, is that I am very experienced. I've never had a bad review, I've worked for at least 15 different managers, I've worked at a few companies multiple times.
Yet, I still struggle daily to hang on to the thing I love which is to write code. From my perspective, this is a real problem. It seems impossible to simply be a developer for your career because the pressure from the industry is to cut developer labor costs.
Btw, I am currently an Senior Architect. I've held many titles since 1988 including Princial Architect and Junior Programmer Trainee. ( I got into software after starting off as a lab technician in healthcare. )
The only people I know who are my age are those folks who truly are kings of their mountain. This is not what I envisioned. I helped raise a large family ( 5 children ), but I am constantly working in my head - regardless of whether I am at the keyboard or not.)
This is not what I expected; however, I've been paid very well, so I've been lucky - or my family has.
I'm 61. My solution: keep up technically and choose a mainstream topic valued/needed by your company and stay near cutting edge in it (at least relative to the others working there). And develop other skills that are in short supply. Choose subject areas that leverage experience over inexperience: like regulatory compliance, subject matter domain knowledge, knowing what tactics are best with difficult clients or problematic target areas.
Some general skills that I've found help... Excel at speaking (be concise, organized, prioritized, relevant, insightful). Excel at writing and editing (tech-related communication seems notoriously poor at most companies). Excel at presenting (again, too often there's lots of vagaries and hand waving).
If you come across as sharp and tuned in, I've found that it's almost impossible for others to dismiss you. That is, unless they're idiots. So make sure you're not surrounded by idiots. That's rule #1.
Die your hair and adopt the “lingo” of the cool dudes.
Like double barrel your boss with your fingers and wink and say “I like your style” no matter what he says.
Or if you agree with a colleague you say “fo shizzle” to gain their respect.
Refuse to program in anything old. All code has to be Haskell or whatever and throw in a neural network. If you can do that in a container you’re home free.
10 years ago I was laid off. I had just turned 40, and was living in an area that didn't have the most robust job market (plus at the time the hiring outlook was terrible in general due to the financial crisis).
After looking locally to no avail... I added a new strategy: apply to various federal government jobs. Benefits include stability (although with the recent furlough maybe that isn't 100% rock solid) and no possibility of the job being outsourced/offshored, etc.
I'm 50 now, been a software developer for 25 years, still working for the government, and still enjoying it. Projects are varied, I have reasonable latitude in the programming I do (job is ~50% coding, ~50% other stuff), managers understand work/life balance. Yes I don't get stock options out the wazoo and other Silicon Valley style perks but I also have other hobbies and time to enjoy them. There are tradeoffs but overall I'm glad I did it.
Unfortunately a larger and larger part of federal staff are contractors, including most younger people I know who work for the Feds. Due to the misguided attempts of Congress to reduce spending, it's much easier to hire a contractor with 50% (at least) overhead rather than just hire them directly. Heck, a guy I know used to be a federal hydrogeologist. Worked in a gov't office on a permanent basis, was supervised by government employees, etc. He literally just received his paychecks and talked to his de jure boss twice a year. For that, the contracting company actually charged more than his salary in overhead.
Regarding the topic of career longevity as a software engineer:
Focus on combining your software engineering skills with delivering value in a specific, core competency.
That is to say:
Good software engineers tend to focus on being good at programming, and all of the details that venture entails (e.g., mastery of specific languages, knowledge of specific ways of operating in a given framework, IDE, or tool, etc.).
Better software engineers are capable of all of the preceding, plus the ability to apply a deeper level of problem-solving ability that has been laser-focused by their experience in the art.
Superlative software engineers are capable of all of the preceding, plus the ability to leverage those skills to deliver value as a Subject Matter Expert (SME) in a specific domain.
I believe that you have to be more than just a programmer if you want to maximize your career's longevity, and its associated compensation package.
To have longevity in a technical discipline you need to do one of two things:
1) choose a field that changes very slowly, or not at all, and become an expert in it; or
2) work in a quick changing field, but be prepared to learn quickly and compete with younger workers (means no wage premium just for seniority)
When it comes to 1), the best fields are ones where either hardware or regulatory issues slow evolution. Examples: embedded systems programming, working on highly regulated systems for the aviation, medical, or automobile industry.
Finally, and its not really in my list, but you could always create your own product or service. That's a sure way to protect your income against age prejudice. Nobody cares what age the developer of their software is ... they just want to know it works.
I'm relatively young, but it baffles me that there's age discrimination is an issue. Do companies think I won't like working with someone who's significantly older than me? What's the issue?
This is a bit of rhetorical question--I get that there are stereotypes and companies want to build young, hip teams, but personally I find it short-sighted and naive. I'd rather be on a diverse team, age included. If I go for an interview and see that everyone is a white male in the late twenties/early thirties, I'm going to be pretty disappointed no matter how many hipster toys they've got in the lobby. It's a sign that corporate politics and HR are going to be problematic.
There's another issue that I noticed when I was a hiring manager. Some people find it difficult to interview and manage people who are older and more experienced than them. Some feel uncomfortable giving orders to people who are their parents' age. Others feel uncomfortable with people who are much more experienced, maybe smarter than them. A young company with young founders and managers will tend to hire younger people more like themselves.
Hi zenexer - I'm youngish, fit, and present well. Unfortunately, my hair is greying AND thinning. For years, interviewers have heard my responses while viewing my bare crown. (Barbers told me for many years, "You'll never be bald," as they used thinning shears).
Last week a hiring manager said, before introductions, before shaking hands, "This job is for 22 year olds just out of college." He shut the door, literally, seconds after.
Consider viewing your HR contacts on LinkedIn then view the "also viewed" profiles. Notice any similarities? These decision makers determine whom you will see when you interview. Thank you for wanting to see different when you visit a company.
51 here. To be completely honest, I personally haven't (yet) really felt any effects of ageism when it comes to work. Both in the past two years as a contractor, and before that as a perm, I have had more job opportunities than I could handle.
I'm 57. I've seen plenty of age discrimination, but primarily at large companies. Smaller companies don't seem to be nearly as prone to cutting people purely by age. Regardless of company stay current and maintain new skills. After 35 years of only software development, went back to my Electrical Engineering roots and doing hardware development and have developed 3 different boards and wrote the software stack for the boards. Companies that cut solely on age deserve the loss of good experience; their mistake.
Except that you don't have to wait until 59 1/2 to withdraw it without penalties. You can start at 55 or earlier using the "Rule of 55" or SEPP exception depending on the retirement plan that you want to withdraw from.
I'm lucky enough to look young for my age, so I leave my early jobs off my resume, and don't put my graduation year on there.
While I don't exactly hide the fact that I'm in my late 40s, I do find myself avoiding some discussions at work that would show my age, like talking about my older experiences or making pop culture references from the '80s or '90s.
Yes, you can talk about making yourself so useful that age doesn't matter, etc., but the truth is that age discrimination is often an unconscious bias, and I just find it easier to "pass" as younger than to spend my energy trying to overcome it.
Of course I focus mostly on just being good at what I do. There are benefits to age. Experience and knowledge, of course, but hopefully also wisdom and temperament.
If there's one thing I'd like people to take away from this thread, particularly people in their 20s, it's to re-examine your unconscious biases about age. How often have you assumed something about a person because they were older than you, and what can you do to overcome that and judge them on their merits instead?
>How often have you assumed something about a person because they were older than you, and what can you do to overcome that and judge them on their merits instead?
I pretty much always think they are 'smarter' than me.
The only issue I've had with older folks is that they often say 'not my job'.
> The only issue I've had with older folks is that they often say 'not my job'.
Which, from my experience, is not a bad thing. It's often a sign of someone who recognizes that meeting everyones else's expectations at the cost of their job expectations is short sighted and the equivalent of shooting yourself in the foot.
And rarely does anyone have enough time to even meet their personal job expectations.
There are those whom are just lazy and only want to contribute the least amount possible, but I think you'll find that's not limited to older folks.
There are two sides of "not my job." There is the Art of Saying No where you protect your deliverables, and there is the non-team player who wont help others.
I've had a similar bias. I (unconsciously) assumed that because a cayndidate was older, they naturally have much more experience and should be super impressive. That is not fair. Evaluate them in comparison to the job requirements and the applicant pool, and don't give them a higher bar just because you imagine they should more awesome.
There are few teams that recognize you purely for what you bring to the table, you could be the baddest ass dev on the planet, but as a gray hair you may not be accepted, or a "culture fit" as is the universal excuse nowadays for "I don't like her/him". Truth be told most Millenials don't want to go have beers with someone that reminds them of their parent's whose basement that might still be living in, and we know that life in tech is immersive, your friends are your co-workers in many of these tech gulches.
The there is the idea that your new boss may be threatened by your skillet, which opens yet a whole other can o' worms. Age discrimination in the SF Bay Area is rampant, no one will ever admit it, but it's here. It's like gravity, one denies its existence at one's own peril. So get your botox, your skinny red jeans and your converse or whatever they're wearing these days - don't forget to ink up - even if they're temporaries :)
Late 50's. React/Redux developer. Always learn new things. Simply ask other developers if a company has a reputation to hire people my age. Most have a reputation to only hire people out of college or a few years older. I just don't waste my time with those companies. Look for small companies which have several people who look like me.
I'm 57. A self taught generalist who's been paid to do this since the early 80's
What keeps me going? There is just so much interesting stuff going on with computers - how can you ever get bored :)
There are a lot of people better than me, also younger than me, but I can still knock out solid code. I think not thinking I have mastered something keeps me going. There is massive churn in languages and technologies, all my COBOL / FCS / IBM Mainframes skills are consigned to the dumpster but they help me learn new things like C / CP/M / MSDOS / Assembler. Which got dumped for Unix (not Linux) / Macintosh (pre OSX) / Prolog / Lisp / C++
I'm now doing Python and Ruby on Rails and learning Nim and Virtual Reality
What a time to be alive!
Age discrimination - can't say I've noticed it but I've always expected to be judged by my abilities not may age. Perhaps I've been lucky
I work at a high (senior) level as a (Javascript) developer and I'm 48. I'm not aware of being discriminated against - I never have trouble finding work (and I'm a contractor so I change jobs frequently). Perhaps that is part of it: it doesn't cross my mind that I might be discriminated against; it doesn't cross my mind to treat anyone younger than me different from anyone else. So my attitude to people is open: I am not defensive or resentful. I'm in the UK which has, as far as I can tell, less of an ageism problem than the US.
If I'm honest I'm probably a little bit slower mentally with very challenging, complex problems than I was 15 years ago. But, I work with some of the highest paid people in the industry and I have never once thought to myself that I was out of my depth or slow technically compared to my colleagues - regardless of their age.
And there are real, big advantages to age / experience:
- Technically I have great breadth of experience: I'm (mainly) a front end developer but I've worked commercially in Node, C++, Java and PHP; I'm confident with server + database administration and dev-ops, complex application architecture and scaling. I'm the one that the senior managers turn to when they have problems / doubts / questions because I solve problems / answer questions for them - regardless of the tech stack.
- I'm more mature emotionally and have far better interpersonal skills and experience, meaning I am far more effective and pleasant to be with in a team. This is a huge (way more important than technical skills) thing - particularly in today's work climate where it is not acceptable to be 'toxic'. I am experienced about getting my ideas across and giving feedback without being an asshole; I am unfazed if people are stressing out / blaming / ignoring / not listening to me. I am not egotistical, insecure or emotional and I have enough experience with office politics to know what is happening and what people are about.
Side questions if anybody answers this. How did you get your first job industry? I imagine corporation weren’t like there are now and thought of code as black magic.
This made me laugh. It wasn't the Dark Ages. They thought of code as code. I'm in my 50's, and I took my first programming class in high school in 1980. When I entered college a few years later, most of my engineering classmates had prior experience programming. It really wasn't considered anything mysterious or magical.
Late ‘90s, and it was just as hard as today. Applied to dozens of companies as a Senior in undergrad. Similar 1 on 20 response rate as today. I remember the interview—typical “solve this trivial thing in a language of your choice.” Most college kids picked java. I picked x86 assembly and nailed it. In think that impressed someone.
Heh. The main shareware program I sold for a number of years was written in x86 assembler. The horror. The horror. :-) I was just reminded this afternoon when someone sent me a message on company chat asking if I was the person who wrote said program.
Be better than the competition. If a company looks at age they probably are losing good people anyway. I don't worry about it.
I do Scala/Spark. I ask if they respect personal time. If they don't they are probably poorly managed.
I'm in the Toronto tech startup scene and I haven't really exexperienced age discrimination at a company level. Maybe at an individual level but not that I've noticed. I specialize in backent, SRE, and devops.
Not really. I get a lot of spam from recruiters. I also get feeler from people I have worked with before. Last time I look for work, I got multiple job offers after one week. San Francisco's tech job market is hot.
I am in ny early 30s and working on post graduate research at night. I do it because it is interesting but also to be employable in a academic context later in my life.
My funnel is targeted for specific startup cofounders having trouble finding expert android devs...expert in the sense that
they as either the tech cofounder or the creative cofounder already know that their android app should be on kotlin and using redux not MVI or MVVM.
Basically building the demo apps show them and start the
discussion.
Here's the thing, it's about your value proposition (what are you offering).
All things equal, how many days can you work without sleep? How much do you need to get paid to do the job?
Age is just a coincidental number that correlates (doesn't cause) to number being able to program for days on end without suffering increasing consequences, and getting a programming job for $15 / hr not being suitable to handle a mortgage, truck payment, kids braces, and the things that come with the higher age number.
So, if you are starting out at 40 and someone is competing for a beginner job at 18, they are going to be the obvious choice because 1) they are typically more of an open book, and 2) you can pay them $15 / hr to get the same work that you would need to charge $40/hr to do.
That being said. The other side of it is if you have been programming since you were 7 and are now 42 with 20 solid years of professional experience competing with Joe Youngster who wrote his first line of code last year and has been to a programming boot camp.
Part of the issues are that you still have the stigma of 1) not being able to sacrifice time/sleep for code, 2) are more expensive.
Both of which are accurate.
However, if you are competing for a job that an 18 year old qualifies for after 20 years of experience, something is amiss.
I've seen this MANY times and am guilty of it myself, where a person will spend years spinning their wheels and not actually increasing their skills. It happens to a lot of people. You could get the same year of experience 20 times over (there was a good article written about that, good read, don't have the link handy). So "20 years of experience" boils down to 1 year of experience that you have practiced 20 times over.
After 20 years, younger programmers should not be able to compete with you. Not because they can't write code as well as you. It has nothing to do with that.
But the experience should have taught you and made second-nature all the design patterns, all the best practices, all the security tricks, all the devops.
An 18 yo can code, but they can't build a palace out of code yet (and if they can, they are typically swept up quickly). It takes years to go from knowing how to lay a brick to how to design a brick building to never crumble even if someone is beating it with a fallen tree.
While age descrimination exists (the concept of a senior developer is iffy sometimes), and I experienced it for the first time last year when someone said "no thanks" and hung up when they asked how any years experience I have; it doesn't exist when you are actually shooting for jobs that require 20 legitimate years of experience.
Some programmers settle back knowing they could code the world, but don't actually do it. Or code something twice as fast. Or 5 times as solid. Or with 567% less bugs.
What makes the 20 year experience you better than the 19 year experience you?
If you cannot sell that one year of difference, then it's not age discrimination, it's skill discrimination.
And to answer your actual questions.... :-D
What is your stack: After 21 years, I've work in .Net/Java/Node.js/LAMP(erl&HP) stacks plus tinkered with others. Now I do application security.
How have you gotten around age discrimination: When I've been discriminated against, I feel like I dodged a bullet, because who would want to work with / for someone that judges the content of a book by the wear of the spine?
How do you suss out whether a company is right for you? I focus on team and personal questions when I interview a company. What's the team culture, do they support members teaching each other, do they foster speaking at conferences, etc. The more information flow between developers and the industry the better, generally. That indicates a supportive culture rather than a competitive culture. Ask to speak to people you will be working with. "Their references".
I ask personal questions of interviewers. What is their next skill they are going to work on? What was the last issue they tackled that really taught them something new? Do they seem themselves with this company in 10 years? What was the last conference they attended? Was that on their own time? When was the last time they had an opportunity to speak at a conference?
Don't worry about getting into personal questions relating to their job.
I've found that tells me more (not necessarily their answers, but also how they answer) about the culture than the standard shpiels.
It's ALL about culture. A crap boss and crap co-workers will never be made for with good pay or high-skills in the long run.
Sure but it's not the only descrimination my friend who is also 50 faced.
She's been working in tech companies for long and it's sad that some 20 somethings call her MILF when she's not around.
Age descrimination is a very small thing in the grand scheme of things, so she said she doesn't feel much descriminated as age is a proxy for experience if you are good with what you do.
You're probably a young'n. This is what everybody thinks until they hit the point in their life where they realize there is more to life than just work (family, friends, hobbies, etc). You'll be complaining soon enough.
In some sense, that isn’t age discrimination by the employer, but you no longer being willing to be exploited.
It would be age discrimination if employers wouldn’t even invite you for an interview, thinking “(s)he’s 50, so (s)he must be wise enough not to fall for the crap story we tell the gullible”.
As long as there are employers where work-life balance is a better match with what you want out of life, I wouldn’t worry about it. And I think there are, certainly in Europe.
I'm pretty sure you don't understand how ageism works. Or racism, sexism or any other 'ism for that matter. Because based on your logic, these problems don't exist anymore in the job marketplace.
Yep, it's far more insidious than just "it's a fairly-land meritocracy" that you believe when you're younger. I have been responsible for hiring a lot of people, and I catch myself judging older candidates before they've said anything: and I'm an old bastard myself!
Precisely. I'm more valuable than someone with 10 years of experience. I produce working code faster (even if I don't work as many hours). I produce better designs. I produce fewer bugs. I'm worth more.
If you are trying to hire me, and you want to pay me like I have 10 years of experience rather than like I have 30, you just selected yourself out as a candidate for my services.
I will disagree with the parent on one thing: It can take a while to find a new job - months instead of weeks. The market for people like me is kind of thin. On the other hand, the supply is thin, too. If you need someone like me, you don't just want to hire two 3-to-5-years people to try to replace me.
And to answer part of the original question: I'm in embedded systems. I don't know if my answers work in web programming.
I think modern embedded systems has a bias built in. To be productive, you have to be proficient in a _LOT_ of topics, many of which are not easy to come by experience wise. This tends to bias towards high experience.
Although what you say is mean. It is somewhat true. A lot of older people stay at one company because of stability. When it comes time to switch, because they've spent their 40s in one company, they haven't gained new skills and they get bad at interviewing.
Essentially what happens is you have a senior title but your skills have languished to the point where you are essentially a junior with expert knowledge about something that's obsolete. That and your mind deteriorates somewhat when you are older if you don't keep exercising it.
I think the fix is to bounce around to many companies, constantly even in your 40s as if you were in your 20s. You lose the stability but you maintain a fresh skillset.
Young people take note! I know many successful older SW engineers and they all have done this.
Ignore the fad tech, get a good, serious, bulletproof base in actual computer science -- I mean, LOW LEVEL stuff--, that will help you learn ANYTHING computer related quickly, and continue surfing that wave with whatever tech you fancy might actually be useful to make you sellable in the future...
And don't hesitate to drop stuff you invested a lot in. If it's no longer trendy/selling, just drop it like an old sock and spend time updating yourself. I'm a frigging EXPERT in dozens of stuff that would make people smile now (those who are old enough ;-))
And, if you're that old, you should be GOOD. Not just nerdy and opinionated, you should be able to demonstrate being curious, capacity to change, to work with younger guys as a 1:1 basis -- and use that tons of experience of yours in new fields.
I'm lucky, I manage to 'channel' that stuff because I'm probably still more passionate about my job most people will ever be, despite the pile of years, but I've never been 'age discriminated' before. Apart from when I was 18 and winging it a bit ;-)