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?
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.