Old Techies Never Die; They Just Can’t Get Hired as an Industry Moves On
nytimes.com
nytimes.com
It bothers me that we treat unemployment as somehow a failure of the system. As if economies only exist to provide jobs for everybody, whether those jobs make sense or not. It's much more the situation that the world economy is evolving. All of us had better get our asses in gear and catch up. Spend more time getting experience and learning strategies you can put on a resume and less time taking silly courses and waiting for the tooth fairy to come along. I am very sorry that our education system is completely out of whack with what we actually need. There area lot of folks with great credentials who are lining up to create "jobs" programs that will have very poor results. But if I'm an unemployed person, I can't help any of that. The only thing I can do is to take responsibility, keep busy, and start my personal marketing/sales machine.
I said that in a pretty cranky fashion because there's another point that's missing in a lot of this discussion: I find as I get older my tolerance for bullshit decreases. The first time you work for a bad PM who is destroying the project you kind of buckle down, maybe struggle along, but generally put up with it. After all, you have nothing in your life experience to give you context. But after a while, it seems to be a lot more important to tell people they are wrong -- nicely, of course -- than to spend six months on a death march. I find that these conversations require a level of trust that younger folks have difficulty giving older folks, and vice-versa. You either become too "grumpy" or you become so passive as to be not worth a damn.
In many teams I have seen older workers tell the team that they have these worries that are being unaddressed. In each case, it was way too easy for the team to say "Old Jim is just a grumpy old guy, cranky and he has a bad attitude" than it was to meet Jim half-way and go forward. I think there is a real and measurable communication problem in technology teams between age groups. I'm not sure what the magic bullet is going to be. Or if there is one.
Honestly, this is one of the main reason I see that a lot of hiring managers LOVE young, inexperienced, recent college grads. They do not want to be told they are wrong. They want these people to shut their mouths, buckle down, and just continue with the death march.
Even if the end result is failure, which it typically is, it's way easier to fail in this manner than it is to work hard at succeeding...
Hard work is a necessary but not sufficient component of success. Too many older folks equate passion or hard work with "death march" and foment a negative, lazy, can't do attitude. That is particularly poisonous at a startup where persistence in the face of rapid change and uncertain requirements is key.
In my experience, that rarely holds true in the non-startup world.
Everyone needs to stay current. And people who do stuff in their own time often have no trouble finding work because the "off time" work often is more relevant in the next job than their 10 years of experience on their employers proprietary system.
The warning sign should be if all you do when you get home from work is watch tv or play video games, you are falling behind the skill sets of those entering the market.
What a wonderful industry we work in.
What I'm saying is that if you're a professional and you're not keeping current, then your lack of currency, more than your age, will hinder your employment.
That being said, there are age biases out there. Young managers can be intimidated by hiring an older person, especially if they are insecure. And like the antecendent of this post older people who have 'been around' can sometimes see the reality of things which are uncomfortable for others to admit are true.
The extra time, 10 - 15 hours a week, keeps you current. Would you want to visit a doctor that only put in 40 hours a week seeing patients, and never studies recent medical advances? Or a lawyer whose case law knowledge did not extend beyond their own experience?
If you work in tech and honestly expect to only put in 40 hour weeks for your profession, as you get older you will end up in a dreary IT department -- not a software company -- and eventually be laid off.
BTW Chuck I remember NIS+!
This is NOT what I've seen, first hand.
Usually were talking about a series "X" round of funding. Hiring is scaled out. When the end result is a failure (many times over), usually you'll see someone like the VP of Engineering fired and replaced.
This does not equate bankruptcy.
Death marches usually happen because shared suffering becomes more important than creativity and insight. You might notice that this is how a lot of organizations run. Poor managerial or group performance leads to more of a sense of urgency, which means that one needs to suffer and sacrifice even more in order to keep up with the group. Eventually, there's a lot of effort but minimal effectiveness and group performance goes from transiently weak to objectively bad.
Some death march signs:
* People feeling they "have to" spend unusually long hours in the office. * People coming to work when sick. * Hard deadlines on short timeframes (i.e. the 4:30 work drop). * Low employee autonomy on what is done and how. * Full-time workers dedicated to maintenance efforts (instead of maintenance being a minor chore shared by the group). * Wide disparities in measured performance: one or two people being "manic" and generating 1000 LoC/week, with the rest of the team struggling to keep up with their changes. * Lots of moving targets, scope and feature creep, and unstable interfaces that come from sudden unnecessary couplings (premature optimization).
Older people (as a group) don't have a "can't do" attitude. They just know the signs of a death march and they know what it's like to burn out, and they're not going to commit 120% until they know their efforts are going to pan out. That said, they shouldn't be required to commit 120 percent. You get 40 hours, minus whatever you take away in meetings and such. If you want them to work more than that on a project, it's your job to motivate them to do it.
You get 40 hours
Then they shouldn't want to work at Google and Facebook. No one serious there works 40 hours per week. It's like Jamie Z said: the first wave at Netscape wanted to make the company great. The next wave, the one that ruined them, wanted to join because the company was great.Make no mistake, people like the ones you describe -- listless ones who clock 40 hours while looking at the clock and describing every major shipping push as a "death march" -- are the ones you want to avoid like the plague.
If you want them to work more than that on a project, it's
your job to motivate them to do it.
An alternative and far more successful approach is to hire young guns who are intrinsically motivated.You just don't want to hire people who want to (a) be highly paid and work at the best companies in the world but (b) work only 40 hours a week on projects that are so unambitious that they are guaranteed to ship with no tricky bits.
Then they shouldn't want to work at Google and Facebook. No one serious there works 40 hours per week.
Google New York is pretty 9-to-5 these days, except for people who are gunning for promotion... and it's pretty hard to build up the rolodex (due to the "2-up rule", which is that promotion from level N to N+1 will be decided by a panel of N+2's) to gun for promo every year. So most people work 9-to-5 (actually, more like 10-6:30, because of the dinner) except before a launch if they believe it will lead to promo.
MTV may be different, and I know nothing about Facebook, but I'd imagine that they'd be down to the typical ~50 hour weeks of stable startups. People expect founder status if they're going to be committing 60+ on a regular basis (i.e. not just a one-time push).
Make no mistake, people like the ones you describe -- listless ones who clock 40 hours while looking at the clock and describing every major shipping push as a "death march" -- are the ones you want to avoid like the plague.
Sure, but the problem with the clock-watcher isn't that he's only there for 8 hours. It's that if he had a better attitude, he'd be working instead of watching the clock. The fact that he leaves at 5:01 isn't the problem; it's that he's been mentally "checked out" since 3:30. Anyway, I don't know that that's an age problem. There are definitely 22-year-olds as well with bad work ethics and huge senses of entitlement.
It's also perfectly possible for a person to put forward 40 solid hours and accomplish an incredible amount.
An alternative and far more successful approach is to hire young guns who are intrinsically motivated.
You want a mix: young people who will support decisions they didn't make and put their heads down, and older people with experience who will push back, mentor the young, and try to keep them from burning out. The problem with the "young guns" is that they usually don't know how to pace themselves and that they won't push back against a bad idea. (No matter how awesome you are, some of your ideas suck.) Also, you have to question this "intrinsic" motivation. Is it because they have expectations of the job (or their career) that you won't be able to fulfill? That will become a problem later on, and it will blindside you when it does.
You just don't want to hire people who want to (a) be highly paid and work at the best companies in the world but (b) work only 40 hours a week on projects that are so unambitious that they are guaranteed to ship with no tricky bits.
What about category (c), which I think describes most good software developers: people who want to work hard on ambitious projects, but with high degrees of autonomy and without having to suffer unsustainable hours because of unreasonable deadlines?
You seem to have this black-and-white view where people either have an unconditional work ethic (i.e. either have never failed or haven't learned from it) or are completely listless and used-up. I don't think that accurately describes reality.
I have to say, first of all call me in 20 years and we'll see if you still feel the same! Burnout is real and priorities change. Second of all chances are pretty good that you will be kicking ass... but for another company. There's no guarantees with anybody, but odds are a young person is more likely to move on to another job.
As far as 40 hours - I have to agree with you. Some guys punch the clock, do incredible work, then leave for the day on time. Other guys will stay all night and the next day you come in to find a huge mess of shit code. I'm of the opinion that you only have so many hours of productive work in you per week. And if you try to exceed it one week, eventually you'll have a week where you don't get anything done. It all evens out.
The remaining 5% work like crazy, expect to be rewarded extra and find out sometime later that is not going to be the case and they will just have to the burden for the rest of the company. Frustrated those 5% leave, and that 5% keeps shrinking.
There are ways I provide leadership and ways I accept leadership from my peers, and the mix is different than it might have been twenty years ago. My code reviews focus on strategic issues ("could this be divided up into N diffs?") instead of sorting out complex behavior. I pass off many of my ideas since I'm slower than I was at implementing.
I am as engaged by this job as anything I've done for fifteen years. A positive, curious attitude goes a long way, as does the expectation that I need to earn the respect of my team and give them respect where due in return.
I'm mid-career (30), and finding more and more my real wins come from outside pure ability to cut code. They're tending to come from outright theft of ideas and concepts from other industries and domains.
This runs into the "overqualified" problem, though. If you haven't been a programmer for a while, you probably can't be hired as a particularly senior programmer just based on programming skills, but companies also aren't willing to hire you as a junior programmer if you have 10 years of managerial experience, because you're too senior for that. Even if you really genuinely are fine with an entry-level position, most companies won't be willing to hire you into one.
Basically it's really hard to fake being a 25-year-old, even if you are 100% as qualified as a 25-year-old for a job (or even more qualified) and aren't asking for any more money than they are, because companies view the 25-year-old and the 55-year-old as fundamentally different when evaluating hires.
Mind, I don't worry much about rate just now. I'm more interested in the portfolio and the relationships. I figure if I can fill up my calendar, I can start to raise the rate.
I suppose it sucks to be doing "junior" work, but you know something? At this stuff, I _am_ junior. If my background and experience and whatnot mean something to a client, then it will show in the work and relationships. They'll be that much more willing to find a rate that works for both of us as I get busier. But I certainly don't bother talking about them, because they have nothing to do with the relationship I'm proposing.
Now if we're only talking about a coding _job_, no. I doubt could get one, and don't know how quickly I could grow the salary if I did. But I think even that might be be in a different position in a year or so.
In 2008 his company moved all their engineering to India. He stuck around to complete the transition, train the Indian devs etc, and took the package just as the recession started.
He had a helluva time finding a gig. But last I heard he went back to being a contract programmer (probably a pay cut) and he's working on a project on the side. Happy as can be.
Expertise is not something you just get one day decide to be something and voila within a month of effort your are. If it were that easy, most of us would be composing symphonies or we would all be astronauts by now.It can give you a good head start but nothing much apart from that. So 'polish your coding skills' doesn't work, because its not just about coding skills. There is a whole ecosystem you need to understand and get in tune with. Writing code is something just representing solution in terms of syntax, the actual work that is symbolic notation to problem solving with tools in hand is a craft that takes ridiculous amount of time to learn.
Most managers are tuned to way of life, a spending driven lifestyle which is properly matched to their earnings. They have a home, bills to pay, kids to take care of. They are going in a stream of life, going off track from that might be impossible.
Also in our society managerial positions are considered to be positions of authority and coders et al are supposed to be both designation and pay wise inferior to them. Unless you don't care about the world. For most managers this is like going backwards in their career.
Will post these new positions at the end of the week, but here is where you can find us, and where these positions will be posted: http://www.akvo.org/web/jobs
The majority of our funding is in the form of grants, against which we deliver services on a contract. We also have some grants which are more of an investment to allow us to scale up and expand. We also do some CSR work and consulting work.
We don't distribute funds to worthy causes ourselves, but our partners which are part of our trusted network do. We just provide the software and services to make it easy to do so and see the results.
But is there a breaking point in the system? Across the board, industries are becoming more efficient through technology, and require fewer workers. At the same time, the birth rate is increasing. What is the end game here?
* Spend more time getting experience and learning strategies you can put on a resume and less time taking silly courses and waiting for the tooth fairy to come along.*
That's very easy to say when you're employed. I suspect that a lot of people out there would love to pick up some experience, but have no means to do so. Especially when you rule out "silly courses", too.
Work skills are like other possessions though where, when it comes time to sell them, you have to know how valuable they are to the market which may be different than what you think they should be worth.
Reference: http://en.wikipedia.org/wiki/List_of_countries_by_population...
(A Facebook job advert for Kernel Engineers.)
See also: https://github.com/facebook/flashcache/ - a write back persistent block cache for Linux, written by some of the Kernel Engineers at Facebook.
(I work there.)
There isn't a hard limit on how much wealth can be created (at least not until everybody has everything they could ever want), so more workers are a good thing.
The secret is to have a skill that somebody is willing to pay for -- and to keep looking for new things all the time.
I think it's universally true that young people don't have the benefit of experience (by definition) and so they regularly get into trouble. If they would wise up and listen to their elders, things would likely go better. There are a lot of "older" technologists out there who are still doing innovative things and schooling the youngsters in how to do things right.
On the other hand, and this depends completely on the individual, some older folks are...well, old. Meaning that they've gotten stuck in a particular way of thinking and doing things, and they've become so accustomed to it that they can't open up to a new perspective.
Sometimes - and I'm certainly guilty of this - young people spout off all kinds of craziness that should be rightly ignored. But sometimes, from the mouth babes, as the saying goes.
From the younger generation to the older: what I've observed really helps are when the senior engineers step into a mentorship role. That often means slowing down and being less productive, but if you're willing to coach, us youngsters can learn pretty fast (and we have to, in order to be relevant). In fact, if any of us think the tech market is competitive now, just wait another 30-40 years. It's going to be much tougher and much more competitive. Certainly more people will code, but it won't be as unusual as it is today (outside our Bay Area bubble).
So, there's no magic bullet. But it's a fact of life that older people are generally expected to be more mature, and so have to endure the foolishness of us young people. Until we (hopefully) get smart enough to listen.
Strawman. FTA:
many of the companies shedding jobs are technology manufacturers, while most of the companies that are hiring are Internet-based
LOL at the thought of today's Ruby "rockstar ninjas" learning chip design overnight, when the market swings back again. Everyone think's they're invincible when they're young. These guys in the article thought it too. They didn't plan on becoming obsolete...
I tried hard to help in a nice way, but looking back I'm pretty sure I came across as a pretty grumpy guy. But what do you do if the product is being flushed down the toilet? Its hard to sit back and say "OK its just a paycheck", unless you're waiting around for a green card, or you're too young to know any better.
I was right, because the product has been canned and myself along with it. I got lucky though because I have ~3 offers even before the layoff has been announced publicly.
To summarize for us middle-aged/old farts I would say: 1. Keep that network going. 2. Keep your skills up to date. 3. Transition into a customer-facing role if you can because there is no better way to figure out where the market is headed.
Moving forward I'm not going to worry about seeming grumpy, patronizing etc. Its better to be the old jerk who complained about a bad product than the cynic who just sat around collecting their paycheck.
There is one, hard, fast rule for survival as a developer, and it has worked very well for me for years. I will share it with you:
Follow the platform. Programming is all about the hardware.
How does it work? Its simple - programming on Windows for x86? Get yourself a Mac and learn to hack on it in your spare time (by the way: no television or other sedentary 'entertainment' activities - entertain yourself by learning new things). Already a Mac code - get an iPhone, or learn Android. An iOS developer already? Android master already? Alright then, time to get a Beagleboard and do some Linux hacking. Already hacked on Linux? Get into CUDA. CUDA genius already - okay, how about some of that Cloud tech ..
There is no safety in platform mastery, because those platforms are like slippery barrels, spinning around and around, slowly sinking into redundancy. If you are employed for one platform, entertain yourself with learning to master another, newer or more interesting one.
This works, over and over.
As you make your way through this world, you get to choose which of those types you'd like to become. If you don't want the New York Times to write sympathy articles about you, I'd suggest going with the latter route.
My father in law retired at 75, a C coder doing embedded systems for the chip industry. He didn't kick people around, but was respected and was getting stuff done.
I'm 50. I'd be happy to be either of those two people. I have little sympathy for the people who say to themselves that they can stuff the career growth at 40 because they're doomed. Screw that, I have role models.
One thing that seems to help is: Be on a mission. Be on a fucking mission from God, take charge of design AND do all the little crap. Build system maintenance and code cleanup, who does that? Hint: It's not scutwork to make sure that things are working well, all throughout a project.
It is very easy to feel that you're at the top of the game when you just come out of school and you're learning the latest bleeding-edge software development techniques. You may look at the old dudes like myself and think that we don't know what's going on. But unless you win the lottery or hit the jackpot then you have to keep re-tooling every 3-4 years. You cannot allow yourself to coast for very long. Just think about this - all of the time you've invested in learning whatever it is that you are doing now - you will have to re-do that same amount of effort every few years. It is sad because I think of all the hours I spend programming pascal text-based airline reservation systems. But alas those times are gone, I take from it what I can and move on.
I've been in this for 20 years and it has consistently been about 3-4 years I have to totally re-learn some new skills in order to stay competitive. Even the past few months I've been in the trenches learning backbone.js, require.js, building html5 apps, mobile apps. This stuff didn't exist even 5 years ago, let alone when I came out of school! It's not a major problem for me because I love learning new stuff anyway, but I have seen other people drop out of the industry because they only started in it for the paycheck.
So sure something have to change, but retooling does not take nearly as long as it took to learn to program in the first place.
But consider this - when I started programming there was no such thing as the web! There was no browser, no javascript. Yet I make my living right now developing for all of those technologies.
I was thinking technology was stabilizing a bit, but then all of a sudden mobile comes along! It seems like every 5 years there's some major game-changer.
You have to really love this industry to keep up!
Writing javascript at the client browser level is just insane - it feels like a new must-know framework comes out every month!
bullshit.
nobody hires a 55 year old javascript coder. i mean, just look at the usual suspects here on hackernews. look around you.
and this is not about skills. but about money, plain and simple. if you've been working for 25 years, your salary demands have risen. at least that is what everyone assumes. so congrats on submitting your resume, but you'll get filtered out right away cause younger people are cheaper, with the same skill set.
but isn't there added value in the wisdom that age brings? sure. but where is this a criterium? does a job posting for an experienced java coder mean that you should have been in the industry for at least 15 years? of course not.
if you're reaching 50 in technology, you need to find an exit scenario. government, management, teaching.
I blame this for the inherent cyclical nature of technology: young kids with no experience come in, get whipped into a frenzy over some technology we've been over before (see Node.js/cooperative multitasking) and then slowly learn the shortcomings of that approach, just in time for the next snake oil to hit.
The irony is that I think that as technology continues to knock down the amount of developers necessary for a given project, older developers who know how to get from point A to point B with the minimal amount of effort will become more valuable in relative terms, so long as they can avoid getting ground down and stay productive. Couple that with another controversial observation of mine: that theoretical technological progress has slowed dramatically in the last decade (implementations are still catching up, but are getting there), and I think we will see small, elite teams of experienced developers become a preferred (or at least common) way to build software.
That's self serving, of course (I'm 35) but I do think it is true.
In my group at BigCo which just got canned, the overly political managers with no skills who ruined the product due to their gross incompetence are the ones who have no chance of finding another gig. I feel kind of bad for them, but I'm pretty sure I'll get over it quickly.
Its critical to keep your skills current.
I've seen grossly incompetent sharks move up fine at BigCo.
I agree 100% on your last comment, although I think it's worth being a bit skeptical towards flashy new stuff.
In that sense, management is often politics, though good leadership is far more than that.
Second, and this is a broad statement, society is currently in a phase of devaluing the older mind. We're too quick to assume older minds cannot learn as easily, and older minds accept this as fact in a self-fulfilling way. The reality of the situation is that we're living longer, so we'll need to make valuable contributions later in our lives. Tech definitely isn't a mistress for 50+ year-olds, but that's a problem with our culture and not technology.
That's good about your dad tho. I don't know if I'd be able to make that kind of change if I'm ever in his position.
Even if you are a farmer, you might find you need to switch from growing say wheat to corn because market conditions changed.
Call me crazy, but I think that within two or three decades, its not just going to be "old" programmers who are worried about their jobs. I think that actually sooner than we realize, artificial general super-intelligence will arrive, and make ALL of the humans (at least version 1.0s) obsolete.
Everyone's goal should be financial independence by 35, or as soon thereafter as you are able to accomplish.
I did things differently, started an ISP business in 1994, worked in a Silicon Valley startup for a year, did some consulting in Australia and went to live in Europe. My life was much more interesting than those people who stuck to the daily grind, I reinvented myself (i.e. kept on learning new things every year) a few times, and according to the latest research, I don't need to worry about dementia for a long time. I might not have a nest egg but I have skills in sofware development, systems admin and dba areas that my few of my peers have, and no younger person has. I intend to keep on working and creating new technology until the end of my days, which if my grandparent's lives are an indication, will be well into my 90's.
I didn't say anything about quitting work. What you do with your time when you're independent is literally up to you. Stay in your same job, stay in your same field, change careers, study, donate your time or muscle, do something that's strictly personally meaningful, play golf (bleah).
Many people laughed, I told them unless a comet is about hit tomorrow, not worrying about tomorrow doesn't make any financial sense. Because tomorrow always comes and in 99% of the cases to 99% of the people. So 'don't worry about tomorrow' is bad financial advice anybody can give you.
I started planning and investing, five years into my work life now. I have done far better than my other friends who even got paid a lot better than me. I am sure another 5 years and a decade into my career I can achieve the kind of financial independence you describe.
And again as you said, retirement doesn't mean not doing any work. It just means you have sufficient backup to support you if you don't have work.
If you invest aggressively and carefully, you might make it sooner.
If you change your mindset so that your real job is to use the resources that your day job gives you, to achieve the goals of your real job (farming your resources to become financially independent), you have a better chance.
If you don't work toward financial independence on purpose, it's not going to happen. Ever. But it could. If you would.
Disclaimer: I didn't figure this out until it's probably too late.
I didn't have $1 million of gross income (according to the SS administration) until I was over 40. I worked for myself for a lot of those years as both an independent contractor and while starting companies. Most of my savings were eliminated over that time because of startup failures and just general economic bad times.
If you can get to $1 million of savings by the age of 40 by just income and investments, you are doing very well. Few will manage it. For me to have even half that saved would have required that I do nothing but work for BigCorp for 20 years. A fate that I would not wish on any entrepreneurial person.
Let me tell you I'm 27 and from India, I am a native Bangalore resident. I am sure similar options I'm going to tell you now exist in the US.
The first thing you must do when you get money in your hands is know how much you want to spend and how much want to save. In my case I see, I can spend around 40%. The remaining 60% goes in to my savings. Then you need to figure out a way to convert 60% of the saving to investments. Gold, endowment insurance, real estate etc. There are many options, the earlier you start the better.
Of course this requires discipline. To give you an example, I don't have credit card till today's date as a principle. If your routinely save and invest then over time you can save yourself a fortune.
What a wonderful industry we work in.
More importantly, what will happen to our economy if everyone stops working at 35?
I'm a little surprised too at how much pushback you're getting on this. Isn't financial independence part of the point of all this entrepreneurship we talk about around here?
That said, there are some significant life-style challenges that work against simply keeping one's skills sharp. Out of college I wanted to change the world, had all to gain and nothing to lose, just moved and had no family obligations, was surrounded by likewise eager entrepreneurs who were plugged into technology, and I could spend all day and night burrowing into whatever the latest thing was. In short, I could easily commit the vast amount of my time to tech and was naturally on top of things.
Not so today! Wife, kids, and a mortgage means drastically reduced time for such endeavors, and a much greater responsibility to provide a stable income (hopefully with benefits too). Add to that, I'm not hanging out in bars after work surrounded by other sources of tech insight, which was always a great way to learn of new things and get a feel for where things are heading. Instead, I'm heading home, because there are a lot of non-tech things to take care of.
This doesn't mean I throw in the towel. I carve out time where I can and work my ass off to stay abreast of changing technology, including working on side projects for more real-world practice. I burn some of my much-valued vacation time to get to a conference each year. And I'm cool with the way things are going. But I'm also realistic... Am I going to be burning whole weekends in 48 hour hackathons? Not likely, and least in my situation. I had to come to terms with the fact that I couldn't emulate the behavior of an early 20's developer in Silicon Valley. But I can do things that I think keep me reasonably useful to employers. Most important: this is not at all due to age, but rather due to life circumstances that often come with getting older.
When I'm 45 or 50, I will not be the genius who is cranking out the next Node.js in a weekend, but I highly doubt I'll be sitting at city hall waiting for f*cking Promatch to find me a job either.
I think the real danger is being the 12-year master of TPF reports at BigCorp, Inc. How do you spin 20 years at BigCorp in an increasingly non-technical role over that time window in a way that would actually excite Google or Facebook?
I think the norm for those of us who want to stay technically relevant is to be open to re-inventing our hacker skills, master the linking of our efforts to bottom-line results, and the wisdom to know when the time has come to tackle new tech stacks and projects.
With a little grey hair comes the wisdom of what paths NOT to go down, no matter how attractive they are initially.
Also, math and analysis skills never go out of style. The fact is, the technology industry does not value experience it values novelty. Try asking a rails dev what a taylor series is sometime.
I'll take the guy with deep experience and analytical skills and self awareness but just a little $cooltech exposure any day.
That's certainly true. After awhile you've been involved in enough projects you can pick out the ones that are in trouble long before the younger guys.
The problem is this kind of experience/wisdom is hard to get across in an interview.
Programming doesn't require math because programmers don't necessarily know math, not because the opportunity isn't there.
Sure, you can choose a programming career where you don't need to know what a Taylor series is, how large linear systems are solved, or even what sine and cosine are. Maybe that will be a safe choice for the forseeable future, but more and more apps involve 3D, machine learning, computer vision, data analysis, etc.
I personally view it as increased job security to learn as much as I can about the basic tools that let me understand how those things work. To not do so is (in my mind, anyway) very much the same as saying that caching, or complexity theory, or how to build a linked list is "not very relevant to most work": it may seriously limit the jobs you're eligible for in the future, because you'll lack the foundation to understand the work at hand at even the most basic level.
That said, I've always been interested in math, and probably obsess too much over knowing how things work. I can appreciate that it's just not interesting enough for most people to pursue.
Whenever I read stories about out-of-work "older" engineers, I presume them members of the categories I described above. What never seems to be said is that their plights usually are the results of decisions they made over a decade before. Stick with the current company doing crappy technology X? Yeah, it's boring, but the benefits are good and the work is low-stress. Go out on job interviews? I know deep down inside that I'm a mediocre developer, but my current company seems to put up with my crappy code and low productivity. SO, I 'd better stay right where I am. In this latter case, it could be argued that the "older" person's previous employ-ability was an accident or aberration.
There probably are few on HN who can imagine being like these people, so it's hard to relate. I just turned 37 and think that I'm a better dev than at 27. I've been thinking a bit about how my thought processes have changed. One thing I do now is mull through a lot of ideas before bothering to write code. If there are 50 ways to do something, it's worth taking a way to get a cup of coffee and think through a few possibilities. Along with that, I am less likely to believe that my current view into a problem or situation is accurate. What's the probability that the design I mulled over in the shower this morning will actually work out? As I've aged, I've assigned lower probabilities to positive outcomes, and I don't think my thoughts are of worse quality. So, I experiment more, and my experiments (iterations, or whatever else you want to call them) are faster, dirtier, and prove me right or wrong faster than the paths I embarked on before. My ability to hold a large, "working" model of a system in my head an perform experiments on it has improved over time. This is really what debugging is all about. I now ask better questions about how a system ought to function based on experience. What should happen if the async remoting process fails? How will humans know that a failure has happened? I think of these things because I've endured the pain in the past of finding out three days later that some background process has gone haywire.
So, what are the negatives? I'm less likely to run off and push a new technology into an important system. Around 2001, I wrote a macro-processor-y thing in Python (1.5x timeframe). The company I worked for was a Java shop. I was intrigued with Python, so I decided to learn something. The thing I built worked really well, but it was later converted into Java so that any one of N competent developers could hack on it when issues arose. Today, I'd suck it up from the beginning, look at the realities of the organization, and end-up writing the thing in Java from the beginning. Maybe I'd use some alternate JVM language, but I'd have to think hard about doing so. I'm still regarded as a loose cannon when it comes to dragging additional open source dependencies into codebases, so maybe I've never grown up. Who knows. I really can't think of any downsides to having gotten older other than feeling agitated when "kids" don't know how a hashtable works. Back in my day....
And now it is changing from software hub to "social networking" + "new business models" hub which unfortunately do not require hard core engineering skills. For example web design skills are very much in demand.
I'm in 40s, and I wanted to move from my corporate job to something like start up I found out that majority of jobs in new startups are to get young people (so called talents) to work on simple applications for under-market wage (wages which are ok if you don't have any dependents) with benefits and "culture" intentionally set up to attract only young people.
Last month, my Dad, a native a Los Angeles who has lived there his entire life, moved to Iowa. He basically had to find a company that was still running on old technology that actually respected experience.
A definite trade-off.
It shows up with older people because as you get more experienced (ie, older), you have a better change of having found your groove.
I think continual learning is the only way to avoid this problem.
edit:
Also, after you've seen a few crunches for no good reason, you just don't want to be all eager beaver and work overtime without having a sound reason up front. So I think that turns off employers as well... rather pay someone cheap who works overtime than the expensive guy who laughs at the hopeless schedule.
Another thing that is almost as important as continual learning is what I would call "ego management." Most of us with decades of experience have had some spectacular successes in our careers but these are simply not relevant now. Live in the moment. I think that it is important to appreciate how much young people bring to the game in terms of entrepreneurship, creativity and job skills. I have no problems reducing my rates (inflation adjusted) as I get older to be in alignment with my current market value. I have an old friend who is not willing to do this, keeps his rates at very high levels, and gets no work. I have stopped talking to him about how much fun I have working.
I'm 24 and work with plenty of older guys. One of them always makes fun of us mac developers because he was writing mac software before we were born and OS X isn't a "real" mac. He doesn't sit around complaining about the good old days of assembly, he learns new things. His experience follows the tech industry pretty closely as it moved from assembly to c to c++, etc. Now he writes Android apps.
The point is that older guys only become irrelevant by choice. Programming is an industry with almost no up front cost to get started on. Anyone with a computer can do it. Instead of these guys going to town hall meetings, why don't they brush up on their development skills and learn something new?
If those specific unemployed people all went home and learned Android development, most of them still wouldn't be hired, anywhere, not in tech (because they're old and unemployed) and not in "survival" jobs (because they're old, and they'll leave when they find something better). They're garbage as far as the economy is concerned. That the practice of refusing to consider unemployed people for hiring is common enough to warrant discussion partially supports that.
If you've been sitting on your ass for 2 years, yeah it's going to look pretty bad to employers.
"A doctor, a lawyer and an Accountant with 30 years experience is probably a semi-reitred millionaire. A software engineer with 30 years experience is probably out of work." Or doing an hourly contract to keep some money coming in.
Not all employees are created equal and this type of study smacks of a certain statistical bias- ie, only the least qualified workers (those lacking the desired skillsets and experience, preferred degrees, etc.) will be the one's out of work. Therefore, to take those who are struggling to find work and project that onto the industry as a whole is to take a fairly protracted view of a complex situation. I'm not saying that the author's proposed explanation is impossible, just that it is only one of many plausible explanations, and without more information it would be a mistake to take any firm conclusions from this.
Just as a counterpoint, I recently joined the ranks of a large social media company and was surprised to discover that 3/6 of the folks on the database engineering team (mysqlf included) are over 40, and all but one person is over 30.
That's why you see so many blogs about companies changing core NoSQL technologies.
Focus on learning tool-agnostic things like how to build abstractions, working well in a team, coding processes, run-time complexity, and tool-agnostic concepts like closures/monads/etc.
Some people would have no problem getting hired. Think of Peter Norvig (56), Larry Wall (57), Guido van Rossum (55), Linus Torvalds (42).
And you don't have to be this famous. Ex. publish a good iPhone app on GitHub, offers will start to flow in.
If you have the skills, you'll have no trouble getting work.
Yes, ageism is a slight problem of course, as with every profession, but programming is more a meritocracy than most other professions. Keep the skills sharp and relevant and you'll have few worries.
The ageism is subtle, but, as such, it has an equally pernicious effect on hiring.
Most of my experience is in relatively "hot" technology at startups... I have three Rails sites I can point to and worked on an iPhone app with 3 million users, with a node.js and Redis backend. I have a github account. I've solved programming challenges from Facebook, interview street, spotify, etc. I don't think I'm a total slouch, and I've worked with guys FAR worse than I am. It's pretty painful to think about some of the duds that are still employed while I can't even get an interview.
People prescribe keeping skills relevant, but focusing on latest technologies can be a mistake. If I had more experience with Microsoft tech or J2EE I could probably pick up a boring job doing enterprise stuff somewhere in the midwest.
I thought I could always just pick up a job through my network, but a lot of guys my age who were friends at other companies are sort of checked out and are not in a position to hire. The younger guys I met I think just don't want to pull me in because they have plenty of younger friends they could hire first. A lot of tech hiring, especially at the startup level, is hiring guys that you want to be bros with. Generally, you aren't bros with guys 10 or 15 years older than you are.
I never thought I'd be one of the guys in the articles like this, so I'm not sure exactly what to do. I've been working on iPhone apps in my spare time, but at some point I am going to run out of money. It can get very depressing and does quite a number on one's mental health. You feel like you can't socialize because you should be looking for work, and not spending money. Your extended family and friends kind of abandon you because they think something must be wrong with you (maybe there is?). This anxiety and isolation makes it pretty hard to focus and I've been considering trying anti-depressant medications, just so I can finish off my apps. However, I have diminished confidence at this point that having finished iPhone apps will get me any money, or another job. I often feel like I should just stop wasting my time and try to get some sort of dangerous but high paying labor job, like an oil roughneck. Or maybe just move to some cheap developing nation and become some sort of ex-pat weirdo guy?
Another aspect of this, is that it seems kind of weird to even get a job stocking shelves at target, or something. Would they even hire me? Would it be worth it to make the 1400 a month?
I now have a lot of sympathy for the "99%" type people. Those Seth Godin and Friedman pieces about the new economy being no place for average workers are pretty much correct. I wouldn't say I'm a C player but I'd say I'm around a B+. Unfortunately, B+ and 35 or above computer programmer doesn't seem to cut it.
P.S. if anyone has any advice it would be pretty helpful to me and maybe others
You're the same age as me... and being without a job is a scary prospect, but I think it's important to stay positive. I was unemployed for a year once (by choice at first) but it took a few months to get a job once I started looking, and I specifically wanted to get into a different area (games) from where I had been (e-commerce) so I knew it would be harder. I ended up working with a team of young guys right out of school and was able to work well with them. I made an effort to embrace new stuff rather than go in with the attitude of "you should do things my way because I'm the experienced guy", and I got the job and made a positive impact.
I think my experience helped a lot, especially in building up some agile processes and keeping everyone focussed on the tasks at hand. There are a lot of roles that a developer can fill besides just development. Try to play up those skills? Every place I work, I end up in a "team lead" kind of situation just because I'm interested in processes and process improvement and can speak to both managers and other developers about various software development practices and figure out what will work at this place vs some other place.
I really suck at "programming interviews" but I am getting a lot of recruiter interest right now (I'm in the bay area). I feel like there are LOTS of companies hiring right now. I also have a feeling that I probably wouldn't get past whatever screening is done at most of those companies, so I never bother to follow up. I have failed plenty of interviews at Google and Amazon and some smaller hot startups and usually end up working at places nobody has heard of, but that's okay. :) I'm pretty happy where I am now.
I'm not sure if this helped at all. :/
The last place I worked full time was incredibly volatile and replaced almost the entire engineering team 3 times in the 2 years I was there. I probably should have left after the first mass exodus. I often wonder if that is what killed my career. Maybe that company on the resume is a black mark?
I don't know why it's so hard to get a job when you are already unemployed. I think there is even MORE bias about that around here than age. This article might be about age, but I suspect that is probably more your problem here. I'm not sure the best way out of that particular hole, but if you can get any kind of a consulting or freelance gig, that might help. Then you can just smooth over gaps with the "freelancing" qualifier and talk about how you're really interested in something long term / stable, especially after the volatility at the last place. Hopefully you can find employers who are nervous about someone sticking around for a couple of years, reassure them that's what you are interested in (even if it's not). If you drop me an email, I can forward you to a couple of recruiters who have contacted me in the last week or two.
A lot of times we're harder on ourselves than we should be. I'm happy to help out a fellow geezer (j/k). Drop me a line if you want.
Hone that resume. Try several different versions targeted to different types of jobs. Carefully write your cover letters based on the job ad, and with the intention of getting an interview.
A resume is not an employment history so don't include any more of that than is necessary to be conventional. Leave out the summer jobs in highschool if you are older than 25. Focus on achievements, projects completed. Tell them how you helped your employers over and over again.
And weave lots of technical terms into the text so that it shows up on a keyword search. But do leave out useless keywords like COBOL and VMS.
Don't say your age, and be careful not to inadvertently disclose your age by saying that you worked X years with Y technology which we all know was obsolete in 1995.
Get out of the tech industry while you still can. There are no jobs in this industry for anyone, even the skilled.
I'm in this industry and staying because I'm willing to bet with my feet that you're not just wrong, you're dead wrong. To my mind, the question is what the non-tech jobs will be in 20 years.
What do you do? Are you getting out of the tech industry, or merely scoring cheap social posturing points with some fashionable cynicism? Are you taking your own advice, or just posting ad naseum with no actual belief behind it?
Unfortunately, they lack a similarly plausible explanation for how cheap offshore labor won't simply take their jobs in fewer than 30 years.
In fact the economic advantage has already largely dissipated and it's already not cheaper, which is why you don't hear anybody talking about this anymore. The whole "we're all gonna lose our tech jobs to the cheap foreigners" scare is all very 2008; it has failed to happen, and it will continue to fail to happen because equilibrium has been reached and will not rapidly change because there's few to no new markets to suddenly emerge.
Sadly, very few people actually understand economics 101 and simply can't deal with the fact that prices react to things rather than staying static forever.
I also observe your uncareful dodge around my questions. May I simply assume the worst, then?
Wrong. Yahoo!, for example, has been continuously shedding Bay Area jobs and moving them to Bangalore. Right now, in 2011/2012, they are laying off workers in Silicon Valley and hiring in India. Expect other companies to follow suit.
It is certainly much cheaper to hire in India. Depending on experience, you can get three to five programmers there for every one in the Bay Area. They're just as skilled.
My guess based on what I've seen in my little bit of the world is that experience and skillset count more than age but you have to have both, hence I need to modernise my skillset in a few places sooner rather than later.
OK, you're 33. The upper limit of re-tooling time required, to be just as up-to-date on the latest technologies is 4-5 years. And all you need to do is be as productive as that 22 year old was during his college years!
In reality. you could do it in 6 months of focused, unemployed time. Or a year of evening work, while you remain employed.
Of course, I have a funny perspective -- I work with a guy who wrote compilers for Symbolics, and another who started programming before I was born (and I am in the supposedly-being-age-discriminated-against category). Between the two of them, and two more folks my own tender middle-age, they are the most productive, awesome folks I know and hope to keep working with for a long time to come.
Seriously, if this is reality then start recruiting "old folks" -- you now have an unfair advantage in terms of recruiting.
No doubt there are many who'll argue with these facts. The last time this came up, a guy piped up saying that he'd hire a smart old programmer any day over a dumb young'un who knew node or Rails. That guy was advertising for a Rails dev in his profile.
The best way to show this isn't true is for someone to build a startup or company powered by older engineers. Note that discriminating against Jewish, Persian, Chinese, Korean, or Indian programmers would obviously lose you money, as those groups constitute a substantial fraction of the tech workforce. It is not so obvious that the market is economically irrational about the abilities of other groups.
(Also: note how the article and the engineers all want to work at the best companies, and turn their noses up at the non-Facebooks and non-Googles they might need to "settle" for. What if employees couldn't freely discriminate regarding where they want to work? Does anyone stop to think that the companies they want to join so badly might know a thing or two about what kinds of people make good programmers?)
Nice generalization. Personally, over the last few years I've run into lots of "kids fresh out of college" that can't/won't work to learn skills they need to do their job. Game devs that don't know the math behind changing coordinate systems, and consequently write fragile rendering/UI code. Testers that won't write unit tests, and devs that won't write and/or run them to avoid creating new bugs. Early-career C++ coders that will argue to you that the OS won't let two threads touch a static variable at the same time.
But I don't generalize that into assuming every young person is a lazy moron. I've also met some bright young people that will work hard to learn new theory/skills/languages/frameworks, and care about doing a good job. So I prefer to evaluate each person on their own merits, and that seems to work out a lot better. YMMV.
If a company isn't interested in hiring me because they're afraid I have enough experience to know better than to work 80-hour weeks and take my work home for 50-75% of industry pay while making them rich, that's ok with me. I've got that T-shirt, and I don't want another one.
This is a change from historical times, in which the technology stack didn't change multiple times in a generation and wisdom/experience counted for more.
If simply learning the top of the latest tech stack every few years is making you a lot of money right now, you'd better start saving. I'm thinking something like this: http://www.despair.com/motivation.html
The best way to show this isn't true is for someone to build a startup or company powered by older engineers.
Most people that are so inclined would rather start the company and power it with younger, more fungible people that don't know their own value. ;)
Seriously, though, aren't most startup founders 40+ already?
1) 2012-01-24 Elance, CEO Fabio Rosati, age not listed but he "has 20 years of experience in the services and technology sectors", so likely late 30's at the youngest.
2) 2012-01-17 AppDynamics, CEO Jyoti Bansal, age not listed but BS from IIT in 1999 so probably around 30
3) 2012-01-10 Klout, CEO Joe Fernandez, graduated with double major in CS and finance 2000 so also about 30
I'd be interested to know where the anecdote about not funding people over 25 came from.
The 25 quote comes from an unnamed VC quoted by Michael Arrington in this story: http://techcrunch.com/2011/04/30/internet-entrepreneurs-are-...
The balance of power might make it easier to deal with 25 year olds who may grasp at any opportunity, compared to 25+ who bargains harder?
Sure, having the fire in your belly can mitigate much if not most of the "crochety" factor as can staying on the bleeding edge of coding and problem solving. But... if <insert random industry> didn't do this, if the biggest worry was keeping the old farts employed and coddling their irrelevance, <insert random industry> would NEVER progress. The US would be last in the world for meaningful product or service disruptions that every other country strives for.
Again, at 42 with 16 years in technology, I'm one of the old farts. Skills that once got me the coveted double eyebrow raise and an extra digit on my bonus check, now get me the loathed single eyebrow raise and a comfy slot on the next RIF list.
The union between a company and its employee base can be compared to a youthful first marriage between 20-somethings. Almost as soon as you say "I do", subconsciously, your will and desire to improve, to change, to grow starts to decline. You get fat. Your spouse gets fat. You gradually stop going out with friends or trying new things. Squirt out a couple of pups and you can pretty much write the excuses for why you can't do "this" or "that" in stone.
The world is dynamic and the Indians, the Chinese, the South Americans, the Koreans, the Russians, pick your own example -- all of them -- understand this as a simple fact of life. From the moment they wake in the morning to the second their head hits the dirt floor at night, they are mentally and emotionally pounded with the relentless concept that they are NOT in first place. They are NOT the leader. They have miles and miles and miles to go before they can even begin to break into the same stratosphere of "advancement" that Westernized nations have taken for granted for the last 100 years. We provide for them a marker. A goal. A far-off, seemingly impossible to reach objective of what is possible when you push yourselves to limits you never knew you were capable of conquering.
So, no. I don't feel sorry for the elder statesmen of <insert random industry>, and I'm even one of them. The very second I see my career plight as someone else's fault or the responsibility of something I can't control, I have already lost. I might as well close up shop and get my blue Wal-Mart vest on. Start practicing "would you like fry's with that". No. My position in technology is my responsibility. My relevance in comparison with you wiry fuckers 25 years my junior is 120% totally and without question not only my own responsibility, but my own choice. The truth is, if given even moderately comparable skills to you young lads on an interview, I have a leg up. I can run circles around the kids who still rent apartments and are still making payments on their first car. I have the benefit of patience that you only get from trying to do the same thing over and over 1000 times. I am more forward thinking, maybe not in terms of what the next Google is going to be, but in terms of execution, I can see things down the road that the whippersnappers can't see -- because they're not old enough to have seen the writing on the wall before.
No. I am old (in Internet years), but I am not a victim. And when industry moves forward without me, the blame lies on me and MY decision to keep up. You young kids do have your uses though. You keep me and my ilk on our toes and are anything but shy about how fast and nimble I have to be to keep up.
a) Isn't this a couple of billion people to make a sweeping generalization about? b) 'stratosphere of "advancement" that Westernized nations have taken for granted the past 100 years' is a very curious notion. Is South Korea really not at the industrial level of Pittsburgh, 1912? Has Russia, which has continuously been one of the great powers since about 1750, regressed that thoroughly?
The previous reply is a good interpretation of what I was talking about. Western nations lead the world in technology and advancement because those who do not adapt and grow are marginalized. To be fair to your point though, I should not have used "the Koreans". I used to live there and they are as advanced technologically as any Western nation in the world. Ne, they are "in the club". (I wish the same could be said for their city planning and traffic grids. Ugg.)
I never really learnt new skills much after VB 6 (missed the whole .net thing), I got sick of having to learn new stuff every few years. I was a MCSD but that was nothing, read a book, sit a exam.
I left IT and took up photography for a few years, tried to get back in and have never had a interview.
I am now doing the odd website for friends and trying to make my first iPad App.
Dave
Guess what... you'll all be out of work in 10 years unless you work your ass off to keep up. The computing world is changing faster than I ever remember. We are entering a new computing paradigm faster than most people will be able to upgrade their skills. If you aren't hacking your iPad, and you don't build mobile apps, have no NLP or machine learning experience, and you aren't hacking away at Kinect in your spare time, then your livelihood is gravely in danger.
Welcome to the game.
and I've worked with terrible ones who bellow like angry walruses (AGRGRAGRAH) and declare things to be done which are impossible. Including one who fell asleep in a meeting with our mutual client, snoring with his subnotebook on his belly, then woke up long enough to demand I make it so the web site "copied the data to the email in a table" when somebody dragged a "picture" from "The browser to email". After back and forths of me explaining that it couldn't be done, he eventually demanded, "WHY NOT?" and I, exasperated and having exhausted all my other explanations, said, "Because the internet doesn't work that way."
And yet, one of us got hired as CTO and the other got fired from the project. (Hint: the young person got fired.)
I think that in this, as with all questions of skill and desirability, the answer probably lies more in the worker themselves than the outside environment.
That said, many of these companies want green young people because they will work for peanuts, can be manipulated, and don't know any better. Older workers tend to have a better sense of self, perspective, the need for work-life balance (because they have families, etc) and are less likely to sleep under their desk. This is the money line:
"Brendan Browne, who heads hiring at the professional networking site LinkedIn, said his firm wanted every new hire to be entrepreneurial. Mr. Browne said that approximately 25 percent of LinkedIn’s new hires came from the company’s recruitment efforts at colleges and universities."
So is this:
'Lori Goler, the head of human resources and recruiting efforts at Facebook, said her company was looking for the “college student who built a company on the side, or an iPhone app over the weekend.”'
This is code for: you have some skillz but no actual prospects (or you wouldn't want to work for us), so we'll label you "entrepreneurial" so you feel good about coming and working for the man right out of college, and we'll squeeze & overwork you as long as you don't realize that it doesn't have to be this way.