The Planned Obsolescence of Old Coders
onezero.medium.com
onezero.medium.com
So here I am at 40, having a blast writing C# and TypeScript, still constantly learning new things. Work life balance has changed a little as I have kids, but I can’t see myself doing anything else for the forseeable future.
Programming is an amazing profession
If I were to put one reason down why I don't mind being a coder I think being a manager can be mentally exhausting. You need to remain positive for your reports even if you don't agree with decisions made higher up. Too many things are not really in your control but you are responsible for them. Maybe that was just my experience. I hated letting my team down.
I was thinking of management as a way to escape downsides of working as a programmer. For ex.: a responsibility for bugs that I put in product, failure to deliver on time, rush to finish before deadline and all other stuff that burns me out.
You need to ask yourself how much you like mentoring people, spending time in meetings, playing the politics ... because those are the roles you pick up. Managers still have to explain why bugs are in the system even though they didn't write any code. I honestly think some people are wired for being managers and some are not. Trouble is some companies pay managers more and let them run riot with over developers.
It is especially bad when you have to deal with CIOs/technical managers one day and developer/data scientist teams the next day, because both have entirely opposite perceptions of what “competence” is.
If you code or are seen coding a significant portion of your time (even for POCs), the prevalent bias (largely from customers, but I’ve had peers act the same way before figuring out who I was) is that you’re someplace at the bottom of the food chain. As a result, I largely stopped coding on-site at customers and only bring out “the goods” when I am doing training/mentoring/reviews with technical teams.
I also have surreal conversations with recruiters every now and then. Those who find me via GitHub expect me to be 20 years younger, and those who find me via LinkedIn... let me rephrase that, the ones who find me via LinkedIn are, on average, mostly clueless about technical skills, so age is not a factor there.
It depresses me to no end to realize that our entire industry does not use experience as a yardstick and to see startups recruit young developers and technically clueless management, especially when demand for good developers is going through the roof, and young developers often need the kind of technical mentoring more experienced hires can bring to the table.
Free startup idea: map people on LinkedIn to the types of roles they're aspiring to based on skills, experience, activity, etc. Especially those with more than 5-10 years experience.
There is definitely ageism in tech.
One thing that I think drives it is that it takes a while to figure out if a programmer is really capable. There are a lot of not very good programmers. When I interview someone with 2 years professional experience I need to be looking for potential. When I interview someone. When I interview someone with 25 years professional experience, I can be looking at results and experiences. I’ve hired one engineer who was leaving after 15+ years at IBM. He was great and had done a lot of things. I’ve hired another senior engineer who was bailing after 2-3 years at IBM, and he complained that everyone keeps their heads down and it was too easy to hide. And I’ve interviewed several former IBM lifers who I decided not to hire because they were the ones keeping their heads down and hiding, having had minimal impact and with limited experience making real technical decisions. Even if you are “age” blind, experience gives you a lot more to judge, and often to judge harshly.
It’s not just IBM. I can say the same about Cisco, HP, and the Mathworks. Probably any large engineering organization. And I am starting to see it in candidates leaving Amazon.
There are career trajectories available to developers which can seem safe, but lead to dead ends. Working on safe boring things in a large organization is one. Being a reluctant middle manager is another.
Isn’t this the issue? There are only so many spots for engineers who can be paid to pontificate on the “hardest problems”. And those super-senior engineers need to be absolutely top of their game to be considered for this role, which means weeding out 99% of weaker engineers. Unlike other jobs, being older and having more years of experience does not mean you are the most qualified to solve hard problems.
Ageism is a real thing in tech but imagining that we can hire all the old engineers to be elite architects is no different than the current situation.
Also, the proposal for unions in tech at the end came out of nowhere. I don’t think the author should conflate the problem of ageism with unionizing all the programmers. Ageism is something most people will agree is bad whereas the subject of unionizing is completely different. Not sure how laying people off by seniority in the union will make companies more innovative and effective. But that’s why the author should make a second post about their views on that and not conflate the two issues.
As a senior developer, you can make some in-demand software an sell it, there are tons of developers making a living of selling a software product.
Another alternative is to develop a Sass product for a given niche. With tools like Amazon AWS, Google Cloud or Firebase it's easier than ever.
Contracting is also an alternative, as it removes the burden from the employer for paying more money for firing a 50 year old than a 25 year old, as in a lot of countries severance packages must take in consideration the age by law.
Its also a very well paid profession, if you start contracting early, early retirement is a viable option, plus using the money to develop another business.
Here is a career path: start as an employee junior developer, but move to contracting as soon as possible. This will give you a financial surplus that you might need later in life. After a couple of years contracting, think of creating your own business.
Companies want cheap labour willing to work extremely long hours, so they prefer younger people, it's not going to change.
But there are valid alternatives, and today more than ever.
- the first woman was called a "mom" and basically drummed out of the industry to academia. That seems like sexism is the more pernicious aspect
- especially when you consider the next example is a guy who was discriminated against at one big name company, but also found a role
- then we get into IBM lifers having trouble moving into new roles after IBM downsized. The downsizing at IBM was inherently ageist, but their subsequent struggles in the job market could have a lot of contributing factors - a whole career at a single company doesn't set you up for success in interviewing, at the very least.
- finally we have the "how will my career develop" issue, which isn't ageism? Outside of management, higher-level IC roles inherently have "squishy" aspects - you're making hard, long-term investments and the payoff takes years in some cases. You can't administer a test to say "this person is a principal engineer and this one is a staff engineer", and complaining that the categories are arbitrary is kind of silly - they're created arbitrarily so you can feel like you're advancing even though the substance of your work is largely the same because you chose to keep doing IC stuff
Agree about the difficulties in assessing technical talent though. Once tech talent surpasses the ability of their manager to understand what they do, career progression stops. So it largely becomes about tenure / seniority instead.
Forget tech for a second. In any job type, isn't it a pyramid. There are lots of junior roles, slightly fewer senior roles, fewer again manager roles, only a few senior manager roles etc. Isn't that just a natural part of any team's makeup. You only need one leader for a team of 5-10 people, etc. I've witnessed this team structure at every single company I've worked for (and as a contractor for 10 years, that is a lot), if you want to progress up to the next level there are always fewer jobs available.
Doesn't that mean that as you get older, competition for the job at a seniority that matches your age become increasingly difficult. The number of people doesn't change.
Not everyone can progress up the ladder when the ladder narrows as you go.
This isn't ageism is it? It's just the natural lower demand for more senior people.
And I guess what follows from this is the people who fail to move up, and try to stay at their current level are then also competing with the people below them who are trying to move up.
What's not ageism is that employers refuse to pay higher wages for people with years of experience that the employer decides are not more useful than the lower experience of younger/newer people.
The ability to prevent or fix all these often comes with experience. I'm good at programming, but I can't ignore that I have the most beneficial effects on the bottom line when I'm making sure the team is functioning smoothly, when I'm helping the less-experienced understand some of the rough edges of the programming language, when I'm politely but firmly (and weeks ahead of disaster) telling the project manager that course correction is needed, when I'm requesting (and these days, winning) time and budget for training, and so on.
If I was some kind of super-genius software engineer, working on truly hard problems, I'd be more valuable to the company writing code all day, but I'm simply not and the majority of companies (in my experience) are really not doing anything very special in code. I do still write code, I do hand myself the problems that I can see require thought and experience and so on [0], but the contribution I make beyond banging out code, based on years of experience and the skills I've developed beyond the purely technical - is far more valuable to the company.
[0] While making sure that the less-experienced get tasks that stretch them but will not demoralise them, which is itself a tricky thing; I have to keep tabs on those, balancing their educational struggle with it against the need for it to be done and the need to keep them happy and motivated - if an insecure junior software dev has three or four car-crashes in a row, you can lose them forever.
When I was in my 20s, an older programmer gave me thoughts about moving into management. He had tried it, and came back to programming. He said "The problem with being a manager is that they nip at you from the top, and they nip at you from the bottom." Meaning that you not only still had a boss, but you also had people below you that you had to keep pleased, too.
Fun fact: Senior-level programmers are often paid more than their managers. (At least in the companies I've worked for.)
I plan to program 'till retirement. I read plenty and seek out new challenges. With the advent of containerization, K8s, serverless I think there is plenty to learn for the remainder of my work time. I don't fear a younger generation will absorb it all any faster than I will, there's just too much to master.
So that suggests the older you get then differentiations and specialization are king. How does one full stack developer separate themselves from another? If you’re an expert in a sought after area then they come to you.
I think college grads eventually get to this where they’re now looking over their shoulder to the nextgen and realize they either need an exit strategy or a longevity strategy.
I was on the job market a few years ago and the only issue I encountered was salary. I think the problem is when you’ve been at a place a long time, if they appreciate your work, your annual salary increases will quickly bring you to the top of the market. As time goes on you’ll get a few percentages over the basic cost of living which over time really adds up. After 10 years your base pay can be pretty far above the market.