Thankfully, I am not required to work, and have been having the best time I could imagine, since giving up on working for others. Instead, I work with people for free, on projects that I think are constructive and give back to society.
I am working from home, doing something that I enjoy tremendously. I'm doing the best work of my life. I just got done refactoring a fairly large backend that I wrote a couple of years ago, and am actually thrilled at the quality (and quantity) of my work. It's driving the application that I'm developing. I wasn't satisfied with some of the popular offerings, and had already written the backend as an exercise, so I used that, instead. It just needed a bit of tweaking to fit the new application.
I love programming and system design. I'm really good at it. I write code every single day of my life (My GH profile is solid green, and it's not "gamed"[0]).
It's just that I found others are not interested in working with me. It hurt, as I had spent my entire career, working on teams, but I rubbed some dirt on it and walked it off. In the aggregate, I'm actually glad that I went through that.
They want senior level to help them maintain legacy systems or lead the upgrade to latest tech stack.
If backend is your specialty, market oneself as expert in backed solutions using latest stack. The fundamental CS principles never change. Learn the basics of cloud, containers, orchestration, micro services, and inform recruiters about experiences delivering solutions in latest stack.
The recruiters will be rushing to your profile and demanding interview slots.
Good luck.
The backend was just a more challenging project. I won't go into all the reasons that I wrote it, but it works a charm. A dedicated backend engineer could probably do better (actually a dedicated backend team. I'm fairly productive). I'm just glad I have a use for it. I was assuming it would never be used. I wrote it on a lark. Took seven months, but it was fun. I do stuff like that. A number of years ago, I taught myself to program Android, but decided I didn't like it, and never followed through.
As far as recruiters...They do rush to my profile. I have a lot of nice buzzwords.
As soon as they find out how old I am, though, the call suddenly has "connection problems," and I never hear from them again.
I've taken to making sure that my age is clear upfront, just to save time. It's amusing how quickly they start discouraging me. They start by lowballing me, and when I make it clear that I would have no problem working for low wages (I do it for fun, and I don't really need the work), they start trying to find other reasons I wouldn't want the job.
Like I said, I bailed on the rat race. It was just making me grumpy.
Become an expert in latest tech stack and experience in delivering solutions to clients. These positions are extremely difficult to fill, so recruiters are more open to older software engineers.
Open the door to yourself by expanding opportunities, vendor companies, contracts, freelance, start your own company, etc. There are so many problems in software and so few high performance engineers, globally.
Sometimes, you may be the only person in the world with that specific tech stack and experiences. Demonstrate the solutions and many companies will have to bring you on board, FE or contract at least.
For most companies, the age thing isn’t the issue. It’s that older software engineers have stagnated and won’t be able to keep pace. When you demonstrate high performance and solution delivery, age becomes less of an issue.
Never even comes up. Like I said, I've been doing this for a loooooong time. I have a massive open-source portfolio[0]. Much of it is days (or minutes) old. I've been surfing the leading edge for my whole career.
No one ever even looks at it. I've learned that if they give me a binary tree test, I might as well just end the process. They want kids straight out of college.
In one case, I was approached for an ObjC job. I sent them links to several repos (shipping apps that they could build, run, and test) that used ObjC.
They completely ignored it, and gave me a 50-line binary tree test in Swift. They also dinged me for using quality coding/documentation techniques.
I did OK, but not great. I generally do mediocre at leetcode. I spend exactly 0.0 hours, practicing it.
It really isn't my imagination. It's real. I have a Facebook "friend," that is a young man. Nice guy. We get along great. We don't mix, too often, as we travel in different circles, but neither of us has any problems with the other.
His profile background is a desert scene with "SHUT THE FUCK UP, BOOMER" over it, in big text.
If it was "SHUT THE FUCK UP B***H" or "SHUT THE FUCK UP N*****R", he would be [rightly] excoriated and shunned by his appalled friends.
But as long as it's oldies, he's actually cheered on.
This is the current environment that those of us "of a certain age" have to deal with.
Kicking back at older folks has been something that has been going on for thousands of years.
The difference, in my opinion, is that companies are now often run by twenty-something CEOs. In the "old days," the companies were run by older folks, and there was always a cultural structure in place, that ensured that youthful exuberance and rebellion would be tempered by experience, age, and meticulousness. It was enforced by fiat; sometimes, to a fault. I think that we need to have a hybrid; not one over the other. Most of the teams I worked on, had a great mix.
Nowadays, no one wants "Grandpa" saying annoying things like "I have found that I can't rely on system garbage collection, because of the memory and performance hit; especially in threaded applications."
So, the solution is simple. Don't hire oldies. You'll be selling the company before the system goes pear-shaped, anyway, so...win/win.
In my case, I like to design and implement software architectures that are supposed to last for many years, and have significant effects on the lives of vulnerable people, so I don't do a slapdash job. That's basically heresy, in today's world. Some time ago, I read a comment that basically went "If you do not get physically sick, looking at the code in your MVP, you are spending too much time, worried about code quality." That's kind of a "zeitgeist," right there. The very fact that I could pick up a project that I wrote on a lark, two years ago, blow the dust off, give it a couple of tweaks (actually, it was a refactoring that took a couple of weeks. Bit more than "tweaks," but I was adding additional functionality; not fixing deficits), and use it as the backend for a fairly advanced app, shows that the way I do things has merit.
When the full time offers slows down, I’ll take on vendor and contract positions. When the contract positions slow down, I’ll start my own vendor or consulting company. I’ll hire younger sales and product people to be the face of the company.
I always look for solutions to problems, implement the solutions and make adjustments when needed. This is the kind of solution oriented mindset that helps get offers and land clients.
There are so many software engineering problems and so few people that can deliver the solutions. There’s no real competition, younger or older. There are enough to go around for everyone.
Good luck to you.
On the other hand, someone telling other people how to handle ageism should definitely be prepared for such a question.
Conditional on the person I replied to's comments, if he/she is 60 I can perform a particular probability update, if they are 20 then I'll perform another probability update.
tl;dr : if you tell people how to handle aging, your own age becomes relevant.
It’s like any other problem, there are solution options. Some people switch to management. But ageism affects management too.
Focusing on the age doesn’t help I any matter. Age is simply proxy for stagnation to most people. The common euphemism is you can’t teach old dog new tricks.
Focus of solving problems and delivering solutions utilizing latest tech stack and design patterns. Effectively demonstrate these dynamic abilities and open the doors to opportunities.
Not necessary. I'm living the dream, right now. I worked for many years, to get to where I am now.
The fact that I'm not valued, simply as a function of my age (I'm 58, BTW), is annoying; a bit hurtful, but not crippling, at all.
As a matter of fact (not theory -fact), I'm more productive that I've ever been in my life, I learn more quickly, and more holistically, than I ever have, I use tools more effectively than I ever have, and I am enjoying what I do, more than I ever have.
There's the most positive thing that ol' Freddy once said: "That which does not kill me, makes me stronger."
I had to go through the rejection and humiliation to reinforce and realize my own sense of confidence and self-reliance.
I can tell you that the folks I'm working with right now, are basically pinching themselves.
Have you considered that this might cause you to be perceived as a hobbyist?
I don't care. If anyone perceives me as such, then they are just another person that didn't bother to click on the link, and find out more about me. I'm not particularly interested in working with folks like that. I don't hide a thing. Maybe the [0] thing is confusing, so I'll do it inline, this time: https://stackoverflow.com/story/chrismarshall
It's all out there, for anyone that wants to find out. I guess that it's a sign of the times, that no one is willing to do that. I was a manager for a couple of decades, and would have killed for that kind of information. I can't even image hiring an employee, based only on a short schoolboy test.
Of course, that cuts both ways. People may look at my code and articles, and decide they don’t want to work with me, but at least they are making an informed decision.
I worked for 27 years, for one of the most conservative Japanese corporations in the world, and had a position of ultimate trust. If you know anything at all about this kind of corporation, then you know what that means. I strongly suspect that it would be very, very difficult to find anyone as Honorable, Reliable and Dependable as I am.
The entire tech scene is built around hiring ADHD kids, paying them sick money, and keeping them for 18 months. There's a vast industry, based around providing cultural and technical infrastructure to support this. The fact that you need to test applicants with leetcode says it all. There's no Trust, no Integrity, no Honor, and no Loyalty.
That goes for both corporations and employees. Everyone is out for their own goals; damn the company, the employee, or the team; let alone the customer (who are treated as product, these days).
I am a person of tremendous personal Integrity. Word is Bond. That goes as much for free, open-source efforts, as it does for paid ones. I have an enormous, years-long portfolio of very, very high-quality code, dozens of articles on Medium and my own sites, going into great detail about my personal philosophies and processes, and a decade of checkin history.
If no corporation values that, then that's OK with me. I know some folks that can't afford to hire me, but value my Integrity.
And, as far as "carrots and sticks," they have these new-fangled things called "contracts." I hear they work fairly well.
Had I not tried the self employment route I'd probably have starved to death or had to work at a gas station and then starved. I wasn't really ready for it either but that was the option. I live and breath programming and absolutely love it. I have since I was in my early teens. At this point though it's looking more and more like I'll have to do something else to get by. I actually always did want to be able to work on my own projects, but if I have to work in other fields then that will likely be the end of it. I won't be able to make enough to do anything but work.
I think it's just a hostile field in general at this point.
The industry is crazy competitive, right now. This is because of all the money to be made.
This has been both a blessing, and a curse.
One of the big reasons that I am not in a hurry to shack up with some company, is that it can easily make a joy into a horror show.
I would suggest that you learn discipline and structure, just on principle (since the industry doesn’t seem to value it). At least, you will be happy with the work you do, and that is worth more than you can imagine.
Then the code base becomes a mass of spaghetti that at this point the revolving door of devs have to both figure out and keep alive in ever increasingly stressful situations until they either burn out or move on for greener pastures perpetuating that cycle.
So far in my career the split is 60:30:10 places who don't care about actual engineering and run their business on crap, those who recognized things are biting them but the amount of inertia you need to counteract things and rebuild is huge and then the very fine percentage of places that actually have a good culture around engineering.
The first is horrible because you're a fungible asset and the job is miserable the second is better but still bad because at this point they do see you as valuable but you're going to be spending your time digging them out of a grave and then the third is just a magical experience where you're valued and the codebase isn't constantly a light breeze away from collapsing.
The majority of the industry is in position 1 and I guess we'll see if it ever makes it to 2 or 3.
Worth noting that I made high salaries and could work from home in every case but it would be correct to say I continue to enjoy programming in spite of the industry.
I also don't think it's a coincidence that companies who are in group 3 are typically leagues ahead of 1 and 2.
It seems like businesses want the expertise of a 20+ veteran, but want to hire 18 year olds, so they can pay them less, and dangle silly trinkets like free cafeteria food in front of them.
Oh and, why is it taking so long to work on it?
The place I work instead can charitably be described as "a victim of regulatory capture," but at least I'm working in a business that I believe has a legitimate reason to exist.