No offense personally intended, but as a mid-40s engineer/manager who knows many 40s/50s engineers, I can't relate to this sentiment. We have a couple of older engineers who are kinda useless, but we also have some useless young engineers too. Some of the older engineers dominate the engineering org, leading large architectures and more-often-than-not seeing technical issues very clearly and making good calls. Their defining characteristic is that they're good, not that they have gray hair.
My over-40 career advice for everyone is to stay sharp.
And observation about flip side: When Nokia came crashing down, lot of engineers where (and still are) struggling to get a new job. They had been working on same area for decades, with tools that are limited to their old work - and no desire to take chances and trying out something different.
Yeah, age can be limiting factor, sometimes, but don’t let it be because of your own fault.
It doesn't even have to be original, or particularly useful. Just something that shows that you understand what modern development is about: neat code, good docs, unit tests, regular commits. Use modern libraries and idioms.
Heck, I don't think anyplace has even tried the code.
[1] And this is why the "hiring is broken" topic comes up often on HN and other forums, because it is so. Even management, many times, have a shortsighted and wrong view towards what hiring (and related stuff, like what you do after you join) is (or should be) all about.
Edited for grammar and to add stuff.
None of us have any desire for management. We all keep up with the latest technology and any of us regularly get jobs within a month or two depending on how picky we are being.
I am in my mid 40s, been developing professionally for over 20 years and it’s never taken me more than a month to get a job from the time I start looking. I am nowhere near the west coast but I do live in s major metropolitan area.
May I ask what do you mean by this? I'm an engineer entering my late 30's, what is it exactly that I have to prepare for by the time I enter my 40s?
You're probably not feeling this right now because the economy is overheated. But be wary of the next recession if you're still doing the same job - however much better - than a junior for several times their salary.
(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.)
And just to be clear in case one might think this is ageism at work: having seen the difference in productivity, I'd hire a 40+ senior over 3 juniors in a heartbeat most of the time, but budget doesn't always allow one to do so.
Honestly I think it's not directly ageism, but indirectly, many people are afraid of managing people with significantly more experience or just plain older than them. So if the team lead is 35 with 10 years eng experience, they will probably be worried about a 45 y/o with 25 years eng experience who will challenge their authority and possibly prevent them from leading the whole team the way they want. Developing the maturity to not just cope with but thrive on managing people with much more experience / knowledge than yourself takes time, especially for engineers who tend to derive their authority primarily from their technical knowledge / experience. Eventually it will happen, but only after those managers replace technical experience with actual management experience as the basis of their self-worth / ego / authority.
> So if the team lead is 35 with 10 years eng
> experience, they will probably be worried about
> a 45 y/o with 25 years eng experience who will
> challenge their authority and possibly prevent
> them from leading the whole team the way they want.
This was a huge factor at my last job, with myself and other engineers who were much more experienced than the people who were (inexplicably) placed in charge.We had a VP who was so green that he didn't know what he didn't know.
He was still in that phase of life where he knew 10% of everything, and since he didn't know the other 90% even existed... he thought his knowledge was 100%. Very difficult to work with, much less for.
(And that's even without a "power struggle" happening. Us 40-ish types were explicitly disinterested in becoming management. Nobody wanted to undermine him; we literally just wanted to do our jobs without his incompetent micromanagement)
Hmm. I certainly don't want to end in the position of the manager you're referring to. I'm scared about/by the quantity of things I don't know, though, across the board, so there's that. (One of those things that are hard to sum up as good or bad, heh.)
I guess the worst-case I can think of right now, is ending up in a situation where I might think the 10% I know _is_ 100%, and the social dynamics make it difficult for those around me to show me otherwise without treading on my toes, even privately. I wonder how I might counter for situations like that.
My understanding of management is of owning a summarized, superset overview of a bunch of areas that I'm (ostensibly) coordinating. To do that effectively I need to be able to discern the difference between "implementational or otherwise safely 'losable' detail" and "piece of data I cannot effectively manage without" (literally).
This can be very tricky, especially as the analysis rules change per domain...
> My understanding of management is of owning a summarized,
> superset overview of a bunch of areas that I'm (ostensibly)
> coordinating.
I would most definitely agree with you. A manager doesn't need to have more "in the trenches" knowledge than those that report to them. In fact that's probably not even possible or even desirable. Most of my really good managers have been less technical than me. > Hmm. I certainly don't want to end in the position
> of the manager you're referring to. I'm scared
> about/by the quantity of things I don't know, though,
> across the board, so there's that. (One of those things
> that are hard to sum up as good or bad, heh.)
If you're concerned about it, that's probably an excellent sign that you'll do what it takes not to fall into that trap.Actually I'll be really specific about the trap our manager fell into. It's SUPER avoidable. Here's what he did:
1. He or his management would present a problem or challenge
2. He would design a solution with his very incomplete knowledge, down to the technical details
3. He would break it up into tasks
4. He would assign those tasks to us
You can see the problem there. The people with the actual in-the-trenches knowledge were completely shut out of the design process and his solutions were often terrible.
Furthermore, WE were the ones made to look bad by this process. HIS management thought he was this uber-competant guy who could not only manage but architect solutions as well! And even break them up into little bite-sized chunks for the engineers to execute!
And WE looked like "negative nancies" who were like, slowing him down by pushing back against these solutions and tasks he handed out. He was like a poor general who was always getting his troops killed, that managed to convince the higher-ups that he was just constantly given bad troops or something.
His favorite retort was "well, what's your suggestion?" when we challenged his poorly thought-out solutions. And it was like... I don't know, Ben. I just got handed your shitty solution five seconds ago and you still haven't even told us what you're even trying to accomplish here. We haven't had three hours or three days or three weeks to come up ideas like you have.
Obviously, the process ought to have gone like this:
1. He or his management would present a problem or challenge
2. He should present the problem to his team, explaining the technical goals as well as how those goals fit into the big picture of the business
3. The team collectively should have designed and discussed possible solutions.
4a. Through that process he should have acted as advisor and sounding board. He should have recognized our greater domain knowledge.
4b. Of course, that street goes both ways. He should have recognized our greater experience and domain knowledge, but we should have also recognized the need for to prove the viability of our solutions to him before implementing them, just like we'd do with any manager regardless of relative age or experience -- the relationship would not work if we expected him to simply "take our word for it" because we we older or more experienced.
I think I now understand why micromanagement seems to be discussed so often with implied cringe. Ouch :/
It sounds like this person conflated coordination with (for want of better words) inspiration or direction. Or perhaps this person found their job, uh, insufficiently fulfilling and convinced themselves it would be okay to try and do something about this by being able to pat themselves on the back for the actual invention and inspiration process. Sounds like they unfortunately nailed looking like they knew what they were doing :/
I've read some sentiment on here to the effect that a good manager is the real catalyst to productivity and positivity. Perhaps the second level of good management is an accessible chain of busy but available ears - so weak links can be objectively identified and then fixed.
Of course, this is one of those mechanisms that only ever exists to convey bug reports - you implement it, suddenly the "problem report" count goes through the roof, with nothing else to counterbalance it. But I'd bet that if you tracked team productivity after said bug reports were followed up on... heheh (why does nobody do this ._.)
I guess I’d still do it though. We need people with experience like a drowning man needs air.
I work in sysadmin operations. I have often come in and cleaned up a cowboy implementation, or learned a completely new application (usually undocumented) - deployment and operation - to the point that I can turn around and teach it and write documentation and automation for it.
I'm also very cynical about anything that is the "latest and greatest", because I've seen behind the curtain way too many times.
Military does it for competence. Sports does it for physical reasons. But is there a reason to throw away 20+ years of experience in an engineer, so you can cut payroll? Particularly when those engineers built the industry, your busy making unicorn-money off of?
The whole thing is ridiculous.
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.
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
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.
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).
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.
Which means that half of developers have less than 5 years experience.
We are just outnumbered by the new kids. But there also usually aren't enough of them to fill all of the seats.
The guy who decompiles third party code at 4 am to see why their update caused an error in our system (real recent story).
The other (very competent) older people get actively harassed. Some little *es from my company tried to get an older guy fired for being "too slow", when he is anything but. And I think the company I work for now is one of the friendlier environments for older devs.
Dunno, it's a genuinely scary prospect. Not trying to put anyone down, just what I see around me.
I hear its even worse on the coasts. I am in a flyover and have never worked in San Fran.
Some of them are senior individual contributors, some of them are in engineering management, and some have transitioned from engineering to project management. Many of them could afford to retire today but want to keep working. And very few of them are still in the building after 5:30pm, because they have lives to go home to and refuse to work crazy startup hours.
Ageism is real in the industry. But the outlook for engineers over 40 is not a terrifying or bleak as you make it seem.
I’m not a wizard, my work/life/exercise balance is pretty good and I’m in my mid 40s.
I would hate to be “just a senior developer” competing with younger people who could do just as well for less money.
I feel my value add is architecture. I’m a hands on developer by choice, but I can also step in and lead projects, do Devops, speak to CxOs, I know AWS from a development, Devops, and netops perspective pretty well.
That does mean that only certain types of companies will pay me for that skillset - mostly smaller companies without dedicated people for all those areas.
So when somebody tells me to "take a paycut", I tell them to go fuck themselves. Particularly if they are the CEO banking millions of dollars, and block-busting labor with H1B's under slave conditions.
The crazy thing? I asked the Indian guy, do you even want to live in the states and he doesn't care. He actually prefers India. So they're coming over here, ruining the job market, and they don't give a shit if they're even here. Mentally I'm going "then why the fuck are you here?"
If they totally repealed the H1B, I would be a happy camper. They already transferred the tech to India and China; but do they have to kill/give away the next generations of tech?
Now I'm 50, and my company folded and I went to the curb, and am looking for a new job. Now I don't look like that bright young engineer. I look like an old has-been who is stuck in a rut and stuck in my ways. Except I'm not. I'm highly experienced, an innovator, get along great with many kinds of people and can contribute at all levels of an org, from production support to development to architecture to the boardroom.
But the first question I get asked on interviews is "Are you technical?"
My over-40 career advice for you is to remember what they do to engineers that are over 40.