top | item 19407152

The Planned Obsolescence of Old Coders

51 points| zerogvt | 7 years ago |onezero.medium.com | reply

21 comments

order
[+] davedx|7 years ago|reply
I turned 40 this year. In the last few years I’ve tried tech lead, Scrum Master and architect roles. While I do enjoy being able to lead, mentor and do work that can make other developers’ lives better, I was drawn back to programming.

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

[+] mmsimanga|7 years ago|reply
43 this year. Spent last 8 years as a manager now back to being a developer and enjoying it. Yes I liked mentoring people and making decisions. I never entirely left coding I still spent about 20% of my time on code.

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.

[+] thestepafter|7 years ago|reply
While I am in a management position now I do find myself being pulled back to coding in a regular basis. Mostly because I have been doing this so long I know what needs to be done and other than updating myself on the syntax and names of methods I can pretty quickly code what I need. My biggest struggle is clearly communicating to my team what needs to be done so they get it right the first time.
[+] rcarmo|7 years ago|reply
I work as a cloud architect and still code, but the overwhelming perception people have from “senior” roles and people (which are often conflated) is that we are expected to be doing management, planning and presentations rather than knowing how stuff actually works at a fairly low level.

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.

[+] kthejoker2|7 years ago|reply
Are you me? Wish I could upvote a dozen times.

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.

[+] tibbetts|7 years ago|reply
I’ve hired engineers in their 40s and 50s at a startup where I was the 25 year old CTO founder. Now I’m turning 40 and my most recent title was CEO. Some of the best ICs I’ve worked with were later in their career. And not only are they good engineers, you can expect them to talk to customers, to prioritize what matters for the business, and to be circumspect about technology choices.

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.

[+] seibelj|7 years ago|reply
> Proven engineers who occupy the most senior roles should be deployed to solve the hardest problems on the most critical projects. Their roles should emphasize technical leadership through writing, speaking, and mentoring.

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.

[+] vfc1|7 years ago|reply
You don't HAVE to be an employee, that is only one choice among several possible ways to live.

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.

[+] blahblahthrow|7 years ago|reply
While I don't doubt ageism is a real factor in tech, this article conflated a bunch of stuff:

- 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

[+] exelius|7 years ago|reply
Discrimination is rarely about “one thing”. That’s why the concept of intersectional identity exists, and how the various components of who you are (age, race, gender, parental status, etc) get weaponized against you. The more marks against you, the more discrimination you will run into.

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.

[+] SimonPStevens|7 years ago|reply
There is something I've always struggled to understand...

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.

[+] gowld|7 years ago|reply
The ageism comes in when employers prefer younger people because of "trajectory" and "potential", since as you note, most of those young people will not show trajectory or useable-to-the-employer potential.

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.

[+] EliRivers|7 years ago|reply
Standing up now on my soapbox as I am, the vast majority of problems I've come across in a couple of decades and a half-dozen different employers did not require incredible programming skill or knowledge. When things went bad, they went bad because of lack of design, ignoring quality mechanisms (such as testing and reviews), inter-personal problems, poor planning, inadequate allowance made for training, and so on. Almost never for pure programming reasons.

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.

[+] RickJWagner|7 years ago|reply
Mid-50s programmer here. I have some advice for younger coders.

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.

[+] eggy|7 years ago|reply
I have been coding since 1977, but I have only had one job where coding was about 15% of my working tasks. I see coding as a tool, and have used in all of my jobs. Now, I use TaskJuggler and track my projects using it. I write desktop utilities in J for my engineering issues. I write small apps in Frink, C, J (switching to Dyalog APL), F# or Python to assist me, and sometimes other engineers (not software, mechanical, civil, marine, entertainment engineering) at my current job. I have even used Racket with Rosetta to do some generative geometry for a challenging structural job. I script Rhino3D, FreeCAD, Blender3D, and AutoCAD. I love coding, so I get to play at work and at home with it - it is not my main task at work. I read old and new, highly academic books on coding. Early on I made the comparison of coding full time to the word processors of the 70s and 80s. People talked about how if you learned WordPerfect you could make so much money. Then it happened in the late 90s early 2000s with "website creators". I have made sites for some small companies in ColdFusion, ASP, and plain HTML/CSS/JS. People took training, and at first made decent salaries, and then they became a commodity when salaries equalized with market forces of a large labor pool. I see a somewhat similar phenomenon going on with the basic coder today, especially front end or even full stack developers. ML/AI and data science is the latest refuge to at least allow coders to expand into statistics and mathematics with evolutionary algorithms, neural networks, etc. I was reading about neural networks, fuzzy logic, and genetic programming, since 1988. I am so glad I didn't pursue it as a job. I might have liked pursuing it academically, but I probably would have wound up in a related job. In other words, you're not just a coder, and I say that not disparagingly, but as what I see as a return to what coding was when it started - a cool tool to be used for your tasks at hand. There are those who truly want to code 24/7, and I see why, and can empathize with why they stay a programmer and don't move on to middle management. I may have chosen that path. I am glad I didn't because I have many other interests that I pursued through the many jobs in many fields I have had, and coding is always a tool in my pocket.
[+] sys_64738|7 years ago|reply
Isn’t this the old specialization V commoditization roles? If you have skills I can get cheaper (e.g. full stack) then I’ll hire cheaper. Specialization has a smaller labor pool to draw from so salaries rise (e.g. cloud).

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.

[+] tosser0001|7 years ago|reply
I’m moving into my later 50s and have been an IC basically my whole career. I’m at a company with a lot of people my age.

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.

[+] peter_retief|7 years ago|reply
I am 57, I still enjoy coding but struggle to work in teams. That is probably more my nature though. My experience as an older developer is that people are openly bigoted about age, that they would never be so open about race, religion or gender.