> My advice to CS majors is that you need to make enough to retire by 35 as that's when you stand a good chance of being tossed on the trash heap.
I agree with this. CS is a GREAT career when you're in your mid 20's, making 6 figures with just a bachelors, while your cohorts are still taking on even more loans in graduate school or earning a fraction of your salary down in the bottom rungs of the corporate ladder.
The trick is to live as frugally as you can while making the big bucks throughout your 20s and early 30s, invest it, and plan to never touch it. With some market luck, you can pretty much guarantee a safe retirement by late 50's or early 60s, even if you decide (or are forced) to change careers to something less lucrative, and especially if (very likely) your salary won't grow much faster than inflation (and less than COL increases) once you're past 35. This is in contrast, BTW, to most other professionals like lawyers, doctors, academics, etc. who tend to earn more and more each year until mid 50's.
Because the reality is that most of us are not going to be the top 10% who will be courted by FAANGS well into our 40's, with offers of $500K plus equity, to lead projects.
Instead, you're going to hit a glass ceiling in your mid 30's and unless you move to management or start your own consultancy, you're going to be competing with 28 year olds who can write CRUD apps in the shiny new frameworks better than you at 2/3 the salary. Which is why many corporations don't really enjoy keeping on 40+ year old developers who expect to get 5% raises each year when they're not really worth more than the 27-33 year olds who have enough experience to crank out code that works well enough.
"...you're going to be competing with 28 year olds who can write CRUD apps in the shiny new frameworks better than you at 2/3 the salary. Which is why many corporations don't really enjoy keeping on 40+ year old developers who expect to get 5% raises each year..."
I think you have already outlined the solution:
- don't expect 5% raises, or getting more than other developers at the same level. Your salary will plateau, but that's not a bad thing.
- keep up with technology and make sure you don't fall behind.
I think the difference between software devs and other "profressionals" is that there is a much more stable career path for other industries, which generally includes pretty regular pay and position bumps each year well into your 50s.
I know lawyers that start really making money once they hit partner in their firms in their 40s. Or business / financial types who tend to increase salary just because the "pyramid" effects of their existing clients and number of underlings. Doctors have a very regular schedule of raises as do almost all public workers as they gain seniority - teachers, federal and state workers, etc.
Even the typical corporate middle manager will generally be promoted to higher levels with more responsibility.
But software engineers just don't seem to be given the same options, by default. If you're an individual contributor, there are only so many project managers they need, and companies absolutely will not push your salary up by 5% each year once you've hit a plateau in mid 30's (e.g. about $160K in my relatively high COL city).
Why do you need to be "courted" by FAANGs? There are plenty of non-FAANG companies that pay anywhere from 70% to 110% of FAANG standard and hire remotely (especially now, what with the recent shift to remote work). Here's a partial list:
Anyways, it doesn't really matter if your compensation flatlines at 300-400k before you even turn 30, because then you can just retire at 40 if you want.
Hah I hope not. I'm 31 and just starting my time as a stay at home dad. I sure hope the tech jobs are around for me when I make it out the other side :)
I was a stay at home dad for two years in my mid-thirties. Learned to make iPhone apps, and landed a job developing iPhone apps when my kid was two. It was my first programming job. Have been in the industry for a decade now.
I work for a large software company that is well-established and has a lot of legacy code. The majority of programmers I work with are in their 30’s and 40’s, myself included. The company does have a reputation for great work-life balance and the product is most decidedly “unsexy”. I wonder if the key difference is the retention, or the fact that the code base takes so much time to understand that young people either stay or jump ship quickly.
Tangent: My first job out of college was maintaining parts of one of these seemingly impeneterable legacy codebases. I was allowed to refactor and rewrite stuff, but only if bug-for-bug compatibility was retained. In retrospect, I think this was a blessing in disguise. It was good character-building, setting me up to follow good engineering practices from day one.
I can confirm that these statements just don't ring very true at most major technology companies; it may be a thing specifically for startups which I have little recent experience with. I know plenty of people in FAANG, Microsoft, Salesforce, etc. that are still ICs that are well over the age of 35.
Ageism may be alive in startups, but in technology as a whole, it doesn't really seem to be a big deal if you are up to date on your skills.
I think part of it may also be that us "older" folks are not fooled by the startup glitz, and would rather work somewhere with a little more stability and work-life balance.
I did the startup thing a bit, it was fun, but I'm mostly over it. I have other things in life I want to focus my time and energy on.
> This is pure anecdata, but I don't think I know a single software developer who was unable to continue in the industry past 35 as commonly claimed.
Tech industry is ageist. There's a reason why senior+ programmers find it hard to recover their career when detached from the BigTech company they have been long working at. Doubly so, if they work at a company that stack-ranks them at the bottom when they already are on the wrong-side of the 30.
Can confirm, I've been working in this industry since I was 16, around 17 years ago. Since then I've worked with people 30+ and the older I'm getting the more common it got to have colleagues on the 30-50 year old range.
I don't see at all this supposed ageism in software, is this skew coming from startup people? Because in startups, yeah, I see mostly youngsters but that's due to the work environment and pay, I refuse to work in startups for the foreseeable future as I did when I was 20-something. The pay is shit, the hours can be grueling, expectations and stress are way way too high for my current lifestyle. Of course, it can be your golden ticket but it's such a major risk that I don't feel I would like to waste 5 years on it.
Define “programmer”. Experience is incredibly important but applying it doesn’t imply writing code, and it would be a waste of time for someone with valuable experience to be writing a lot of arbitrary code.
I don’t write that much code anymore even for fun. But the little code I do write is because it absolutely needs to be state-of-the-art, which is only possible with deep experience. I’ve seen this with other programmers as well; as they get older they write far less code, but the code they write tends to be code that is critically important and only a small number of people have the experience and skill to write. They pick their code writing battles.
The bar to entry is too low. If you're a programmer, you should have a plan B for yourself after 35. Otherwise, you're being financially irresponsible to yourself and taking a gamble that companies will not discriminate you based on your age.
Totally agreed. Especially if the market gets tighter, you know they're gonna take younger folk who will work harder for less pay. Always have a plan B.
Didn't really get good at writing code until I was 35. Maybe I am just a late bloomer. Not that I was bad but it took me longer and I was often chasing that shiny new penny that claimed to solved all the things that irritated me about whatever tool I was currently using only to have a different set of problems of it's own.
Yeah the assertion that older developers don't have time to learn new things is especially stupid. I'm 35 and I just wrote an entire playbook on how to move my employer off of some obsolete VM-based infrastructure and into the Azure equivalents. A month ago I didn't know shit about any of this stuff. But I know enough about networking to be able to read the Azure docs on all their platform components so I was the only person on my team of 7 who could formulate this plan. I learned it all on the job by reading the documents.
The article and current comments here miss a critical point - this industry is expanding exponentially. People don't often switch careers completely, so of course most new entrants are young. If we look at this again fifty years after the industry size has stabilized, you would see a normal distribution of ages just like in carpentry or car mechanics or any other profession.
Yup they even stated this statistic but miss its significance:
> the number of software developers aged 55 to 64 years increased from 87,000 (8.3%) in 2011 to 195,000 (10.7%) in 2019 in the USA.
The number of older software developers MORE THAN DOUBLED in 8 years in absolute numbers, but only increased by 25% in relative terms. That strongly indicates that existing developers weren't pushed out, they just were swamped by new entrants.
There is definitely some drop off around middle age- in 2011 there were 529,000 working "programmers" (computer programmers, software engineers and web developers) in the USA between 35-44. In 2020, there were 400,000. That means about 1 in 4 left the profession (probably more like 1 in 3 to account for new entrants). But that means the vast majority of people programming between 35-44 were still classifying themselves as programmers 10 years later. The drop off from 45-54 to 55-65 was even shallower at 13%.
So the data suggest that despite the mid-age drop off most programmers seem to stay programmers most of their career. I'd expect that many of those exiting "programming" as an occupation are transitioning to management, technical sales, or closely related professions as well, but it wouldn't show up in the data I looked at.
Given that I, being in that 35-44 cohort, am not going to worry to much about how to stay in the profession. I just may ask myself if there is something else I'd like to do as a 2nd act.
Mid forties and still evidently more employable than I was last year. I also find as I age it keeps getting easier to land work ever closer to what I really want. I’ve worked with dozens of ICs in their 40’s, many in their 50’s, several in their 60’s. Only one over 70 that I recall.
I thought I was hot shit (and not just me...my employers too) until I discovered people like Walter, Stepanov, and other boomers who know programming/computing at such a deeper level that it almost feels hopeless that I can attain the same level of knowledge. I'm confident that I will be a much better programmer decades in the future than I am now.
I hypothesise that the majority of active SO users are beginner or intermediate programmers. I was using SO quite frequently when I started learning how to program. Now, I don’t have a need neither do I participate in their surveys. My senior colleague does not use it as well, moreover he doesn’t even have time for that. You can occasionally look up a few things but that’s that. In comparison, just three four years ago it was my goto website.
What you see in the results of their survey is a sample of the active users who are predominantly between this and that age nothing more and nothing less.
As an individual contributor over 35, I land on Slack Overflow about once a month I’d guess (it feels like even less, though it may well be more, if I do without consciously remembering). The problems I need to solve have become so specialized and niche that it’s often not worth googling. They mostly rather need reading existing code or talking to people.
That’s not to say that I know everything after those decades. But for the things that are more “I forgot the details, yet again” (or “I didn’t really know that detail but now it has become important”), such as for example “what are the exact semantics of that uncommon assembly instruction” or “what does the C standard define here”, it’s well advised to just look into an official source instead.
There are some hard truths missed / glossed in this article. I’ve thought a fair amount about this because my own career path is relatively unique, and included me needing a job very close in time to become extremely wealthy, so I had a chance to see both sides.
In short, if you are under 40 and an engineer, you currently probably are massively underestimating how hard it will be to get an IC or junior management job at a quality tech firm once you turn 45 or so. There is a ton of inertia against hiring mid 40 engineers.
There are some what I would call organizationally rational reasons to be wary of hiring engineering talent at mid 40s and above, and some organizationally poor reasons.
On the rational side, you have to remember that most of the industry works on a promote-to-management methodology for engineering ICs. There are a few rare companies that have distinguished engineering type tracks for lifers, but most do not. So, the first thing anyone looking at an engineer in their mid 40s is thinking is: “this person was never a good enough employee to get promoted into management.”
I would say that this is generally a reasonable prior to have while assessing someone, and a hiring manager who is open minded will at least want to understand why that is. Many of the whys mean they might not be a good fit at a growing engineering org.
On the bad Nash equilibrium side of hiring, esp. at a fast growth company, there will be, guaranteed, large team managers in their mid-20s. Some of them will turn out to be stellar leaders, or are stellar leaders. The rest, ... do not want to manage people twice their age. So, this is a suboptimal outcome that comes from pretty normal group hierarchy type tendencies, compounding with the above it can mean even a pretty progressive org can feel principled about not hiring engineering that is ‘too old’.
There is more negative selection bias as well - engineers with good negotiating skills that know how to strategically lever their talent can head into consulting or other other performance based situations and make 10-100x a base salary.
All this adds up to, in my mind, that engineers in their 30s need an exit strategy - and they need to execute on it fast.
The “best” exit strategies, if you have the skill and talents would be: startup co-founder, quant fund partner, high value high leverage consultant, CTO, SVP/Engineering, SVP/Product roles.
The “middle” exit strategies would be engineering management, product management, ‘fixer/number 5 employee/adult for startups’.
The “lower” exit strategies would be single-platform specific engineering skills at large, wealthy, slow-moving companies. DB2 engineering at IBM, Java IC at Oracle, or esoteric tech skills in mid to low value industries (e.g. wordpress guru, adobe plugin developer)
Any of these would, in my estimation provide a nice landing pad through to retirement. But if you miss it, I think the outcome is going to be some harder times scrambling as a consultant / building a small consulting practice trying to maintain standard of living against a whole raft of household expenses as your kids get older. It comes fast.
If you can't have a life and the current programming job at the same time, you should probably look for a better job. It shouldn't be an issue to have both in real life.
For some context, consider the amount of programming jobs over the last few decades though. We got a real boom for them relatively recently, and the market of general IT is still growing. That shouldn't surprise anyone their environment at work is mostly younger people. Percentages don't show this well, because adding thousands of fresh people to the market and removing a couple older ones skews the graph.
This is kind of mentioned with "According to Evans’ data, there are around 24 million developers worldwide and this will increase by 20% to nearly 30 million by 2024." but not followed up on - guess what age represents virtually all of those new positions?
But going as far as "35 is the end" is a joke. People doing this job will continue on higher positions. If they were actually being replaced by entry-level people at current place, there's a lot of places that look for experience instead.
I haven’t been 35 in a while and I love what I’m doing. I have the greatest job in the world. Furthermore, people keep paying me to do it. I have no intention of stopping for a long time.
My career took me from programming, to architecture roles, to managing projects then managing engineers where I found myself in a position where I never interacted with code. But a couple of years ago I decided to do more programming again and it was no problem at all to get back into it.
I have been programming every day since then and will never regret that move.
I don’t know where the idea that programmers are unemployable past a certain age comes from. It’s some kind of fix idea that seem to have gotten into to people and it’s not good for anyone.
If anything, programmers with 10+ years of experience is the most employable there is. There is a certain maturity and wisdom that comes with experience.
I remember this being a big concern around 2010, give or take a few years. Back then I don't think many people expected the demand for programmers to increase as much as it has.
I definitely think that early retirement and lack of cutting-edge experience are two big reasons you might not see as many older devs. That and if the older dev doesn't show career growth in their experience, it makes you question what they're going to bring to your company.
But I definitely always have, and currently do, work with older devs. Hell, I'm "older", but have coworkers 10 and 20 years older than me. Surprise: we don't work for a start-up.
If you work in a top tech company like apple, microsoft,and etc. since you are 22 until 35 (probably end at a very senior engineer), you probably rack up millions of dollars in your bank and can easily retire.
I've been let go for "not being technical enough" yet I had the requisite current (mandated) certifications. So I don't buy their explanation. Actually I think it was culture fit. I was just "too" old and my boss was weirded out or needed/wanted someone younger. My hobby was FPGA, microcontrollers and general messing around along with hiking. I was also probably too fit for their view of how I should be. But in reality, who knows? I certainly didn't do an exit interview.
I got a job elsewhere doing elixir and nodejs programming (devops) and haven't looked back. I suggest that people, when told they're too old, just smile and get out of that horrible employer's reach. Life is too short. Plus now I can take my dog to work.
66 comments
[ 1285 ms ] story [ 2448 ms ] threadMy advice to CS majors is that you need to make enough to retire by 35 as that's when you stand a good chance of being tossed on the trash heap.
Alternatively - win the startup lottery and either cash out or continue as principal.
I agree with this. CS is a GREAT career when you're in your mid 20's, making 6 figures with just a bachelors, while your cohorts are still taking on even more loans in graduate school or earning a fraction of your salary down in the bottom rungs of the corporate ladder.
The trick is to live as frugally as you can while making the big bucks throughout your 20s and early 30s, invest it, and plan to never touch it. With some market luck, you can pretty much guarantee a safe retirement by late 50's or early 60s, even if you decide (or are forced) to change careers to something less lucrative, and especially if (very likely) your salary won't grow much faster than inflation (and less than COL increases) once you're past 35. This is in contrast, BTW, to most other professionals like lawyers, doctors, academics, etc. who tend to earn more and more each year until mid 50's.
Because the reality is that most of us are not going to be the top 10% who will be courted by FAANGS well into our 40's, with offers of $500K plus equity, to lead projects.
Instead, you're going to hit a glass ceiling in your mid 30's and unless you move to management or start your own consultancy, you're going to be competing with 28 year olds who can write CRUD apps in the shiny new frameworks better than you at 2/3 the salary. Which is why many corporations don't really enjoy keeping on 40+ year old developers who expect to get 5% raises each year when they're not really worth more than the 27-33 year olds who have enough experience to crank out code that works well enough.
I think you have already outlined the solution:
- don't expect 5% raises, or getting more than other developers at the same level. Your salary will plateau, but that's not a bad thing.
- keep up with technology and make sure you don't fall behind.
I know lawyers that start really making money once they hit partner in their firms in their 40s. Or business / financial types who tend to increase salary just because the "pyramid" effects of their existing clients and number of underlings. Doctors have a very regular schedule of raises as do almost all public workers as they gain seniority - teachers, federal and state workers, etc.
Even the typical corporate middle manager will generally be promoted to higher levels with more responsibility.
But software engineers just don't seem to be given the same options, by default. If you're an individual contributor, there are only so many project managers they need, and companies absolutely will not push your salary up by 5% each year once you've hit a plateau in mid 30's (e.g. about $160K in my relatively high COL city).
Twitter Square Dropbox Slack Doordash Coinbase Stripe Robinhood Instacart Brex Affirm Twilio HBO Okta Thumbtack Walmart Confluent
...I could go on, but why?
Anyways, it doesn't really matter if your compensation flatlines at 300-400k before you even turn 30, because then you can just retire at 40 if you want.
This is pure anecdata, but I don't think I know a single software developer who was unable to continue in the industry past 35 as commonly claimed.
On the other hand, I know tons of former financial employees who became unemployable in the industry at 30 or even earlier.
Ageism may be alive in startups, but in technology as a whole, it doesn't really seem to be a big deal if you are up to date on your skills.
I did the startup thing a bit, it was fun, but I'm mostly over it. I have other things in life I want to focus my time and energy on.
Tech industry is ageist. There's a reason why senior+ programmers find it hard to recover their career when detached from the BigTech company they have been long working at. Doubly so, if they work at a company that stack-ranks them at the bottom when they already are on the wrong-side of the 30.
I don't see at all this supposed ageism in software, is this skew coming from startup people? Because in startups, yeah, I see mostly youngsters but that's due to the work environment and pay, I refuse to work in startups for the foreseeable future as I did when I was 20-something. The pay is shit, the hours can be grueling, expectations and stress are way way too high for my current lifestyle. Of course, it can be your golden ticket but it's such a major risk that I don't feel I would like to waste 5 years on it.
I don’t write that much code anymore even for fun. But the little code I do write is because it absolutely needs to be state-of-the-art, which is only possible with deep experience. I’ve seen this with other programmers as well; as they get older they write far less code, but the code they write tends to be code that is critically important and only a small number of people have the experience and skill to write. They pick their code writing battles.
> the number of software developers aged 55 to 64 years increased from 87,000 (8.3%) in 2011 to 195,000 (10.7%) in 2019 in the USA.
The number of older software developers MORE THAN DOUBLED in 8 years in absolute numbers, but only increased by 25% in relative terms. That strongly indicates that existing developers weren't pushed out, they just were swamped by new entrants.
There is definitely some drop off around middle age- in 2011 there were 529,000 working "programmers" (computer programmers, software engineers and web developers) in the USA between 35-44. In 2020, there were 400,000. That means about 1 in 4 left the profession (probably more like 1 in 3 to account for new entrants). But that means the vast majority of people programming between 35-44 were still classifying themselves as programmers 10 years later. The drop off from 45-54 to 55-65 was even shallower at 13%.
So the data suggest that despite the mid-age drop off most programmers seem to stay programmers most of their career. I'd expect that many of those exiting "programming" as an occupation are transitioning to management, technical sales, or closely related professions as well, but it wouldn't show up in the data I looked at.
Given that I, being in that 35-44 cohort, am not going to worry to much about how to stay in the profession. I just may ask myself if there is something else I'd like to do as a 2nd act.
Edit- sources: 2011 US CPS- https://www.bls.gov/cps/aa2011/cpsaat11b.htm
2020 US CPS- https://www.bls.gov/cps/cpsaat11b.htm
The relevant stat is how many developers aged 45 to 54 in 2011 are STILL EMPLOYED in the field? That's where you see the ageism.
In other industries, not that many people voluntarily abandon a career path at 45 for another industry.
I'm well over 60, and doing my best work.
It’s a big world. It’s not all the same “scene”.
With older people having less time and seeing less point in doing it.
That’s not to say that I know everything after those decades. But for the things that are more “I forgot the details, yet again” (or “I didn’t really know that detail but now it has become important”), such as for example “what are the exact semantics of that uncommon assembly instruction” or “what does the C standard define here”, it’s well advised to just look into an official source instead.
In short, if you are under 40 and an engineer, you currently probably are massively underestimating how hard it will be to get an IC or junior management job at a quality tech firm once you turn 45 or so. There is a ton of inertia against hiring mid 40 engineers.
There are some what I would call organizationally rational reasons to be wary of hiring engineering talent at mid 40s and above, and some organizationally poor reasons.
On the rational side, you have to remember that most of the industry works on a promote-to-management methodology for engineering ICs. There are a few rare companies that have distinguished engineering type tracks for lifers, but most do not. So, the first thing anyone looking at an engineer in their mid 40s is thinking is: “this person was never a good enough employee to get promoted into management.”
I would say that this is generally a reasonable prior to have while assessing someone, and a hiring manager who is open minded will at least want to understand why that is. Many of the whys mean they might not be a good fit at a growing engineering org.
On the bad Nash equilibrium side of hiring, esp. at a fast growth company, there will be, guaranteed, large team managers in their mid-20s. Some of them will turn out to be stellar leaders, or are stellar leaders. The rest, ... do not want to manage people twice their age. So, this is a suboptimal outcome that comes from pretty normal group hierarchy type tendencies, compounding with the above it can mean even a pretty progressive org can feel principled about not hiring engineering that is ‘too old’.
There is more negative selection bias as well - engineers with good negotiating skills that know how to strategically lever their talent can head into consulting or other other performance based situations and make 10-100x a base salary.
All this adds up to, in my mind, that engineers in their 30s need an exit strategy - and they need to execute on it fast.
The “best” exit strategies, if you have the skill and talents would be: startup co-founder, quant fund partner, high value high leverage consultant, CTO, SVP/Engineering, SVP/Product roles.
The “middle” exit strategies would be engineering management, product management, ‘fixer/number 5 employee/adult for startups’.
The “lower” exit strategies would be single-platform specific engineering skills at large, wealthy, slow-moving companies. DB2 engineering at IBM, Java IC at Oracle, or esoteric tech skills in mid to low value industries (e.g. wordpress guru, adobe plugin developer)
Any of these would, in my estimation provide a nice landing pad through to retirement. But if you miss it, I think the outcome is going to be some harder times scrambling as a consultant / building a small consulting practice trying to maintain standard of living against a whole raft of household expenses as your kids get older. It comes fast.
This is kind of mentioned with "According to Evans’ data, there are around 24 million developers worldwide and this will increase by 20% to nearly 30 million by 2024." but not followed up on - guess what age represents virtually all of those new positions?
But going as far as "35 is the end" is a joke. People doing this job will continue on higher positions. If they were actually being replaced by entry-level people at current place, there's a lot of places that look for experience instead.
I haven’t been 35 in a while and I love what I’m doing. I have the greatest job in the world. Furthermore, people keep paying me to do it. I have no intention of stopping for a long time.
My career took me from programming, to architecture roles, to managing projects then managing engineers where I found myself in a position where I never interacted with code. But a couple of years ago I decided to do more programming again and it was no problem at all to get back into it.
I have been programming every day since then and will never regret that move.
If anything, programmers with 10+ years of experience is the most employable there is. There is a certain maturity and wisdom that comes with experience.
I'm in my 40's and still going.
But I definitely always have, and currently do, work with older devs. Hell, I'm "older", but have coworkers 10 and 20 years older than me. Surprise: we don't work for a start-up.
If you work in a top tech company like apple, microsoft,and etc. since you are 22 until 35 (probably end at a very senior engineer), you probably rack up millions of dollars in your bank and can easily retire.
I got a job elsewhere doing elixir and nodejs programming (devops) and haven't looked back. I suggest that people, when told they're too old, just smile and get out of that horrible employer's reach. Life is too short. Plus now I can take my dog to work.