Ask HN: Is software engineering really a dead-end job after 35-40?
But it seems grey bias is deep rooted.
But it seems grey bias is deep rooted.
On the other hand, there are always amazing new ways to think about code, new languages, new perspectives.
It’s an exciting field.
P.S. if you’re over 40 you owe it to yourself to read Dan Lyon’s Disrupted. He’s also the guy behind Fake Steve Jobs blog.
It's not so much their age, but rather they have a tendency to be set in their ways, are less eager to learn and explore and change.
On a personal level, I'm impressed you've stuck with Perl all these years, and I'd love to nerd out with you over a beer later. On a professional level, I'm wondering if you're an inflexible curmudgeon.
Also as an older person, you're going to be expected to have some good basic management skills and wisdom. It's just the course of human nature.
Another couple of anti-bias tactics:
1. Dress nicely and modern. I see a lot of candidates who wear a suit that looks like its been slept in, or it looks like a suit they bought in the 80s. I'm not telling you to wear skinny jeans and Supreme shirts, but just dress relatively clean and modern.
You can get away with a lot on this front as a youngster, but it really works against you once you become one of us grays.
2. Stay fit/eat right. It doesn't do you any well if you're old, and overweight, and breathing hard during the interview.
- If you aren't a specialist, you are constantly competing against 20-somethings who will always be more current in their skills and breadth than yourself, because they have more free time than you have (e.g. I have a wife, kid)
- I've written GUI widgets from scratch, servers from scratch, same thing with linked lists, sorting, etc. Guess what? That doesn't likely justify an ever-increasing salary. No one cares.
- Older programmers tend to be very opinionated and have lots of war stories. This gets on peoples nerves. The stereotype, based entirely on truth, is that they are cranky and hard to work with.
I don't believe the same is true in specialized disciplines like engineering or modelling/simulation, numerical programming, etc. A 40, 50, 60 year-old engineer/mathematician/analytics developer doesn't have the same stigma. Those decades of experience are invaluable. The fundamentals of engineering or statistics aren't being reinvented every 3-5 years. Web development skills that are 5 years old are literally worthless today. Aside from general problem solving techniques, unless you've really specialized, the stuff you developed 10-20 years ago is of minimal value today and that experience (writing software that is now obsolete and could now be written in a fraction of the time, likely!) doesn't make you competitive against younger programmers.
My takeaway was to go deep as possible into analytics and math. AI, ML, anything that requires heavy math background, those are what I'm focusing on now.
There is definitely a middle ground, I believe emotional agility is at the heart of 'true' agility and the emotions have been highly overlooked by people who either master the art of bottling it up (looking at you former managers) or brooding (that's on me and many of us I believe)
The middle ground is becoming aware of the spectrum of unpleasant emotions and learning to feel in more depth while using intellect to guide your own actions.
For example, one can sense disgust at a certain codebase. That's perfectly acceptable, and it doesn't have to be anyone's fault. The disgust will drive us to want to improve it. Unfortunately, our managers tell us `bottle up your disgust and do some more disgusting things so we can ship` in which case young guys jump to the challenge and old guys tend to feel completely undervalued.
Edit: this statement is intentionally opinionated. It's alright to have an emotional reaction to it. I'd be interested to know what emotions it evokes in the reader.
That's kind of full on ageism don't you think? I am an older developer and I am easier going than some younger members of my team who are very aggressive and overly emotional when discussing technical problems.
Whether you think you can, or think you cannot: you're probably right.
How come I came to the opposite conclusion as you with similiar family obligations...where else can you earn 120k USD and work remote to spend time raising your children and banging your wife in between coding sessions throughout the day
> If you aren't a specialist, you are constantly competing against 20-somethings who will always be more current in their skills and breadth than yourself, because they have more free time than you have (e.g. I have a wife, kid)
I'm assuming that your wife is stay at home? In which case you would have more free time, not less.
On the other hand, if she works... then I understand.
If the problems you are working on can actually be done/solved at a large table with lots of people around, then it probably isn't a problem that requires 10+ years of experience i.e. it probably could be done by someone younger/cheaper. [Of course, if you "hack" around this by coming in early, working from home, etc. you aren't actually "doing it at a table with lots of people around you".]
I know lots of gray haired guys solving problems in the desktop and embedded space. I'm a not-a-genius developer/consultant and at 0x38 years old, I have no problem getting work.
I thin I'd like to get into the niche / older spaces, liked embedded / desktop, but I wanted to learn a lot about web dev / cloud first, based on interest and curiosity.
I programmed in C when younger, and had an embedded opportunity a couple years ago in it which I turned down, but I think I'd like to take that up now.
Do you think there's more work / less applicants ( or at least a higher such ratio ), in C / embedded, etc?
I don't know but I think you are on the right track thinking in terms of ratios. If there are (only) 100 jobs for technology X and 90 people with that skill, that's a good skill to have. If there are 10000 jobs for technology Y and 11000 developers for that technology, the ratio is not as favorable.
I think the Internet Of Things (IOT) might be a nice bridge from the "webby" world to the embedded one. One of my friends was doing node.js on an embedded medical device for example. (Queue "Security is the 'S' in IOT.")
At the end of the day, job security is based on creating value. If you want to be remunerated well for that value, you don't want to have a lot of direct competition.
I deliver solutions on the "edge" of the embedded realm sometimes - things that run on small Linux computers (Beagle Bones and Raspberry Pi). I can't speak to the demand for "real" embedded developers. By "real" I mean dealing with things like "board bring up" and FPGAs. Perhaps the graybeards I know that do that stuff are there through selection bias.
As consultant, I create the software for complete products or the core technology/secret sauce for companies that don't have that skill in-house. They could hire a skilled web developer fairly easily (assuming they pay reasonably). It's a lot harder to higher a developer that can turn data packets into a radar display, make a desktop product to monitor laser plasma emissions or track a flying golf ball using computer vision (my last 3 projects).
I hope that was helpful.
I'm in embedded, and I think your numbers are about right. I'd say that embedded is only 1/10th as big as "general programming" or even web programming. This means that, if you want a new job in your town, it may take 10 times as long as if you're in web programming. But it pays better, experience is more valued, and the cultures are different. Embedded doesn't have many brogrammers - it's more a world of grown-ups.
All the rest where word of mouth from people I know. I wish I knew of a place where these sorts of jobs were advertised.
My current web site is 3drocketsurgery.com. The chrisbennet.com one is all stuff that I did 10 years ago or more. Neither of them are sites you would find via a web search. Not a single person has contacted me through 3drocketsurgery site’s contact form and my name isn’t on it anywhere on it (on purpose). I used to use it with my resume’ and now use it instead of one.
I don’t actually call people or actively search for work. I do try to talk people out of hiring me sometimes. Reading this it makes it seem like I’ve got it all figured out but in reality, I’m just lucky and I’m expecting my luck to run out at some point. It’s kind of scary to be honest.
It slipped my mind earlier, but I did have a hiring manager from Mathematica tell me he saw something I’d done from my website once - probably got the link to my web sites from LinkedIn. He’d seen a video of a virtual oscilloscope I’d written for laser stuff. I doubt he would have called otherwise since my resume’ isn’t “out there” for everyone to see.
However, I do see a few problems:
1. If you've been out of the algorithm, leetcode, game for a while, passing the bs interviews is going to be a challenge. The truth is that almost no one uses that shit or they just google an implementation. So, you're choice is to dedicate a significant portion of your free-time to studying or use the shotgun approach unless you have a network "in".
2. It's probably going to be difficult for you if you refuse to learn new things. I've been specializing in front-end for a while and the framework I'm an expert in (Ember.js) is basically dead. Time to learn react. Luckily 90% of what I know translates.
3. If you want ever-increasing salaries, you're going to have a hard time. There is a cut-off for even the best senior developers. The only way up is management.
If you can still add value as a developer, someone will hire you.
Given (1) 3 also becomes a bit of dead end. If you're actually on a principle track (that's ownership, aptitude, etc) senior developer tracks can be nearly unbounded; especially at the usual suspects and increasingly at companies serious about growing their technology department.
I'd caution against striving for "just adding value"; being one of the people that have 2 years of experience 10 times is going to cut you off from most employment opportunities.
Moore's law has smoothed over many the failing of a mediocre dev; the next generation isn't going have same luxury (just the same as the current generation has to know exponentially more than those that made their fortune during the dot com boom).
As programmers, we should take the control of the recruitment with coopting. The market is in our favor. We are more needed than we need. We can do that smoothly and the good business men will understand they can save a lot of money with a such system.
I already know few good programmers who are available and I can recommend.
It has to do with the curse of comfort and a lack of emotional agility which is exceptionally pronounced in this industry for many reasons which I shall not accentuate here except to state that `casual` is another word for `toxic` in my view.
I would care to suggest to everyone in this thread the following work: http://a.co/3Wlz2bw
Having read this book my views on how we ought to be engaging in our day-to-day have been completely transformed. Going from a rigid mindstate to a growth mindstate changes the whole game and I bet you anything it would go a long way to alleviating the burden of grey bias and all the other evils we face.
https://smile.amazon.com/Emotional-Agility-Unstuck-Embrace-C...
A few caveats:
1.) I don't bash new frameworks (even if I know they're a bad idea) until I've built something non trivial with them.
2.) My education and experience are outside the norm for developers where I live. I have a business degree (with a marketing major) and have spent most of my life working for or founding startups.
3.) I love introducing people to each other. When you get older, you're usually much more connected than you imagine.
4.) I make fun of myself when it is deserved.
5.) I praise others when it is deserved.
6.) I stay current. Hell, I have built things with blockchains even though I didn't think it would be a good idea.
Basically, I stay current and try to be a good member of a team.
Also, not every ‘new’ development is as new as it appears; “Old is the New New”. https://www.youtube.com/watch?v=AbgsfeGvg3E
I see myself as a child of my time, with home-grown skills typical for a time-frame. I see that time-frame fading into history much like pop-music is doing. Going by the example of rockstars, maybe my skills will still be in demand 20 years from now, because the original author has so much more depth.
In some ways I am at the peak of my skills, more focused on results and a well balanced, easy to evolve design. But grey, so not cool I suppose ;)
What helps is to acquire additonal skills or knowledge outside IT, for example domain knowledge of an industry. This takes time and dedication. Personally, I got very interested in training and I'm now building a training business.
Also important to keep in mind that there exist a whole different IT world outside startups and what you read on HN where ageism is much less a problem.
In my experience, older (20+ years exp) workers that have kept their skills sharp and were above average throughout their careers tend to do well. However, those that expect software to work like other engineering fields, where seniority is a sole function of tenure, tend to take arms and complain about the new generation out performing them.
Those kids can code 15 hours a day if they want. I'll code 8, and I'll still produce working code faster than them. I won't waste (as much) time with flawed designs. I won't write nearly as many bugs that then have to be fixed. My code will be more maintainable.
In short, I'm more valuable than those kids. If an employer can't see that, then the employer is still at the kid level, and they aren't someone I want to work for.
But if you're going to try to compete with the kids when you have just the same skills, well, that's a hard road. You have to have gotten better over the years.
I think my advantage (I'm over 40) is that I produce the _right_ working code. Listen to the client, think about the problem, suggest short cuts or alternatives (including COTS if needed). I am much more focused on solving problems now than I was when I was younger.
yes as others have mentioned you have to be willing to learn. to be also excited to learn. that’s key.
i’m also much more mature now. so i can work well with anyone and see perspectives others miss.
opportunities abound !
As I get older I plan to shift to a different role. Maybe management, I am waiting for a position to open in a city for a dev project manager. I'm not really concerned.
Like everything there are exceptions but you and I are probably not the exception.
Every 2-3 years I reinvent myself with new tech and new challenges.
If you feel you cannot compete at 36 (my age) and are not getting interviews and offers from Amazon, Google, other companies.... then the problem is You and not your nominal age.
The fact that you're seeking out validation for self-victimization is alresdy going to shine through in your insecurities and victim complex. Leading to a self fulfilling prophecy.
Is it because the candidates don’t know the latest languages and frameworks? Sometimes, not always.
Is it because “fresh grads” have “energy” or something? Almost certainly not. What does that even mean?
Is it negated by the comments here like “oh there are 70-year-olds doing programmig where I work!”? No, that’s just an anecdote, not statistically relevant.
If anything I know more now about solving problems and handling stress. Likewise, everyone I work with who is older than me I have crazy respect for ageism is so silly