Ask HN: Developers aged 50, how have you gotten around age discrimination?
(I'm in my late twenties but I'm very curious to hear all your experiences.)
(I'm in my late twenties but I'm very curious to hear all your experiences.)
Ignore the fad tech, get a good, serious, bulletproof base in actual computer science -- I mean, LOW LEVEL stuff--, that will help you learn ANYTHING computer related quickly, and continue surfing that wave with whatever tech you fancy might actually be useful to make you sellable in the future...
And don't hesitate to drop stuff you invested a lot in. If it's no longer trendy/selling, just drop it like an old sock and spend time updating yourself. I'm a frigging EXPERT in dozens of stuff that would make people smile now (those who are old enough ;-))
And, if you're that old, you should be GOOD. Not just nerdy and opinionated, you should be able to demonstrate being curious, capacity to change, to work with younger guys as a 1:1 basis -- and use that tons of experience of yours in new fields.
I'm lucky, I manage to 'channel' that stuff because I'm probably still more passionate about my job most people will ever be, despite the pile of years, but I've never been 'age discriminated' before. Apart from when I was 18 and winging it a bit ;-)
I'd love to read your list. :)
I wrote a lot of "Apple Telecom 3.0" that ran on most "powerbooks" back in 1995+ or so, you know, modems, faxes, voice mails and all these very high tech stuff :-)
https://www.reddit.com/r/apple/comments/3faz2u/steve_jobs_in...
This is the Steve Jobs more young entrepreneurs need to know about and emulate. Not the "Jobs was an asshole and successful, therefor if I am an asshole I will also be successful" vision of Jobs. Or the "Jobs made pretty things and suckered people into paying too much for them" vision of Jobs.
Finding these experienced people isn't easy. Many don't want to move. You can't just drop by a college and grab them in bulk. We'd hire more (see https://news.ycombinator.com/item?id=19055183 for "Who is hiring?" post) if we could just find them.
When I first learned to program (I was about 12), I was using paper tape and those old Bell teletypes, in a facility that still used punched cards.
Here's my punched card story -- I bumped a box with a card deck and it sent the cards flying, mixing them all up. The systems operator made me sort the cards by hand. It took me hours. It was a few months before I learned that they had a machine that would have done that for me automatically -- but the sysop had decided that I needed to learn a lesson (which I did, in fact, learn!)
I think you'll see some survivorship bias in this thread — we may end up answering a different question:
"How can you tell who is likely to still be programming 20 years after they start their career?"
I wonder if you can expand on this. As I get older, I find myself and my peers confronted with having to answer to younger, often less experienced, stakeholders. What kind of challenges have these presented for you and how have you adapted? What philosophy or attitude should us aging techies adopt as the gap between our peers widens?
Don't feel underused or misunderstood etc etc even if you blatantly are. You won't be able to change it anyway, just work with what you have, and use your remaining brain cells to do stuff they CAN'T do: for example learning the next big thing quicker than they will...
Ultimately, it's just tech. it comes, it goes... You've likely seem most of it before anyway...
Also, when you DO find the basket case of someone who is interacting with you like an ass and has no clue about your real value, remember that it's THESE GUYS failings that will ultimately keep you employed to make stuff work in the end :-)
I just posted a comment in another thread about burnout. It's very common in our industry. I believe it's due to the Coolidge Effect. Aka, the brains inherent search for novelty. It's a struggle to not look at almost all programming tasks as just some variation of the same problem, if you've been doing this long enough. How do you keep it interesting enough, to stay passionate?
Most programming tasks are a variation of the same problem, you realise it, accept it and then realise that the way to write good software is to get decent at the building bit and then work on getting decent at all the other bits around it.
Requirements gathering (aka talking to people and writing down/recoding what they say), testing (hitting things until bits fall off), reliability (making sure things don't break the same way twice), documentation (making sure the poor sod in after you has more to go on than you inherited).
There is a tonne of variation in what the average dev has to do day to day (unless you are a "Here are the requirements, you can change nothing, implement this spec, never question it" dev - in which case I pity you) so the trick is to keep learning in multiple domains when one gets stale rotate to another, variety is as they say the spice of life.
And the marketing bods/management and so on more or less dragged the project off track, up to the point I didn't want to work on it at all, I quit, I left my 'baby' and had a hard 6 months where I didn't really want to do anything... Good thing is that I became a pretty competent landscape photographer along the way...
Nowadays, I work a LOT more like a mercenary. I don't mind working on projects that leads straight to the wall -- NOBODY will listen to you, or trust you've seen that 12 times before.
So as far as I'm concerned, I enjoy the work, the architecture, the TECH challenges, and everything which gives me a quick, and I completely ignore the outcome in the end. Sure, if it's a success, whoohoo whoohoo but I no longer put the same amount of 'care' and 'ownership' in what I do. I just let it go, and do something else just as efficiently.
It might sound cruel, but for the like of us who REALLY get a kick from designing/building/implementing stuff, it's actually quite liberating.
I just smile benignly on at the idiots in the room sometimes, it's quite relaxing :-)
The form I am referring to, builds steadily over time. It's not the result of some bad interaction with management, rather, it's the result of doing the "same" thing for 30 years.
I recognize that the problem is in seeing it as the "same" thing. Yet, given our job as programmers is often to see the forest through the trees, to identify patterns, it becomes hard not to see yourself as solving the same set of problems over, and over, and over, and over.
That's the type of burnout I'm referring to. I'm guessing you don't struggle with that at all ;)
There's LOADS of fields that you haven't done. I remember my first time trying to get my head around some VHDL code and I felt I was 12 years all over again looking at 6502 assembly code.
Make your horizon wider!
I'd love to be able to do 6502 for a living...
His solution: he became a long-haul truck driver (he asserts that the skill overlap between software engineering and long-haul truck driving is far larger than you'd think). After a couple of years doing that, he reentered the software engineering world, completely revitalized.
But I can't think of a better industry than software development to satisfy the search for novelty. There's always something new and interesting to learn.
(BTW I am programmer, a little bored out now)
Every day is the same. If you want to search for novelty, it's the fact that it is the same problem and it's been broken from the beginning of time. So do something else! But what? That's what drives me.
You can't dally, either. It would be easy to just spend a year logging (and probably get nowhere). But you can't do it in a job. They won't stand for it. So what can you do in your few minutes of leeway? What difference can you make? You aren't going to fix it, so how can you extract just a tiny bit more information so that maybe someday it will all click?
I think most people don't care about this stuff. Programming is inherently boring. You need to care about insignificant details to really get deep into programming, I think. I mean, it doesn't really matter. Global variable, passed parameters. It sucks one way or it sucks the other way. Who cares? Only crazy people, probably. But in my opinion, that's where the fun is.
My guess is that I'd be pretty average or less, given my patience threshold -- I've worked with fantastic managers before, I'm not them. I don't think there's much of a problem of age discrimination in managements, unless it's for places like startups and so on where "people" NEEDS to "look cool and startupy".
I'm a pretty effective mentor tho, and I seriously enjoy that -- I think it's a lot more "my place" than trying to manage/herd cats :-)
-- but people who don't will always struggle --
-- MORE so as they get older! --
So I know it sounds silly, but acting classes, talking in front of the mirror or whatever else might help a lot more than staring at a screen for a few days...
I'll confirm and reinforce everything you're saying here.
Six weeks after I decided to move companies, last year, I had three excellent job offers to choose between, and even more that were less great but still doable.
> you should be GOOD
I like to think that I'm pretty ok at this. Being able to compare and contrast Linux top half and bottom half interrupt handlers all the way through optimizing a y combinator implementation during an interview leads to some good results.
To the other replies about how to stay passionate after so many years of 'basically the same things over and over': I don't have a good answer to that.
I did some amazing stuff earlier in my career, and I long desired to find a place where I could go even further, but I've come to realize that it's unlikely to ever come about again.
Perhaps it's kind of like 'grinding' in your favorite video game. Same stuff, over and over, mildly challenging. Take pride and feel good about getting it done, well, again and again.
Can you elaborate?
Starting in the 1990s, I was in the 'devops' team inside of Network Engineering in an enormous and enormously successful (to this day) retail chain. At the time, we were told by AT&T, our biggest WAN provider, that we were the largest centrally managed network they were aware of. Even larger than any one of their own various management regions. When I left there in the early 2000s, there were tens of millions of IP addressable devices on the network, and my team wrote the software that managed and monitored most of 200,000 Cisco and Nortel routers, switches, access points, and other kinds of devices.
At the time, this retail chain was, on average, opening or relocating a new store every day, and each store had a surprisingly large network. Also, we were pioneers in just in time delivery.
So, the network had to be extremely agile (we had people all over the world, all the time, being paid to mess around with our hardware in the form of upgrades, installations, rollouts, etc) and exceptionally stable.
Store shelves would start to go bare after an hour of network downtime at one of our hundreds of distribution centers, across 10 countries. (The 'bareness' would happen many hours later, of course.)
For most of that time, I was the technical leader of the automation team inside of Network Engineering. NE itself had on the order of 40 or 45 network engineers, plus the 5-7 people on my team.
At that scale, automating 99% is about as good as automating 0%. EVERYTHING needed to be automated. And, as things changed, rapidly, my team's automation had to be ahead of it, all the time.
For most of the years I was there, my team delivered spectacularly. We even hit 99.9999% global network availability one quarter. Note: this is absolutely not a bullshit number. The sense of urgency and focus demanded that all assumptions were tested all the time, and availability metrics were very accurately calculated.
The monitoring system I designed and we built was state of the art at the time, and in some ways, even compared to the offerings today.
True story: an NCR contractor (who we widely used to do the in-store hands on work) decided to start stealing our equipment in Southern California. He knew we had redundant store routers; the frame relay circuit plugged into one, and the dial backup circuit plugged into the other. He knew that when one router was to be taken for service and another wasn't immediately available, the procedure was to plug both network lines into the remaining router; our automation handled that and kept dial testing.
So he walked into a number of stores, did that, and walked out with an expensive router.
When he was caught, the data from our monitoring system was featured in the prosecutor's case against him.
We guaranteed within less than a minute of accuracy that any managed device that fell off of the network would be noted and reported. And so it was, and he did go to jail.
From a technical perspective, I'll just say that the entire system was built around the paradigm of message oriented programming. Neither I nor any of my team members knew about erlang at the time, but the system we made organically had many of the same features and strengths.
And, finally, just before I left, I was pushing forward into using machine learning techniques to do truly predictive network monitoring and management. The initial results were extremely promising.
Can't you pretty much directly apply those lessons learned to Highly Scalable system design and implementation?
Seems like your skill set would be in very high demand, after a couple of Udemy Docker and Kubernetes courses.
I've helped a couple of companies implement Kubernetes already (:
I don't know if my answer is good, but here it is...
If I find myself in a position where I'm actually bored and doing the same things over and over, then I move on to a new challenge, be it with my current employer or not. The most important thing for me in a job is that it's interesting to me. If it becomes boring, then it's time for a new job that is interesting -- partly for my own emotional health and partly because that's a strong sign that I've learned all I can learn from my current position.
And there's always a new job that is interesting!
what would you consider a solid, time-proof set of fundamentals ?
Every large institution has an old COBOL mainframe running some mission-critical software that they can't upgrade away from.
Oh and be fluent in C -- you might not like it, you might despise it, you might think whatever you might think of it, but you will find 10 examples of anything in C for any programming problem you have.
Basically it's like being able to read/write Ancient Egyptian when finding a stone with wierd symbols on in the desert.
Then do a small run on how compiler works (you know some assembly, and you know some C now to match) from then you can infer how an interpreter works, and even infer how a JIT works. You'll get to understand how the Javascript in your browser actually /works/ -- that's more than what 99.9999999999% of the population will ever know :-)
Then feel free to play with other languages, quite frankly, I'd suggest not getting enamoured with one in particular. Ultimately, they are all the same. Make sure you understand how a garbage collector works, how dynamic loading of libraries works, and more generally, how the operating systems works -- no need to get in details.
Just ^^^ THAT makes you more knowledgeable than many people throwing O-n's problems around the place.
For training, i think you should try some easy "security challenge" that exist on the web, especially those based on shell, network and assembly with no stack-protection. They are not usable in the "real world" (well, some shell exploit might still work tbh), but you will learn how to use debugging tools efficiently, as well as reading assembly. If you want to be a devops, those skills are very important imho.
Instead of listening to you and I (age 50) there are some young people who would rather claim that basic/low-level/first principles knowledge is irrelevant.
I've never been 'age discriminated' before
I have. These coder-bros I was interviewing with accused me of Googling the answers and started in on the complete condescension. (I was doing the classic dynamic languages programmer thing and writing a quick script to answer their question programmatically.) Nothing fundamentally age-discrimination about that. It was how they spoke to me and treated me after that. Sometimes I still get mad or sick thinking about it. One thing I've learned, when people are projecting things on you which contradict the facts, that's a big symptom of bias.
I remember a while back on a guy who was raving about my code setting a (as boolean) flag with "done++;" -- he thought it was such an awesome idea. OH YEAH.
I think I definitely was. The attitude of one guy changed when he was looking through my resume and realized how old I was. There's this condition and particular set of reactions that accompany people getting strangely willing to believe you did something bad, even when they have scant or incomplete evidence. I grew up someplace where we literally had to drive 50 miles to visit friends of our approximate ethnic group. It's something that's familiar to me.
In my current job, I'm working with C++/MFC.
If I need a job now, I want to be able to call my list of recruiters and within the next week have dozens to choose from and 3 or 4 offers which has been easy to do between 2008-2016. When I was looking in 2017, there were more companies looking for Node and full stack developers paying what I was looking for than C#. I happened to find a job that needed my combination of C# and architectural experience, but the pickings were getting slimmer.
So now, as much as I hate it, I’m going down the full stack JavaScript road because that’s where the opportunities are, and filling in a few gaps that will let me be an overpriced “digital transformation consultant”/“cloud consultant”, etc. (Yes I die a little every time I say those words).
One skillset is about getting a job fast if needed the other is by getting one that pays more. It’s about optionality.
When you are still trying to be a software developer in your 40s you can't afford to not keep up. Companies are far more willing to let younger people learn on the job than older, presumably better paid old developers. They already stereotype us as not being up to date, no need to reinforce it.
I'm really sorry about that man... I guess young people tend to feel like they own the world. I'm 27 and I believe I have been raised outside this toxic bubble (I got a lot of shit from my parents, I never thought I was somewhat special just for the sake of it, I only felt special after achieving goals, I always felt necessary to them though, regardless of achievements). I believe younger people are raised like they are too special, the promise of a better world, the ultimate legacy of their parents and that tend to go over their heads, specially after a historical period of unprecedented growth in which my parents and I believe their parents lived (60s through 80s) in which they prospered.
Young people tend therefore to believe they inherited their parents achievement and they can only go forward. I feel lucky I don't share that and I would love to be your coworker and learn from you.
Yes, that sounds like the normal "folly of inexperience" -- it comes from people who don't yet have enough experience to know that they don't know as much as they think.
There's a reason that people (in any field) with less experience tend to be more certain of the correctness of their judgement than people with more experience. The more I learn, the more I realize how little I know.
> Sometimes I still get mad or sick thinking about it.
I think back on instances like that as dodging a bullet. Can you imagine the hell that actually working with those people would have been?
That's very true, but it has changed my attitude for the worse about interviews. The particular situation where someone can take facts and reality itself away from me (not really in reality, but in terms of the outcomes of the immediate proceedings) is like hell itself. The possibility of that lurking, because I am indelibly "marked" by my age is awful.
It is irrelevant to most jobs and no I am neither young nor inexperienced. I first started programming in the 80s in 6th grade doing a combination of 65C02 and x86 assembly language and I spent my first 12 years professionally bit twiddling in C - first on DEC VAX and Stratus VOS mainframes and then on x86 PCs. Later I maintained a proprietary compiler/VM used to write apps for Windows Mobile.
I think I have my low level chops....
Just as one example, the basic level of algorithms, where one could realize when they're creating a O(n^2) routine, is relevant to just about every shop I interacted with working for a language/VM vendor. I found it disturbing, the number of times I could play the hero just by knowing that much.
I've worked in shops using C, where I kept bumping into workers who hadn't the foggiest idea how a C compiler might work, and it not only showed in their code, it even showed in management decisions. (Long story short: The application literally had 100's of re-implementations of linked list.)
I've interviewed recent grads from top-tier schools with near 4.0 GPAs, who try and tell me things, like adding a pointer to a struct incurs zero memory use. Then I ask them how much memory a pointer would take up, and they can't give me any kind of answer. (Or ask me a relevant question for more info, so they can answer.)
All this stuff could be avoided if there was just a certain level of basic background knowledge. They're like car mechanics who don't know the first thing about electricity. There's a certain level of background that can keep you from inconveniencing and hurting yourself. You don't need it most of the time, but when you do, it can save you a lot.
I think I’ve had to implement one complicated algorithm that was low level and not a complex business requirement in years and that was the “shunting yard” algorithm to convert a string algebraic expression to a number as part of the parser for the compiler I was maintaining.
Most developers could go there entire successful career without ever knowing how a compiler works.
Only a smattering. I could cover just about all of it in 2 nights of instruction. However, that doesn't mean the students would have mastered and internalized the concepts to the point where they'd make the right realizations when they need to.
I think I’ve had to implement one complicated algorithm that was low level and not a complex business requirement in years and that was the “shunting yard” algorithm to convert a string algebraic expression to a number as part of the parser for the compiler I was maintaining.
Right. Most of the time, one implements simple algorithms, using hashmaps and "vectors" as building blocks. But first principles knowledge can also make one better at that.
Most developers could go there entire successful career without ever knowing how a compiler works.
(Their.) Right. Most people can manage. Just like most mechanics can manage to muddle through learning as they go. But why not have mechanics learn basic knowledge about electricity? They do, because that kind of 1st principles knowledge can save people from pain. The same applies to CS/programming. Also, the knowledge itself is pretty neat. A lot of people get pleasure from learning it and being able to understand their world in a deeper and more nuanced way.
People going to top-tier 4 year universities, getting a 3.75 GPA, but coming out with no more than a glue-crud-apps-to-cookbooked-machine-learning/buzzword-of-the-day-library level of knowledge just strikes me as a colossal waste and colossal rip-off. It's also people becoming the victims of low expectations. I know that kid who tried to tell me that a pointer doesn't take up space could well have learned that stuff, if his program had just had slightly higher expectations. I'm reminded of schools who track certain kids into learning nothing more than what's necessary to balance a checkbook. That's killing young minds with the bigotry of low expectations. We're probably already at the point where some say asking kids to learn enough math to balance a checkbook is asking too much. Something about that strikes me as selling people short.
Some older people I worked with (I'm 40 now) were well respected by the others, because they prove time and time again that their experience is really valuable on all kinds of stuff, both low level details and high level strategies. To show this in an hour is difficult.
Although I was once able to do it, and was hired. They asked me a typical OO inheritance questions with a base class Animal, and derived classes Dog and Cat, and then let them "bark" and "meow". I knew were it was going, so I said "There will probably come more animals after this, so what I would do is drop the inheritance and move into a data-driven approach, where the specific animal behaviors can be defined in a config file, without needing to go through programmers have to compile a new exe every time". They liked that response, although that was probably not the standard answer that they were looking for when interviewing juniors.
And basically such things are your job as a senior anyway, to look into the future and steer the short sighted solutions that juniors come up with.
I can’t agree with this. Most businesses aren’t doing anything that require leetCode and deep algorithms knowledge. After a certain age, what’s important is to know how to drive business value and how to either save the company money or make the company money.
Also, be well aware of where a technology falls on the hype cycle and keep your skills current with it. Whether you are looking for a job or not, see what other companies are looking for and make sure your skills are in sync.
Also, knowing how to speak the language of business is just as important as knowing how to talk tech - if not more so.
Finally, networking. Network with former coworkers and get to know local recruiters.
I’m 45 and I am not seeing any signs of ageism. My former manager is in his late 50s, self demoted to an individual contributor after his kids graduated and is now a full stack React/C# developer on top of Azure. All of the people he hired at our former company were 38+ and we are still developing, switching jobs, and are very much in demand. None of us are in management.
And yet, those are still the most popular interview questions :/
Even though they made an offer, it told me a lot about the company that they never asked me any architectural questions. I declined the offer. The job I did take, the manager asked me what would my 6 month plan be to create a modern software development department and to migrate their system from one based on PowerBuilder written in 2000 to use modern technologies.
For my current job - still as just as individual contributor at a small company, we discussed the technical challenges and the goals he had and we started diagramming.
I would have to try my best not to laugh at a company who was building yet another software as a service CRUD system who asked me to do algorithms.
I have a personal request... Please don't say "And, if you're ${SOME_DEMOGRAPHIC}, you should be ${SOME_LABEL}"
I understand what you are saying, but it doesn't leave room for someone like me. I got mu first dev job at 40, about 5 years ago. No matter how good I am, it's not possible for me to have more than 5 years of experience. And my age has nothing to do with how good I am.
Young devs are surprised when I say Git is only okay, look forward to the next SCM tool, they tend to think git will be the tool fir eternity, and surprised when I list if the 6 other tools I’ve gone through in my career ... so far!
What are the things you would suggest to learn and what resources do you recommend?
Thanks, again!
By comparison, trying to get a job in web or app development was a nightmare of interviewing with twenty-somethings in open plan offices, who gave me programming puzzles to solve on the spot, then turned on loud techno while I struggled to concentrate. Which honestly told me all I needed to know about what it would be like to work in their trendy consulting office.
But my opinion on all this might very well change if I lose this job... maybe there is an age "brick wall" at some point I won't be able to scale. I'm hoping not.
I think age of the companies themselves comes into play. If a company is only a year old, nobody has had time to age with the company, almost nobody is going to have had a kid, been through major medical issues, ect, while working there. Even if an individual may have that kind of life experience, the company itself doesn't. I think it shows in the kind of environments they create and the type of people they tend to attract/want.
There is ageism, yes, but I think a deeper problem is reaction to peoples appearance. If you are late twenties concerned about age, then hide it, starting now.
* Always wear sunscreen when you are outside, regardless of race. It prevents skin aging, and you'll still tan and get Vitamin D regardless.
* Work out: lifting weights and doing cardio have differing goals and match up in interesting ways. Learn them. I do almost 100% pure heavy weight lifting, and I'm actually very thin, despite what I toss around.
* Make sure your clothes fit and look good. Go to a tailor and get one outfit made nice a year for interviews/on-sites (if working remotely) etc.
Taking care of yourself physically might not seem related to a lot of this, but people discriminate in a number of ways, and the more you take away, the better you might do. In addition, two of the above are general health things that you should be doing anyhow.
I forgot about interpersonal skills when I first finished writing this:
* Practice getting people talking about themselves. It's the best way to get people to think that you are interesting. I would argue it's the most important tool in my interpersonal skillset and I've met a ton of interesting people using it.
Any over 50 female developers care to respond to this "look younger" advice?
people i've interacted with irl but never seen online
Working out with a bad knees and back is not that hard, and is really common with runners who started in high school. Extremely common in fact, especially with road runners. I see these people in the gym all the time lifting weights because it's so low impact, while at the same time being a primary defense against osteoporosis. Nothing that you do can replace it and I would strongly encourage it after talking to your doctor.
I've posted about this before but Ginni Rometty, who is 61 years old, has perfect blond hair with no gray; she obviously has it colored. She is the CEO of IBM and feels the need to do this... that gives you a sense of the amount of pressure on professional women to look young.
Original text https://www.chicagotribune.com/news/columnists/chi-schmich-s...
And late 90s pop hit: https://youtu.be/sTJ7AzBIJoI
Could you elaborate why why that is the case?
In other words, you're an interesting person if you're interested in them.
Any recent examples?
Eye contact is a powerful thing, especially if you're trying to be persuasive. And persuasion is an important part of business, even if you're not in sales and even if you're a software developer.
I recently changed roles after going back to my UNIX SA roots and working for the last few years in a front-line customer-facing support group; what people would call the ops side of devops. My boss was gutted to lose me as their last line of defense before escalating to Red Hat but what he and his boss miss the most (so they say) is my ability to remain cool under pressure and solve technical issues while managing bridges with MDs and EDs on the line.
Partially it was organizational authority (oh, they escalated to that guy) but it was also technical authority (oh, they escalated to the guy who solved the last major problem we had, and put in a SIP to make it never happen again) and partially it was managing the message and keeping it appropriate to the audience.
I realize this is an absurdly self-aggrandizing post but it's an honest assessment of beyond strictly technical ability how some people add value and my way of agreeing with the post above mine that interpersonal skills are paramount.
And to echo what others have said - keeping current is IMHO the key to keeping employable. I ran down the Red Hat Certified Architect track because my employer paid for it and it was a way to get my guys motivated to get it done too to better their skills. We have several more RHCAs as a result. But I also spent the last year building k8s clusters and figuring out how to integrate kubernetes into my employer's systems and now I'm off extending terraform providers in go to the same end. It's fun as hell to think every day I shave off getting systems to my peers sooner is one more day they're productive that much faster. At the scale we work that's a huge lever. How can anyone not be excited about that regardless of age?
On a side note, I do intermittent fasting and caloric restriction to hopefully reduce my rate of aging.
There are more recent studies like https://www.ncbi.nlm.nih.gov/pubmed/22086817, where if you go to the link, it actually points out the value in spending some time in the sun, getting some melanin and vitamin D development, which will fight a specific kind of skin cancer (CMM) that doesn't seem to be stopped by sunscreen, and might have a number of confounding factors.
The basics are that it's complicated, but that if you are spending time in the sun, you should be using sunscreen, but that you also need some sun, or something like that, who really knows.
https://www.nia.nih.gov/health/skin-care-and-aging
That article also suggests the use of sunscreen.
1. Be of value. 2. Always learn new things. 3. Seek opportunities in the code base (there are wins in there) 4. Keep learning. A repeat (see #2), and important. 5. Embrace new.
We work in an adapt or die industry; keep that in mind. And, if a shop discriminates about age, find a better shop.
Are you possibly refers to improves existing code base, shall it be Open source projects or in-house developments?
Your negativity is only rewarded if somehow you're right (which is more a result of broken clock syndrome than anything else), so you and people like you are incentivized to keep sniping from afar.
It just seems that that is constantly the case. We might well be another 3 or 4 decades away from software development technology hitting real maturity in terms of really streamlined tooling, frameworks, languages that help us work at the right level of abstraction at the fastest speed.
I don't think it's an entirely unwarranted comment. I think it's wise to constantly be thinking about and looking for "what awfulness are we accepting as a trade-off to get the great benefits of this particular way of configuring our process?"
By all means get into the hype, dive in, be excited. But don't forget to shit on yourself because you know the shit is coming at some point. If not in 5 years then in 10. It'll help you see it coming.
You didn't say anything particularly actionable or insightful. Just projecting vaguely pessimistic and defeatist attitude.
The rest of us reap the benefits of innovation, standing in the sun, while you rot in some forgotten basement where the last self-hosted server rack at a fortune 10 company is kept. You'll have cursed yourself to the menial task of caring and feeding the pets surrounding you, the last vestiges of what you've tricked yourself into believing was a simpler, saner time.
Pessimism loses against the unyielding light of positivity. It may feel good to take shots from the shadows, but you're developing a hunched back, hiding from view.
It's also just cheaper and more reliable at that scale.
This comment was true 15 years ago. It's now so outdated that you're flagging yourself as one of those basement dwellers I wrote about above...
People often misconstrue my pragmatic hyper-realism for pessimistic defeatism. It's nothing of the sort.
Nice rhetoric though! I really pictured the rotting corpse at the computer in the basement of the fortune 10 and partying on the beach with models and bottles making the promo video for Fyre festival. You really took me there.
Ever deploy the same software to multiple servers, and it maddeningly behaves slightly differently on different servers, and you're not quite sure why?
This is the problem docker solves. Install exactly once, when you build the image. Then deploy the exact same code, down to the bit, as many times as you want, to as many servers as you want. Or quickly roll back to the Docker image for the previous version.
So this is how Docker helps you scale quickly and deploy as often as you want, with confidence.
Kubernetes, meh. Just some code for spinning up more or fewer Docker containers in an automated fashion. At least that's my impression, I haven't had to get my hands dirty with it yet.
I think where Docker tends to shine is when you are operating at scale. For larger players using VMs to recreate a computing environment is expensive and eats into your bottom line. In such situations there's value in having some kind of tooling or API that partitions and simulates specific environments for processes running in the same kernel space. For better or for worse, in 2019, Docker is the best solution to this problem.
Containers give you the ability to layer the pieces you need on top of each other, so you are only responsible for the parts that you maintain. No need to rebuild an entire VM image every time one piece of the stack is updated.
Distribution of containers is also far more efficient than full virtual machines (especially important in a highly distributed environment).
Location probably matters. My (also midwest) company was foaming at the mouth for a competent Java/SAP developer (which, forgive me for being catty, seems like a technology only a 40+ yr old would fill) a few years ago, never found anybody, position was never filled.
I'm working as a web engineer — not a manager or even team lead — working remotely from the Midwest for a coastal company, and I'm pretty happy with it. All I can say is keep learning, be friendly, and delight in the energy of all you young people. I am not entirely sure why I have been hired, or even whether it was a good idea for my employer. So maybe stay humble too?
Maybe being remote prevents me from pinching the cheeks of adorable devs 25 years my junior. My advice: Don't pinch cheeks. Turns out Millennials don't like it. No matter how adorable those little non-grey-haired hackers are.
Anecdotally, the older I get, the less ambitious I get about my own career and the more interested in just helping out and doing things that make a difference. My self-discipline has become marginally better over the years, and my coding ability marginally worse. Definitely trending towards grandparent.
Things I especially like: interviewing, having a real-world impact, learning things, using cool new tools, helping out, justice.
Things I dislike: politics, jockeying for position.
Also, the whole "I've forgotten more than you've ever known about this field" feels true. But honestly thank goodness you didn't have to learn it, because a lot of it is irrelevant now.
* socket listeners
* line drawing
* explicit memory management
* old APIs and libraries
* Perl
* Assembly
And things I rarely use:
* Semaphores & other threading primitives
* XML
* C/C++
Now, knowing these sometimes helps, but the amount of time I spent on them probably doesn't justify the benefit aside from the fact that it was necessary at the time.
And somebody is doing these now — I just find I don't need to, as it's always handled somewhere below the abstraction layers where I work.
An equally interesting list would be the things I use now that didn't exist when I graduated from college in 1996.
I can't recall the specifics but it's something like
10% deep-diving on long-lived fundamentals
25% going deep on your core stack you will be using for the foreseeable future
The rest on the what's in front of you + what's coming next
I really like it.Do you want to make more money, get more connections, have everyone like you more and treat you better? It's as simple as buying some nicer shirts, getting regular haircuts, and eating better (which has its own host of plusses).
Some programmers are 55 and really good. They also have stains on their t-shirts, are overweight, and act morose all the time. In a perfect world this wouldn't matter for a job interview, but you are not interviewing or operating for a job in a perfect world.
I'm not saying that one shouldn't adapt a bit, but dyed hair and "How do you do, fellow kids" clothes overshoot the goal by a good bit.
Describes more than one 20-something developer I know. Being a sloven does not correlate with age.
This seems like a minor thing, but assuming you're not incompetent, someone who knows how to dress themselves will be perceived better by those whose opinions matter.
The key is to match the general attire of the people around you, but do it a bit nicer. If everyone is wearing shorts and jeans, don't wear a suit to work.
Edit: This advice isn't limited to young people, there are plenty of older people that need to learn how to dress themselves. As a general rule, though, the younger generation dresses a lot more casually than I did at their age, and many don't seem to have been taught when an occasion calls for dressing a little nicer.
I'm 49 and have gray hair, and have since I was in my mid 30's, but I've not had any trouble getting work when I had to (or wanted to) change jobs. That said, I dress fairly youthfully (in typical Silicon Valley jeans/untucked shirt) and am told I don't look my age.
Embrace the gray beard, find one of those companies that welcomes us geezers, and clearly articulate how our decades of experience translates to business value.
Clearly there are some companies more open to more senior people in various roles. At some level, the path of least resistance at least is to accept that.
Forget about you 50 year olds out there, I was the stupid 22 year old wearing a suit out of university.. didn’t get any offers till I put on a scandinavian accent and dressed like a hipster.
What I do is what I've done from the very start of my career over 30 years ago: I am constantly learning and keeping my skills current. That's not something I do to ensure employability, it's because I am genuinely into this stuff. I produce software for a living, and I also produce software as one of my hobbies. There's always something new and fascinating to tackle, whether it's in the workplace or not.
My professional focus has become networking and security, but my skillset is far broader than that, so I don't call myself a "specialist" at all. I'm just an experienced engineer. I don't know how to answer the tech stack question, because I use a very wide variety of tech stacks, operating systems, and platforms both in the workplace and at home.
Have I been discriminated against because of age? I honestly don't know, but I have no problem getting excellent jobs, so if it's happened, it doesn't matter.
I determine if a company is right for me in two steps --- first, before I decide to apply, I research the company to learn its history, what prior employees think of it, what technologies it uses, etc. If I feel good about or am still interested in the company after that, I'll apply.
When I interview, I don't look at it as them interviewing me. It's exactly the other way around -- I'm interviewing them. I pay close attention to what they say (not their sales pitch, but what sorts of questions they ask), the physical environment, and I pay attention to all the employees that I can spot who aren't on the team that is interviewing me. Do they look happy, angry, etc? My experience is that whatever they're feeling is likely to be what I'll be feeling if I take the job.
specialty is assembler, firmware and hardware prototyping. I usually work on contract. The thing with high level stuff is that it is always changing face but never goes past the fact that it all boils down to low level operation of digital devices. If you can work at the level that allows high level language to operate then you have real power and controll, but not the convenience of ready made assembler routines, you have to roll your own firmware, and your own assembler macros. If you are a bonafide OS engineer, firmware engineer, and chip engineer, everyone else is riding your coattails, and you have direct knowledge of how a computer or any other sort of object code device functions.
{adde} after skimming through the comments it helps if you already have a code library of your own. You should be equivalent to a tradesperson with a full set of tools appropriate to the job demands. if you are re-writing code to implement a UART for example thats like an electrician constantly manufacturing a screwdriver on the job.
If you can write a piece of code from memory thats good, but proper preparation before hand is a mark of experience.
I’m 45 and have religiously kept my resume “buzzword” compliant.
You can’t learn best practices, frameworks, etc in a few days. Yes things were already invented, but if you don’t know the ecosystem you’ll end up reinventing the wheel badly.
I get around age discrimination by looking a lot younger than I am. I achieve this by dressing current which doesn't mean trendy, just don't wear that same old sweater to work you've had for 10 years, keep it for family time. New clothes go a long way in this situation. Also don't over dress, that's a huge give-away so no suits.
I also shave my head, but if you aren't losing your locks, good for you though you'll want to consider dying it.
I also workout a ton, eat well/little (restricted calories, etc),take a ton of vits and sups including metformin, NMN and resveratrol to name a few of the more useful and/or exotic items. I thinking being lean, fit and strong also goes a long way toward conveying both youth and confidence that employers are naturally drawn toward.
I mean look when you've been coding for 30 years the problem isn't your abilities, it's how you are perceived by a potential employer.
I'm 51 but most guess my age around 38ish.
This is my experience as well. I'm a lifelong amateur athlete and I don't wear sloppy clothing. I've seen the difference in treatment with other guys my age (49) firsthand. It's not about looking younger necessarily, just looking like you aren't falling apart. For whatever reason, some people correlate physical appearance with ability.
I now have a new job at much much less salary.
Helped that all of us had previously started companies and three of us had good exits. But then again we'd each had 30+ years to get that experience.
My ex-employer said that if I want to have a better pay, I'll had to have a management job. I'm not interested AT ALL about having a management job. I LOVE programming, system engineering, ...
This is why I started my own "one-man" freelancer business : I do what I want (and not what my boss want), when I want, ...
Now, I work for MY dreams and not the dreams of another person ;)
Also now working on another startup with friends roughly my age and have a couple other startups as options there if I wanted to take on more.
My specialty is pretty much being a jack of all trades and being able to learn new ones quickly. In some ways it sucks because there isn't any one stack that I eat, sleep, and breathe, but on a typical day I do some golang backend, js/html/webgl frontend, obj-c iOS, maybe some python, linux sysadmin, and some graphic design. The benefit is that it means not needing to go find and hire/contract another resource.
Keep learning new things. I know many people my age that spend 10+ years on a single tech stack and never really learned anything new. Then suddenly they're out of work and realize the demand for C99 on Solaris isn't that high. Go to Meetups, conferences, webinars. Take on side projects. Mentor students.
It helps that I look a bit younger than my age. I honestly probably get more discrimination due to my weight. Working on that, but if you can maintain your fitness and the appearance of boundless energy, it overcomes a good bit of age.
However a recent study shows that, in the US at least, 55% of all workers are laid off before they reach their "natural retirement age". So you need to plan ahead.
Over the past twenty years the demand for technical talent has changed a lot. In particular, the demand has increased a lot at small and medium sized companies due to their use of the internet.
So a useful outline of a career now is, start at a large company and learn the ropes, then move away from niche technologies to more generally in demand technologies like LAMP for example. By the time you hit 35 years old you should be starting to angle for more senior jobs at smaller companies.
Software development now for smaller firms is starting to look more like law and accounting practices. Your experience there is now an advantage since you will understand more of the complete corporate needs in addtion to your tech chops. Whereas if you stay and a larger company (cough IBM) you're now just too expensive for you niche skill set.
(*source - still doing lamp stack dev at over 60)
Development shouldn't be a 'King of the Mountain' contest, but it is. Here's my story: I have commercial experience in C, Java, Visual Basic, MUMPS/M/Cache and Node.js. I've worked in Healthcare ( A/R, Laboratory reporting & instrument data acquisition ), Integration Space (e.g. webMethods), US defense space. I've worked in a 'tools' team delivering components used by application development teams.
On the side, I've written an open source project on Github, I've attended many meetups in recent years - and user group meetings before the Internet was a thing.
My point, is that I am very experienced. I've never had a bad review, I've worked for at least 15 different managers, I've worked at a few companies multiple times.
Yet, I still struggle daily to hang on to the thing I love which is to write code. From my perspective, this is a real problem. It seems impossible to simply be a developer for your career because the pressure from the industry is to cut developer labor costs.
Btw, I am currently an Senior Architect. I've held many titles since 1988 including Princial Architect and Junior Programmer Trainee. ( I got into software after starting off as a lab technician in healthcare. )
The only people I know who are my age are those folks who truly are kings of their mountain. This is not what I envisioned. I helped raise a large family ( 5 children ), but I am constantly working in my head - regardless of whether I am at the keyboard or not.)
This is not what I expected; however, I've been paid very well, so I've been lucky - or my family has.
Some general skills that I've found help... Excel at speaking (be concise, organized, prioritized, relevant, insightful). Excel at writing and editing (tech-related communication seems notoriously poor at most companies). Excel at presenting (again, too often there's lots of vagaries and hand waving).
If you come across as sharp and tuned in, I've found that it's almost impossible for others to dismiss you. That is, unless they're idiots. So make sure you're not surrounded by idiots. That's rule #1.
(OK, maybe not for software companies but certainly for engineering and manufacturing companies.)
Die your hair and adopt the “lingo” of the cool dudes.
Like double barrel your boss with your fingers and wink and say “I like your style” no matter what he says.
Or if you agree with a colleague you say “fo shizzle” to gain their respect.
Refuse to program in anything old. All code has to be Haskell or whatever and throw in a neural network. If you can do that in a container you’re home free.
After looking locally to no avail... I added a new strategy: apply to various federal government jobs. Benefits include stability (although with the recent furlough maybe that isn't 100% rock solid) and no possibility of the job being outsourced/offshored, etc.
I'm 50 now, been a software developer for 25 years, still working for the government, and still enjoying it. Projects are varied, I have reasonable latitude in the programming I do (job is ~50% coding, ~50% other stuff), managers understand work/life balance. Yes I don't get stock options out the wazoo and other Silicon Valley style perks but I also have other hobbies and time to enjoy them. There are tradeoffs but overall I'm glad I did it.
Focus on combining your software engineering skills with delivering value in a specific, core competency.
That is to say:
Good software engineers tend to focus on being good at programming, and all of the details that venture entails (e.g., mastery of specific languages, knowledge of specific ways of operating in a given framework, IDE, or tool, etc.).
Better software engineers are capable of all of the preceding, plus the ability to apply a deeper level of problem-solving ability that has been laser-focused by their experience in the art.
Superlative software engineers are capable of all of the preceding, plus the ability to leverage those skills to deliver value as a Subject Matter Expert (SME) in a specific domain.
I believe that you have to be more than just a programmer if you want to maximize your career's longevity, and its associated compensation package.
When it comes to 1), the best fields are ones where either hardware or regulatory issues slow evolution. Examples: embedded systems programming, working on highly regulated systems for the aviation, medical, or automobile industry.
Finally, and its not really in my list, but you could always create your own product or service. That's a sure way to protect your income against age prejudice. Nobody cares what age the developer of their software is ... they just want to know it works.
This is a bit of rhetorical question--I get that there are stereotypes and companies want to build young, hip teams, but personally I find it short-sighted and naive. I'd rather be on a diverse team, age included. If I go for an interview and see that everyone is a white male in the late twenties/early thirties, I'm going to be pretty disappointed no matter how many hipster toys they've got in the lobby. It's a sign that corporate politics and HR are going to be problematic.
Last week a hiring manager said, before introductions, before shaking hands, "This job is for 22 year olds just out of college." He shut the door, literally, seconds after.
Consider viewing your HR contacts on LinkedIn then view the "also viewed" profiles. Notice any similarities? These decision makers determine whom you will see when you interview. Thank you for wanting to see different when you visit a company.
(Although you have to make it to 59 1/2 to withdraw without penalties!)
While I don't exactly hide the fact that I'm in my late 40s, I do find myself avoiding some discussions at work that would show my age, like talking about my older experiences or making pop culture references from the '80s or '90s.
Yes, you can talk about making yourself so useful that age doesn't matter, etc., but the truth is that age discrimination is often an unconscious bias, and I just find it easier to "pass" as younger than to spend my energy trying to overcome it.
Of course I focus mostly on just being good at what I do. There are benefits to age. Experience and knowledge, of course, but hopefully also wisdom and temperament.
If there's one thing I'd like people to take away from this thread, particularly people in their 20s, it's to re-examine your unconscious biases about age. How often have you assumed something about a person because they were older than you, and what can you do to overcome that and judge them on their merits instead?
I pretty much always think they are 'smarter' than me.
The only issue I've had with older folks is that they often say 'not my job'.
Which, from my experience, is not a bad thing. It's often a sign of someone who recognizes that meeting everyones else's expectations at the cost of their job expectations is short sighted and the equivalent of shooting yourself in the foot.
And rarely does anyone have enough time to even meet their personal job expectations.
There are those whom are just lazy and only want to contribute the least amount possible, but I think you'll find that's not limited to older folks.
The there is the idea that your new boss may be threatened by your skillet, which opens yet a whole other can o' worms. Age discrimination in the SF Bay Area is rampant, no one will ever admit it, but it's here. It's like gravity, one denies its existence at one's own peril. So get your botox, your skinny red jeans and your converse or whatever they're wearing these days - don't forget to ink up - even if they're temporaries :)
Oh and impossibly colored hair might help too.
p.s. laugh while you can monkey people.
What keeps me going? There is just so much interesting stuff going on with computers - how can you ever get bored :)
There are a lot of people better than me, also younger than me, but I can still knock out solid code. I think not thinking I have mastered something keeps me going. There is massive churn in languages and technologies, all my COBOL / FCS / IBM Mainframes skills are consigned to the dumpster but they help me learn new things like C / CP/M / MSDOS / Assembler. Which got dumped for Unix (not Linux) / Macintosh (pre OSX) / Prolog / Lisp / C++
I'm now doing Python and Ruby on Rails and learning Nim and Virtual Reality
What a time to be alive!
Age discrimination - can't say I've noticed it but I've always expected to be judged by my abilities not may age. Perhaps I've been lucky
If I'm honest I'm probably a little bit slower mentally with very challenging, complex problems than I was 15 years ago. But, I work with some of the highest paid people in the industry and I have never once thought to myself that I was out of my depth or slow technically compared to my colleagues - regardless of their age.
And there are real, big advantages to age / experience:
- Technically I have great breadth of experience: I'm (mainly) a front end developer but I've worked commercially in Node, C++, Java and PHP; I'm confident with server + database administration and dev-ops, complex application architecture and scaling. I'm the one that the senior managers turn to when they have problems / doubts / questions because I solve problems / answer questions for them - regardless of the tech stack.
- I'm more mature emotionally and have far better interpersonal skills and experience, meaning I am far more effective and pleasant to be with in a team. This is a huge (way more important than technical skills) thing - particularly in today's work climate where it is not acceptable to be 'toxic'. I am experienced about getting my ideas across and giving feedback without being an asshole; I am unfazed if people are stressing out / blaming / ignoring / not listening to me. I am not egotistical, insecure or emotional and I have enough experience with office politics to know what is happening and what people are about.
You better be technically very good. And not have too shitty of an attitude. Because you probably make a lot more than the youngsters.
I moved to management position but still do development when no one is looking :)
My Co just published a worldwide press release over system I built over last Xmas break. So it's fun from all sides.
When I code these days, I'll take Python.
- Stay (get?) fit.
- Dress well.
- Avoid public displays of curmudgeonliness.
- Mentor the young, high-speed people.
So far, I haven't noticed any problems. Less than a decade to go!
My funnel is targeted for specific startup cofounders having trouble finding expert android devs...expert in the sense that they as either the tech cofounder or the creative cofounder already know that their android app should be on kotlin and using redux not MVI or MVVM.
Basically building the demo apps show them and start the discussion.
All things equal, how many days can you work without sleep? How much do you need to get paid to do the job?
Age is just a coincidental number that correlates (doesn't cause) to number being able to program for days on end without suffering increasing consequences, and getting a programming job for $15 / hr not being suitable to handle a mortgage, truck payment, kids braces, and the things that come with the higher age number.
So, if you are starting out at 40 and someone is competing for a beginner job at 18, they are going to be the obvious choice because 1) they are typically more of an open book, and 2) you can pay them $15 / hr to get the same work that you would need to charge $40/hr to do.
That being said. The other side of it is if you have been programming since you were 7 and are now 42 with 20 solid years of professional experience competing with Joe Youngster who wrote his first line of code last year and has been to a programming boot camp.
Part of the issues are that you still have the stigma of 1) not being able to sacrifice time/sleep for code, 2) are more expensive.
Both of which are accurate.
However, if you are competing for a job that an 18 year old qualifies for after 20 years of experience, something is amiss.
I've seen this MANY times and am guilty of it myself, where a person will spend years spinning their wheels and not actually increasing their skills. It happens to a lot of people. You could get the same year of experience 20 times over (there was a good article written about that, good read, don't have the link handy). So "20 years of experience" boils down to 1 year of experience that you have practiced 20 times over.
After 20 years, younger programmers should not be able to compete with you. Not because they can't write code as well as you. It has nothing to do with that.
But the experience should have taught you and made second-nature all the design patterns, all the best practices, all the security tricks, all the devops.
An 18 yo can code, but they can't build a palace out of code yet (and if they can, they are typically swept up quickly). It takes years to go from knowing how to lay a brick to how to design a brick building to never crumble even if someone is beating it with a fallen tree.
While age descrimination exists (the concept of a senior developer is iffy sometimes), and I experienced it for the first time last year when someone said "no thanks" and hung up when they asked how any years experience I have; it doesn't exist when you are actually shooting for jobs that require 20 legitimate years of experience.
Some programmers settle back knowing they could code the world, but don't actually do it. Or code something twice as fast. Or 5 times as solid. Or with 567% less bugs.
What makes the 20 year experience you better than the 19 year experience you?
If you cannot sell that one year of difference, then it's not age discrimination, it's skill discrimination.
And to answer your actual questions.... :-D
What is your stack: After 21 years, I've work in .Net/Java/Node.js/LAMP(erl&HP) stacks plus tinkered with others. Now I do application security.
How have you gotten around age discrimination: When I've been discriminated against, I feel like I dodged a bullet, because who would want to work with / for someone that judges the content of a book by the wear of the spine?
How do you suss out whether a company is right for you? I focus on team and personal questions when I interview a company. What's the team culture, do they support members teaching each other, do they foster speaking at conferences, etc. The more information flow between developers and the industry the better, generally. That indicates a supportive culture rather than a competitive culture. Ask to speak to people you will be working with. "Their references".
I ask personal questions of interviewers. What is their next skill they are going to work on? What was the last issue they tackled that really taught them something new? Do they seem themselves with this company in 10 years? What was the last conference they attended? Was that on their own time? When was the last time they had an opportunity to speak at a conference?
Don't worry about getting into personal questions relating to their job.
I've found that tells me more (not necessarily their answers, but also how they answer) about the culture than the standard shpiels.
It's ALL about culture. A crap boss and crap co-workers will never be made for with good pay or high-skills in the long run.
She's been working in tech companies for long and it's sad that some 20 somethings call her MILF when she's not around.
Age descrimination is a very small thing in the grand scheme of things, so she said she doesn't feel much descriminated as age is a proxy for experience if you are good with what you do.