If you've specialized and valuable skills that are extremely hard to replace you should be fine. But if you're doing generic stuff it's time to take a cold hard look at what your career will be in the next 25 years.
I agree completely. After ignoring my career and staying at one job for 10 years, I woke up in my mid 30s and realized I was way behind the times. I was a C/C++ bit twiddler.
I started over, took a lateral salary move on a path of being a .Net “Enterprise Developer”. Eight years, 4 jobs, a lot of studying, and humbling myself under much younger team lead, I got a job as a dev team lead responsible for building a software development department.
After that, I again saw the writing on the wall and knew I needed to make another pivot. I had a choice between another job as an architect leading a team of 10 on a Windows/.Net product paying $15K+ more or being “just a developer” in title making $7K more but with a chance to work with tech that the cool kids were doing. I chose the latter.
At this point, all of the standard “full stack developer” jobs are paying less than I make now. But I still need to learn $frontend_framework_of_the_week along with Node to add onto my architecture experience.
"realized I was way behind the times. I was a C/C++ bit twiddler."
Say what? We pay good money for that. The other stuff is of almost no value to us.
Heck, I almost never touch C++. It's plain C, assembly, or raw opcodes expressed in hexadecimal. This is where the fun is.
FWIW, we hire people much older than 40. We have people old enough to have worked with paper tape. (like a cross between punch cards and magnetic tape) If somebody wants to twiddle bits with us all day every day, have a go at it: https://news.ycombinator.com/item?id=17912861
I’m not saying their are no jobs for but twiddlers, but there aren’t as many in most major metropolitan areas where most of the jobs are either enterprise developers or yet another software as a service. It was more about the optionality.
The skillset is so specialized that I would spend years their an not be as hireable in the wider market.
I suppose bit twiddling is specialized. There are fewer jobs, but also fewer people seeking those jobs. That relative lack of competition goes in your favor. High-level developers (Java, JavaScript, Go, Python...) are being pumped out at a frantic pace.
That’s true. There is more competition. After feeling stuck at one job because the number of openings for my specialty then was slim, I’ve been paranoid every since then. There are so many job openings for your standard “full stack developer” roles that I’ve been able to get another, better paying job within two or three weeks every time I have tried over the past ten years.
Staying at a job too long meant that I was also so underpaid, and ill equipped that I might as well have been just starting my career in my mid 30s. A high level entry job that I got as a C# developer was more than I was making after working for 10 years.
It was fine being a commodity developer when even your standard full stack developer was making $45K more than I was making when I started my transition and the salaries were rising. I moved up the rank as a “full stack” developer and got to the other side as a dev team lead/architect after switching companies 4 times.
Last year, I looked at the market and realized two things - Enterprise developers are an interchangeable commodity and are ripe for outsourcing and that even if I just picked up skills to fill in some gaps that I had from jumping jobs so often (mostly front end cool kids frameworks), I still couldn’t command a higher salary.
My “specialty” is coming at infrastructure and specifically AWS from a developer,software architect Devops perspective. Most “AWS Architects” come from a Netops background and that’s all they know. They end up costing companies more than they would spend on prem or at a colo because they just do a lift and shift and neither the netops, devops, or the developers do anything different. They just replace their on prem VMs with a bunch of more costly EC2 instances.
Back on topic: yes you can successfully be a developer in your 40s if you keep your skills relevant but after a certain point, your skillset as a developer isn’t worth enough to a company to keep up with your increasing salary demands. If you are okay with your salary stagnating or even becoming lower as your skillset is commoditized, they can go with that.
Otherwise, you have to figure out how your skillset can be multiplied - the easiest way to do that is to become a team lead, mentor, or just the “adult supervision” that can be the first among equals.
(Side note: the previous post with “thier” and “but twiddlers” is what happens when I post sleepy).
Say I were a web developer looking to transfer into a lower level developer role. How easy would it be for me to get and pass an interview? I'm guessing it's going to be extremely difficult to prove I have the skills you're looking for.
I had to reread your post. I’m assuming you mean “develop at the lower level” of the stack and not “be a junior developer”.
I usually groan at the leetcode style interviewing questions because as an “enterprise developer”, you’re mostly going to
be working with prebuilt libraries. In my last ten years worth of interviewing, I’ve only once been asked an algorithm question - and that was to write a merge sort. I got the job offer but didn’t accept it. I figured that any company who has interviews for senior developer/Architects where they care more about low level algorithms than high level architecture is not a company I want to work for. If the interviewing and filtering process for a company is broken, that tells you s lot about the company culture.
That being said, when I was a bit twiddler working with a cross platform (x86 and mainframe) C code base, we did have to write all of the low level algorithms ourselves and had to know how to write highly optimized code and analyze the compiler output.
In that case, knowing how to program algorithms and understanding the “how” was very important. I probably would try the leetcode and other interviewing suggestions for working for a FAANG.
One is to get another degree. That looks like a career reset.
The easiest is probably Open Source projects. You could write the sorts of things you are interested in, even if it has been done before. For example, you could write an emulator for a calculator or for an old 8-bit home computer. You could write something to transform executables, for example from i386 to x86_64. You could create part of a valgrind clone, just doing the JIT or even a simple interpreter. You could write a compiler. You could port a compiler to output for a different architecture, or port an OS to run on a different architecture. For example, I think there are Open Source RTOSes that do not yet run on RISC-V. If that isn't true, there are so many other architectures to choose from.
Doing well on the pwnable.kr site without cheating is good. There are public write-ups available, so you'd have to demonstrate that you actually understand things on your own. Getting near the top ranking ("front page is pretty respectable" according to a coworker) would be good.
I agree completely. After ignoring my career and staying at one job for 10 years, I woke up in my mid 30s and realized I was way behind the times. I was a C/C++ bit twiddler.
I started over, took a lateral salary move on a path of being a .Net “Enterprise Developer”. Eight years, 4 jobs, a lot of studying, and humbling myself under much younger team lead, I got a job as a dev team lead responsible for building a software development department.
After that, I again saw the writing on the wall and knew I needed to make another pivot. I had a choice between another job as an architect leading a team of 10 on a Windows/.Net product paying $15K+ more or being “just a developer” in title making $7K more but with a chance to work with tech that the cool kids were doing. I chose the latter.
At this point, all of the standard “full stack developer” jobs are paying less than I make now. But I still need to learn $frontend_framework_of_the_week along with Node to add onto my architecture experience.