
Career planning: Where do old devs go to? - matthewwarren
http://ayende.com/blog/168802/career-planning-where-do-old-devs-go-to
======
edw519
59, programming for 42 years, the last 35 professionally. Here on HN for 7.5
years.

I've always been very busy (one of the main reasons I don't post on HN as much
any more). I don't have a resume. I'm not on LinkedIn. If I ever ran low on
work, it would probably take me a day or two and a few phone calls to find
something.

I don't work on anything unless I find it incredibly compelling. I write
applications. I've seen tons of different technologies, many old ones I still
use. But I also get very jazzed learning new stuff and incorporating it into
my toolbox.

I know tons of programmers in my age group. I'd classify them into 2 groups:

25% - just like me. You don't see our resumes because we're very happy
building cool stuff and rarely look for work. We've also seen it all and can
smell something we're not interested in a mile away. You don't see us at many
events because we're so busy with work and life, we only pick the ones with
the most promise of bang for the buck. Most of the programmers I know in this
group would make phenomenal additions to many startups, but don't recognize
this as a compelling alternative to what they're already doing. The best way
to engage us is to seek us out, make friends, and share some stories about
something cool you're working on.

75% - one year's experience 30 times, not 30 years experience. Unaware of
modern technology. Couldn't write Hello World in anything other than BASIC,
FORTRAN, or COBOL (and would probably misspell 50% of the words). No
imagination. Limited ability to visualize the possibilities. Hiding under the
radar in some enterprise. You don't want these people.

~~~
31reasons
>>75% - one year's experience 30 times, not 30 years experience. You don't
want these people.

You are basically saying 75% of the developers after certain age are useless.
I don't agree or disagree with your statement . Just startled. What does it
say about software development as a career ? Would you say the same thing for
lawyers or doctors with 30 years experience? This is depressing.

~~~
teh_klev
I'm 47* and I've been around a bit (dotcom era startups to banking and
telecoms) and I'm familiar with the 75% mentioned. There is a type of
programmer that works away in blue chips turning up to work on time, doing
what's asked of them and then knocking off at half five.

Sure they maybe repeat the same one year's experience year after year perhaps
with some technology transitioning years from COBOL to VB to VB.NET or C# or
maybe Java, that kinda thing. They'll know Oracle or MS SQL or DB2 well enough
to make stuff work, or maybe they call into a message switch (with a pre-
wrapped library for their language/framework) to read/write their LOB data.

They work there for years and years collecting their salary and annual (if
there are any) bonuses and many will be the last lucky few to hang on to a
decent occupational pension, in return to knocking out code to meet business
requirements. But they do it well, they know their line of business apps for
their organisation's market sector and "how things are done". These are
conservative people working in conservative business environments.

The thing is who cares? Many of these folks have interesting lives outside
their corporate bunkers which involve travelling the world, renovating houses,
flying small aircraft, model trains and enjoying friends and family...and
much, much more.

It's just a job and I'm sure these folks will have their own measure of job
satisfaction which will be different from ours. It might not be as exciting as
the seat of your pants local startup but it pays the mortgage and provides
reasonable financial security.

Sure there are no absolute guarantees about job security, but I live in the UK
and we're at a lot less risk of being fired for no reason other than "at
will". It takes quite a bit of legal effort and cost to make employees
redundant, especially in finance where you're fairly likely to be a member of
a union (mass redundancies have to be negotiated and consulted on and
redundancy payments agreed etc).

It's not depressing, it's just that these folks have different priorities in
life.

Scott Hanselman described some of these folks as "Dark Matter Developers"[0].

[0]:
[http://www.hanselman.com/blog/DarkMatterDevelopersTheUnseen9...](http://www.hanselman.com/blog/DarkMatterDevelopersTheUnseen99.aspx)

* To address the Ayende's question, being 47 I'm probably an "older dev" I've worked for the same company since 2003 (ISP/Web Hoster), I like the work, I'm happy there, they treat me well, I work from home, it's (fingers crossed) reasonably secure. It'd take a really seriously good offer to make me change employers. This is not to say that I don't keep abreast of the latest tech and frameworks, the fact that I follow HN should make that abundantly clear; for example we're looking at how we could monetize Docker for our clients - first heard about here.

~~~
enraged_camel
>> It's just a job

I can understand this mentality, but cannot sympathize with it. Personally, I
refuse to treat my job as "just a job." I want it to mean something. I want to
look forward to coming to work everyday. I want to feel like the work I do
makes a difference, as opposed to fizzle out and die in the massive corporate
bureaucracy. I hate the idea that I'm just spinning my wheels, looking busy,
collecting a paycheck. Doing so is just... soul crushing. That's the best way
I can describe it.

I'm actually literally 15 minutes away from giving my two-weeks notice. Just
waiting for my boss to come in. I'm glad I had the chance to put my feelings
in writing somewhere other than my resignation letter because I wanted to get
them off my chest but not burn bridges. Thank you teh_klev. :)

~~~
bane
I think one way to do this is to get a sense for what are sometimes boring
corporate missions that actually do have a huge impact in the world.

I remember when I was early in my career I talked with an older engineer who
had done lots of time in the insurance business and I said something like "I
don't know if I could ever work in something so boring".

He replied "making sure that claims are paid out correctly can be the
different between somebody having a home or going homeless, or somebody being
able to feed their family or not having transportation at all. Keeping in mind
the lives of the people you're ultimately serving keeps me motivated even if
the day-to-day is boring"

It's advice I've always kept at heart and it's been helpful.

------
exelius
That's because programming is an entry level job. No, I'm not trolling: I'm
quite serious about that.

Engineering has almost always been an entry level job; computers or not. You
start as an engineer; and as you get better, the number of engineering
management jobs is pretty limited, so there's nowhere to go for the vast
majority of people. But you get pulled into enough internal projects you start
to develop a bit of business sense, so many people will often go from
engineering up into the business (it doesn't hurt that many engineers are
smart with a solid foundation in applied mathematics).

This isn't just the case with development. My father in law started out as a
structural engineer. By the time he was 10-15 years into his career, he was
managing large construction projects. 30 years in he was running a big portion
of the company.

I saw the game for what it was early and got out of engineering before I hit
30. It's a treadmill of skill development where having over 10 years of
experience doesn't benefit you, since the technology du jour changes every
decade anyway. I still enjoy hacking and coding - but I do it as a hobby.

~~~
InclinedPlane
There is a common trope floating around which says that some developers are
10x more productive than others. This has led to a lot of questioning of
whether or not that is actually true in practice, what it means, whether it's
possible to become a "10x" developer, and so on. The truth is that it's
looking at the problem in the wrong way because it relies on the underlying
assumption that development is like factory work, and somehow cranking out
more code, or whatever measure you want for productivity, is more valuable.

The truth is actually far more extreme. Some developers are _orders of
magnitude_ more productive than others. The work they do is simply that much
better and more valuable. This should be unquestionably true as there are
several examples of very, very small development teams (sub 5 person sized)
who have churned out incredibly valuable products. You can chalk some of that
up to luck, especially in the case of games, but not all of it. The fact is,
building software well, building software that works, that does something
valuable for users, that is free of major defects, that is designed in a way
so that it can be maintained and extended easily, and so on, those things are
not just about how many lines or function points a developer creates. But
those things can add millions or even billions to the value of the end-
product, and they can be done just by one person.

Software is not factory work, nor is it strictly just engineering. The most
important part of software development is a creative, artistic endeavor. And
like all works of creativity the end result has an enormously wide variation
in quality and value.

If you're doing very "shallow" software development (e.g. pumping out CRUD
apps or CMS backed sites or what-have-you) then years of experience may not do
a whole lot for you. If you have the opportunity to take on meatier dev work
then experience is more than just learning some tricks and being knowledgeable
in the frameworks and toolsets of the day, it's about deep skills. About how
build things well, and right. How to communicate effectively. How to write
truly self-documenting code. How to wrangle the complexity of the problem
space and the implementation space while mediating for the user in a way that
makes sense to them. And so on. Some devs in some jobs just keep adding to
their skilsets as time goes on.

~~~
Too
It's not just about creating work oneself. I'd say there is another aspect of
the 10x developer and that is one that can make a team of 10 mediocre
developers run at 1x speed each instead of 0.1x

Some unexperienced developer might be stuck with a small issue for _days_ just
to complete some bigger task. Here the experienced developer can answer the
question in 15 minutes and the unexperienced one can continue with the simpler
tasks.

------
ThomaszKrueger
I'm 53 with an EE degree, went to programming because it so happened that
there was a telecommunications research center close by the school. And
programming looked cooler and easier than EE.

I compare programming to writing, more than engineering. There is no
engineering in programming. No matter how many "methodologies" are created,
writing good programs and good systems is akin to writing a good story or a
good book. It takes practice, it takes courage to remove instead of adding, to
make it as simple as possible. The best programmers are Hemingways to me.
Terse, to the point. It just works. It looks beautiful.

In the same vein, a writer doesn't usually become a manager. He keeps on
writing, until old age, until forever. That's what we do, what we like to do.
Sometimes one becomes a manager due to money pressures - after all who's going
to pay a programmer the same as a GM or VP. But people like myself secretly or
not see themselves programming until the bitter end.

~~~
Kurtz79
"There is no engineering in programming."

It really depends on the industry and context. Part of me really envies you if
you can say that much and that reflects your experience.

I spent most of today making sure that my SPMP, SQAP, SCMP, SRS, etc...
documents conform to the relevant IEEE standard.

If none of these acronyms means anything to you, again, I envy you.

~~~
ThomaszKrueger
It seems to me that in your case the relevant part is engineering, the
standards are the real thing and programming is there to support them. This is
not the case in my experience, where programming involves creating a new web
site, a new database schema, a new game. There is little to no engineering on
these fields, every day you see a newfangled "architecture" or "framework" or
"API". EE is a much more standards driven arena, CS is not, IMO.

~~~
Kurtz79
Agreed.

Yet, the parent is talking about "programming", that is still the most
important part (although still a part) of a Software Engineering project.

Software Engineering is a recognized discipline, and although I do work in an
EE environment, I believe most software projects (which have a contractual
obligation with a definite scope and a deadline) use it in a form or the
other.

------
randlet
I'm only 34 but already I'm finding most developer job ads target much younger
developers who like to _work hard_ and _play hard_. At some point Beer
Fridays, foosball and video games stop being appealing "perks" and actually
become a disincentive ("I don't want to work where everyone is 15 years
younger than me and plays foosball all day!"). So if you're advertising jobs
in this fashion you're self selecting for younger devs.

Older devs will just rely on previous connections to find new work or stay in
positions that pay well and come with lots of vacation (as/more important than
pay to me).

------
TacticalCoder
I don't remember which talk it was but there was a talk where it was explained
that the reason why our trade seems to be dominated by young devs is that it
actually is: the number of software developers is doubling every _x_ years and
when you have such a fast growth it is simply not possible to not have many
young programmers.

I _think_ it was a talk by Uncle Bob where he talked about how many devs there
were worldwide when he started programming, how many there were in the early
nineties and how many there are today.

The question _" Where do old devs go to?"_ can still be asked (and Ed answered
that question) but I think the answer doesn't matter much with regards to the
average age of devs during interviews.

A company is going to be interviewing way more younger devs than older ones
simply because of the age distribution of devs.

Even if every single (old) dev was still developing software, there would
still be very few old devs compared to younger ones. That's why the graph in
TFA is shaped like that.

I may be totally mistaken here but that's how I understood that part of the
talk and I think it makes sense.

~~~
100k
This is probably what you are thinking of: [http://blog.cleancoder.com/uncle-
bob/2014/06/20/MyLawn.html](http://blog.cleancoder.com/uncle-
bob/2014/06/20/MyLawn.html) (It was linked to in the comments of the blog
post.)

------
binarymax
I just turned 36, and I am in a contemplative self battle with this very
question for my own career. As far as internal career development goes for my
current employment, I have "succeeded". I have had a slew of successful
projects and have been slowly but surely moving up the chain. It's difficult
because in a large firm (20k global employees), moving up means coding less
and attending more meetings. This is starting to drive me mad. I know that I
can only go so far as an engineer in a large firm, but I don't want to just
coalesce into the larger bloat that churns out hours and hours of meetings and
powerpoint. On this path, in 5 years, I will be a director of some department
and my distance from the code will be far. One way I am coping is by
continuing this management ascension and writing code on the side - but when I
have kids in the next couple years I probably wont have much time for that. It
is a difficult decision to be sure.

~~~
vacri
If you have succeeded, why not stay where you are? Why do you have to move up?
"Thanks, but I prefer coding, I'd rather stay where I am".

~~~
chii
> "Thanks, but I prefer coding, I'd rather stay where I am".

"...but i want more pay - how about CEO level pay?"

"nope."

~~~
alistairSH
I'm not sure that's a totally valid sentiment. For starters, top-notch
developers in the US earn salaries that approach CEO-level pay (ok, maybe not
quite, but certainly top-5% salaries nationally).

Even as a mid-level developer, my salary matched that of experienced project
managers in my wife's previous line of work (large insurance company).

And CEOs generally lead a very different lifestyle than a good developer. On
call 24/7, lots of travel, etc. And it's a different set of skills that many
developers lack (schmoozing, sales, dealing with other giant egos). Compare
that to my 40-45/hour work week, true vacation (with no work interruptions),
and limited exposure to clients/sales/etc (which I find the most stressful
part of my job - minimizing that is a good thing for me).

~~~
ryandrake
Come on.. Maybe you've seen developers at Google or somewhere like that make
LameFailingCompanyCEO-level pay, but I highly doubt that "top-notch"
developers anywhere earn salaries that approach CEO-level pay IN THE SAME
COMPANY. Everywhere I've worked there has been a huge compensation cliff
between the senior managers (anyone with the C?O title or their direct
reports) and the rest of the peasants. I'm talking orders of magnitude
difference. Sure, there are outliers, but I'd guess the typical tech workplace
(lets say Bay Area cost of living) is structured, on average:

Junior developers: $75k-100k + $2-3k equity/bonus

Senior developers: $90k-140k + $4-8k equity/bonus

Engineering manager: $120-160k + $10-15k equity/bonus

Director or Super-smart architect: $140k-$180k + $15k-20k equity/bonus

VP (senior manager): $250k-350k + $200k-1MM equity/bonus

CxO: $300k-$1MM + $5MM-50MM equity/bonus

So when you say "Mary in the cubicle next to me makes more than me," you're
probably talking about at most a $50k difference, which is a rounding error
for the senior execs. You'll be hard pressed to find a non-senior exec in any
line of work (engineering, QA, project management, mid-level management) whose
compensation even comes close to what the big shots are making.

~~~
alistairSH
From my post... "ok, maybe not quite, but certainly top-5% salaries
nationally"

Is there where we get to discuss the gross over-compensation granted to CEOs
in the US?

[I'm joking, I don't want to discuss that here]

------
alistairSH
37 years old, studied computer science at university, and have worked in the
software industry since graduation. Currently at a mid-size/large,
multinational software company.

We have a large number of developers with 20+ years experience. You aren't
seeing their resumes because they're here and don't have a reason to leave.

I've been here 12 years now, and if you can't match the 25 days vacation, 10
sick, 12 holidays, plus bump my salary 10% or more, I won't even call you
back.

Edit - I'll also note that I'm a project manager by title. I don't have
personnel responsibility, so I still get to spend a lot of time on technical
issues (and even some coding).

~~~
exelius
Haha, I see this a lot. Banks who pay mediocre developers $150k a year plus
crazy benefits to write entry-level reports because fuck it; the salary for
the entire IT department is a rounding error on the bonus pool for the traders
so who gives a shit? Good luck getting those guys out of a job like that.

Not saying you're mediocre; but a job like that leads to mediocrity and
complacency because the work is often unchallenging. Again, nothing wrong with
that since your life priorities shift at some point -- taking care of your
family with a stable, high-paying job is often far more important in your late
30s than having a kickass fun job. But developers in their late 30s tend to
have jobs that aren't so glamorous to us on HN.

~~~
goatforce5
FWIW I know someone who used to work in IT for a bank whose yearly bonus was
bigger than my (decent) wage as a programmer at a startup during the Dotcom
1.0 boom. I guess they had to trickle-down some bonuses to the IT guys so they
didn't get jealous when the traders were getting their 6 or 7 figure bonuses
at the end of the year.

He worked in networking. I guess it was one of the largest private networks in
the world, and they had a big budget and got to use tons of interesting gear
(make it fast! make it secure!). I don't think his department was mediocre in
any way and was probably a rewarding job (providing you can get over the
working for an evil corporate kinda thing).

~~~
exelius
Yeah, banks are the epitome of just throwing money all over the place. You're
right though; core systems work at banks is often super-interesting because
the total amount they spend on IT systems in a year is so small compared to
the amount of business that they do, they go all-out.

I'm speaking more of the peripheral IT functions - the one-off business apps
and reporting solutions that departments within banks will often use because
no commercial product exists to serve a specialized need. I can think of one
example at a major international bank that was executing over a trillion
dollars in currency trades a day. They had a pretty basic tool that basically
amounted to a spreadsheet with some custom logic that pulled data from a bunch
of systems and aggregated it so the traders could book a bunch of smaller
trades together and get better rates. This tool was super-niche and quite
simple from a programming standpoint, but it made the company probably a
million dollars a day. So they paid a guy a full salary to maintain it. He had
been in the job for 15 years and was pretty well settled in. They probably
didn't need someone full time dedicated to this, but it's not hard to justify
$100-150k in salary for someone to maintain a system that generates $200
million a year in pure profit.

~~~
seestheday
Big investment banks pay well. Big consumer banks, not so much, at least in
Canada. I was shocked at how low some of the laughable salary offers I
received were.

------
dijit
This concept isn't strange at all, you're simply making the mistake of
thinking that the pool of developers shrinks when it gets old, when the
opposite is true.

"new" programmers, the ruby devs, the python aficionados and the PHP gods are
becoming increasingly common.. we're at a golden age where it seems a large
percentage of our generation is doing some kind of dev work- larger than any
proportion of people in history.

it shouldn't be surprising that people with 20 years experience aren't common
because not many people comparatively were vested in the industry 20 years
ago.

------
segmondy
They don't GO anywhere, they STAY wherever they are. Older folks tend to have
more responsibilities, family, kids, retirement to worry about etc. They are
less risk prone, they understand that office politics comes with it and the
next job will still have politics and might be worse, so they stay put. At all
companies I've worked for, I've noticed that the young folks are quick to go
look for a new job after a year or two, they want new exciting things. Of
course people claim that it's because they can get a raise faster if they
leave, but it's more than that, some of these older folks are in need of a
raise too, but they don't leave or have any plans of leaving, they are not
even looking.

~~~
logfromblammo
Everyone who is employed "at will" should always be looking. If your company
has merged, been acquired, or acquired another company within the last 2
years, you should be looking. If you do not get at least a 2% raise every
year, without fail, you should be looking. If your vacation and sick pay
recently went to PTO instead, you should be looking. If your company is
pushing "consumer directed" health insurance at you, you should be looking.

If your company has an _actual_ interest in employee retention, you have found
a real gem. But the rest of us are getting screwed over too often to ever sit
back and pretend to have job security.

What I am finding now is that every place I might want to work has no software
developer employees my age (which I find to be very suspicious) and every
place that does have developers my age or older is a career dead end, SNAFU,
or both.

And having my ear to the ground for so long, I have noticed a steady
progression in HR recruiting practices from barely tolerable to downright
rude. And the time between first contact and offer (if any) is stretching out
longer and longer. (I don't live anywhere near California, if it wasn't
obvious.)

So if you want to be an old developer, it appears as though you'll first have
to solve the problem of how to find steady work without using a resume. There
seems to be an element of chance involved, such that each skill and contact
you acquire at your current job gives you another roll or two of the dice for
the next. I really crapped out with my last gig, which yielded zero new skills
and zero new contacts, for entirely related reasons, but a contact at the
previous job helped me land my current job, where I am working with someone I
knew from three jobs ago.

I am not a particularly big fan of the good old boy network method of hiring,
but if you are both good and old, you still may find it difficult to get hired
via the HR process. That process is fundamentally broken, and it is quite
unlikely that any company that interviews you will ever give you more than a
single bit of feedback, that being OFFER=false. Many won't even explicitly say
it, letting their extended silence do all the talking.

So I would venture a guess that older people STAY because the effort of trying
to GO has become so excruciating for many of them that it wouldn't even be
worth it if it resulted in a 50% pay raise. And for some of them, they know
that will never happen.

~~~
brational
> If your vacation and sick pay recently went to PTO instead, you should be
> looking.

Can you explain this one? I don't even come close to using my sick time up.
I'd much rather have them give it as one giant PTO bucket (unless you're
implying PTO is less in total than vacation + sick).

~~~
logfromblammo
Depending in the laws of your locale, an employer may be required to pay for
an employee's vacation balance. PTO was formulated primarily to evade this
restriction and to provide the means to reduce the company's accounting
liabilities. While it was sold to you on the basis of flexibility, it really
is a significant reduction in your benefits.

Think about how salary works. If you work as an exempt salaried employee even
one minute during any given week, you are supposed to be paid for the whole
week. That is why vacation time used to be granted as an integral number of
weeks. Converting weeks of vacation into hours of paid time off is simply
another step on the slippery slope to treating some salaried workers like wage
workers, without any of the additional rights or protections.

Also, anecdotally speaking, every time I have experienced the conversion (3
times), new PTO total has been less than old vacation + sick, and it has
always resulted in fewer actual days spent on vacation. The PTO conversion is
_always_ the company trying to cut benefit costs quietly without triggering a
mass exodus.

~~~
brational
I see. I was previously at a company with PTO and when I left I was paid the
balance. At my new company I have both, but unless I use sick time basically
as '2nd vacation pool' (potential ethical issues etc) I actually end up with
less time off.

~~~
logfromblammo
Your company was not legally obligated to pay you the PTO balance. It may be
written in to the company handbook that they will, provided that you give
sufficient notice, but they did not have to pay. Disposition of PTO is not
covered by the same laws as vacation or sick leave benefits, so the company
can basically do whatever it wants with it. If it were a mass layoff rather
than one guy leaving, they wouldn't pay. In that case, they wouldn't have to
worry about the remaining employees complaining or using their PTO as they
accumulate it, rather than risk leaving value on the table.

As a corollary, if you have PTO and intend to leave a company, use it up
before giving notice.

And we haven't even touched on other issues. People with PTO may be less
likely to stay home when they are sick, because it reduces the amount of
planned leave they can take. This results in more contagion in the workforce.

There are very good reasons for paid vacation and paid sick leave to be
different classes of benefit. But in this case, it is simply a coal miner's
canary. A company transitioning to PTO is reducing their labor costs by
reducing the benefits of their productive employees. Look carefully to
determine whether any effort has been made to reduce overhead. PTO by itself
is not an unambiguous signal. If execs are still giving themselves bonuses
while your earned leave becomes PTO, they probably just reassigned the value
of your benefit to themselves, and it's time to look for a new employer before
they come up with another bright idea, like stack ranking.

This criticism also applies to some extent to "we don't worry about leave"
companies. I haven't ever worked for one, so I can't say for certain.

------
MCRed
Either you become CTO or you stay a Senior Software Developer forever.

I have noticed a lot of age discrimination the "bay area startup scene". Not
so much outside the bay area.

I do wonder how long it is until someone gets sued for age discrimination when
the way they knew the person's age was a video call.

I see a lot of startups (including some YC ones) wanting to do a video call
with a recruiter before even sending your resume to a hiring manager.

I'm used to recruiters wasting my time, they need to feel important. I'm used
to being excluded for stupid reasons, like: [I describe how I wrote code that
generated SQL that was used to query an Oracle backend] "which version of
oracle" [some minor release] "oh, I'm sorry, they're looking for oracle [next
minor release] experience".

My impression is that front line HR people look for an excuse to screen people
out... makes them feel important.

And now age is a way they can do that. How are video calls an acceptable
requirement?

"He just wasn't a cultural fit. I mean, like I totally saw grey in his hair".

~~~
smileysteve
> My impression is that front line HR people look for an excuse to screen
> people out... makes them feel important.

I'm under this same impression. I've referred people to be checked out for a
department who have great works in frontend professional services teams. Even
have a significant blog, examples that our current employees could be trained
by...

Sure enough, while a 3.0 a couple years ago would be good at one college, we
don't respect the college that they attended enough.

------
mncolinlee
35 here with over ten years work experience.

I've actually been programming since I was six. When I graduated, I was
programming in Perl. Today, I'm an Android engineer because I jumped ship to a
startup and built up experience then left for a place that pays their workers.

I believe a lot of older developers struggle with redefining themselves as
they get older. It's not so much "you can't teach an old dog new tricks," but
rather complacency about the job market and dumb attitudes. If you've been
doing well in one area for a long time, it can be difficult to make the
transition to a current technology. HR doesn't usually think developers can
learn new programming languages even if we do it every day. For example, I had
to strip Fortran from my resume just so recruiters would stop assuming stupid
things.

Then there are many who leave the profession, become consultants, or shift to
management.

------
mmcconnell1618
In most of the organizations I've worked for you reach a salary cap as an
engineer. The only way to make more is to become a manager where you get paid
more simply because you're part of the group deciding how much people get
paid. The other career path I've seen is the architect route where a skilled
developer no longer codes but instead spends their time helping others design
good software.

~~~
chii
both of those routes is boring - which route involve working in "the
trenches", whilst still getting paid management level salaries? Don't say
startup because that's just money earned on risk-taking, not guaranteed
payment like a salary.

~~~
patio11
_which route involve working in "the trenches", whilst still getting paid
management level salaries?_

The engineering track at AmaGooBookSoft. You'll earn +/\- $200k a year mid-
career and have roughly zero market or execution risk.

There exist many options if you're willing to take more than a W-2 employee
level of risk. (e.g. Found a boutique consultancy. Redirect the conversation
when your W-2 friends ask what your weekly rate is.)

~~~
thewarrior
I'm working at a services firm in India and am not good enough to get into
AmaGooBookSoft. What do I do ?

~~~
patio11
Broadly speaking: 1) Try getting a job at AmaGooBookSoft a few times, because
many devs I know who believe or believed that they were not good enough
are/were wrong (self likely included), 2) Skill up. If you're not finding
opportunity for advancement in skill levels at the present job -- which is
something I felt when I was doing roughly similar work -- change to a job
which does allow you to skill up, or create opportunities for skilling up at
your job or outside of it. 3) Consider getting out of the BPO firm and into
one of India's emerging software product companies like e.g. VWO or Zoho or
what have you. I have no clue what the relative salaries look like but you're
virtually guaranteed to learn more.

Finally, the 0th option: if your local economy doesn't have the job you want,
make it for yourself.

------
krschultz
Bob Martin gave a talk in NYC a few months ago, and addressed this point. His
theory is that the software profession is doubling in size every few years,
and therefore more than half of all software engineers have less than a few
years of experience. Attrition out of the field isn't as important. He did a
far better job describing the idea, but it was fairly compelling. Maybe I just
want to believe that it is true, but it makes sense to me.

I do agree that there is a lack of a long term non-management career arc. I
worked at a large mechanical engineering company and the titles were Engineer,
Senior Engineer, Engineering Specialist, Principal Engineer, Staff Engineer.
Once you made it to Senior engineer you could split off in a management track
that went Supervisor, Manager, VP. It worked out fairly well, because the
higher level engineers (Principal, and certainly Staff), made well more than
the early management track. Going into management was not the only way to get
a raise. Obviously this made the engineers better, but it also made management
better, because it seems there are a lot of reluctant managers out there that
just want to get paid more.

edit: I found a blog post by Bob Martin that describes this in writing:
[http://blog.cleancoder.com/uncle-
bob/2014/06/20/MyLawn.html](http://blog.cleancoder.com/uncle-
bob/2014/06/20/MyLawn.html)

------
lifeisstillgood
There are three issues to take into account:

1\. There is just a smaller pool of 20+ year devs because 20 years ago there
were less developers, smaller pool of jobs etc. it should be possible to work
out the max size of that pool from ONS / job data and get a ratio for today.

2\. What is your job criteria? Permanent position? Wage is low compared to say
contract or freelance rates? Advertised in the public job forums?

3\. Lack of interesting work or autonomy.

I am a Dev with 15+ years - (I dropped out of CTO position to go back to full
time Dev work). And I cannot imagine taking a permanent position unless it
comes really close to a contractor wage. And I would prefer remote working.

I will be surprised if I ever find a 150k+ remote permanent position. But if I
did I would expect to see only 40 year olds on the short list.

And I am pretty unusual in that I still job hunt in the open - actually
applying for jobs. This is not an issue for the large majority of people I
know who use their "networks" better than I do.

So in short a good Dev (and having lasted 10-20 years they cannot be idiots)
is not goin to be looking for a job, if they are, they will not be looking
where you advertise, and if they do look there, your rates will be too low,
your job conditions off putting and finally you probably tell people what and
where and how to work.

If you want old devs, pay more, micro-manage less, and fish in places that are
recruiter unfriendly.

------
drivingmenuts
I'm 47 and in one of those weird spaces where I cannot find a job I'm happy
with and I sure as hell do not want to wind up managing _anything_ other than
code. Years of contracting and not networking are starting to bite me in the
ass, so I have to do the resume shuffle every time I look for more work.
Keeping up with the latest tech is difficult when the paying work doesn't use
it and all I have time for is toy projects that don't translate to real
projects on the resume.

There's only about 18 hours in the day where I can write software and some of
those are consumed by lunch and dinner.

------
freshflowers
As an old dev (47) who's main focus is now management (the only thing I still
program is devops stuff), there are some reasons why I stopped being a
developer a few years back:

1) Developers are treated without much respect. Seriously, even with the
scarcity, and even when we do get paid well (which is relatively rare) and
have nice perks, developers still don't get the kind of respect other
similarly highly skilled professionals get. At some point, when you get in
your mid-30's and compare yourself with other professionals in the same age
group, this really starts to grate.

2) The vast majority of companies still doesn't know how to make developers
function properly. Those of us who discuss stuff like Agile, "manager / maker
schedule", remote working, the pros and cons of open office plans, etcetera
form a tiny minority, and we live in an echo chamber. 90% of all devs are
still code monkeys in the basement. As a developer with a bit of experience
and authority I decided to put my effort in changing that (i.e., get into
management) to make life better for other developers.

3) I felt I was just repeating myself, basically doing the same thing on
different platforms in different languages. I found it harder to learn new
stuff not because I got "too old to learn", but because I didn't see anything
particularly "new" in it, just same shit, different platform, which wasn't
particularly motivating. (The only exception is the "cloud", because
approaching the infrastructure as a dynamic, programmable resource is actually
something new and challenging.)

Salary is still very much an issue. All this talk about developers getting
paid so much is total bullshit, with the possible exception of a small
minority of SV companies. Developers are seriously underpaid compared to their
economic value and scarcity, and it's mostly just a matter of a lack of
respect for "techies".

Personally, I don't care about the money (as a manager I currently _choose_ to
not get paid more than my best developers, which is making my bosses kinda
nervous), but the feeling of getting screwed just pisses me off.

Most of you that are reading this: you are most likely not getting paid what
you are worth. Not even close. Yes, even those who think they're doing fine.
I've seen the numbers, and as a profession we are collectively getting
screwed, with very few exceptions.

There are many professions in which people are less scarce, require less
skill, knowledge and experience and add less economic value and still get paid
considerably more simply because they are not "techies".

~~~
wastedhours
Part of it from my perspective is that a lot of organisations aren't
inherently software businesses, but need developers to create and maintain
tech solutions for the employees doing the "core" work of the company. I build
and maintain systems that are used by several hundred core employees, but am
paid less than them - I'm not bitter about that, I'm paid well in comparison
to my circumstances, but it's unlikely that there'd be a business case to pay
peripheral/support employees more than core ones, even if what we do impacts
on the work of more people.

~~~
freshflowers
The problem is that it is now 2014, and many if not most of those companies
couldn't function without software. They're just deluding themselves. There
are fewer and fewer businesses in which software developers really are
"peripheral/support employees". If you are company with software developers on
the payroll(instead of using commodity IT), you're probably not able to
function without them.

You are probably a lot harder to replace and a lot more skilled than many of
those several hundred "core" employees. You probably are a "core" employee,
it's just really convenient for them to not think of you as such.

As long as you don't complain or jump ship, they'll just keep doing that. Of
course it's not all that tempting to jump ship, since even businesses that are
"inherently software business" underpay developers, so if you're comfortable
where you it's hardly worth it to move on for a few extra bucks. Despite the
fact that all of those businesses are definitely whining loudly about the
scarcity of developers.

Hell, even if you are "peripheral", if the same company needs to invest huge
sums of money in office space, equipment or other "peripheral" stuff to
"support" those "core employees", they will simply do the math and pull their
wallets. It has nothing to do with "peripheral", it should be about scarcity
and economic value. Paying you twice as much won't make a dent in their
spreadsheets, nor will it make you insanely overpaid compared to many other
employees.

But unfortunately in reality nobody bothers to do the math, it's all about
"perceived" value, and as long as both you and your employer live inside the
reality distortion field that totally undervalues developers, you'll continue
to get underpaid.

The few companies that forget about prejudices towards techies and simply do
the same cold hard math they apply to every other investment have absolutely
no problem paying way above "market rate".

------
TeeWEE
I think there are two explanations.

1) One explanation is that, often unexperienced people start doing
programming, start looking for a job, but after 1 or 2 years, they just know
its not their cup of thee.

Lots of people try learning programming themselves. And while it may work out
ofr a lot of them. I think there is also a huge dropoff.

During my computerscience study at university there was almost 50% dropoff
after 2 years. Only the die-hards survive.

2) A lot more people are learning to program these days. 10 years ago, there
were a lot less people doing programming. That's why you are seeing the curve.

~~~
hjnilsson
You forgot:

3) People with 10+ years experience generally don't go out looking for work
and applying for interviews. By then you have enough connections that if you
want to change job, you'll find it through old colleagues. Not by shopping
around like younger devs. This applies to most all professional occupations,
not just Software Engineering. If you look at people applying for positions in
economics / law you'll see a similar graph.

~~~
vonmoltke
This perception has really been hurting me, I think. Nearly all of my
professional connections are lifers at my original employer, and a significant
number of them are in the 75% group mentioned in Ed's post at the top.

~~~
danielweber
I hear you. I moved from Boston to Charlotte 10 years ago for family, and I've
had a hard time building a local network because of spending (too) many years
at one employer here. I have a very nice network back in Boston, but my local
one is still much weaker.

Here's something you can try: what do you wish you did 5 years ago (that you
could have done with your knowledge at the time)? Now, imagine what you in 5
years will want the you of today to do. Go attend some local conferences or
meetups. If you have trouble making connections quickly, prefer repeated
events.

------
bane
This is true in any field: your employment picture looks very different at 40
than it does at 20. Lots of the reasons why are more due to real-life (TM)
than the job market. At 20, you don't really mind renting a spare bedroom in
the basement of somebody's house and working 100+ weeks trying to build the
latest whatever non-world transforming consumer web thing. You _have_ all the
time in the world and no obligations beyond growing your career. You're living
to work at this point.

At 40+ you probably have a couple kids, a mortgage, a spouse, education loans,
car payments, family vacations, pets, children's activities, children's pets,
your own personal activities, cocktail parties, maybe saving up for your kids'
college educations, whatever. Unless you've found yourself without these kinds
of obligations, your job will end up being defined as something that can fit a
work to live scenario. This is very hard to do in the previously described
scenario.

So what's left? Some startups will let you do the 9-5/5 40 hour work week, but
the reality is that big boring mega corps, building boring B2B
insurance/inventory/timecard processing/bleh software is where you're likely
to find the kinds of jobs that fit your new "adult" lifestyle. And you know
what? You won't really care all that much.

If you do care, and you're tired of figuring out the access permissions for
this role as part of that use-case for the umpteenth million time, you can
career shift into management and start learning about the business you were
supporting as a developer. You might want to end up managing other developers,
being a "nerd herder", which presents an whole new set of fantastically non-
deterministic challenges. You might move into product or program management,
and be responsible for overseeing execution of contracts or high-level
delivery of vague CEO initiatives, an entirely different challenge.

You may even want to take the plunge and shift into sales, starting as a sales
engineer, but developing your own clients and moving into a full-service sales
and solutions provider role...which you might later turn into a business
consulting company later. Your hours might be more flexible and your pay can
be unlimited in this kind of role.

Lots of startups make a big deal about the "full-stack" developer, you can do
front and back-end systems with equal finesse. But a "full-business"
developer, who understands the entire business from sales-cycle to post-
delivery product-support can be extraordinarily powerful and I guarantee that
job can be very interesting. The tech can be boring, but the kind of critical
thinking and task breakdown skills you might bring with you from development
can be really useful elsewhere in the business world.

You might even learn enough about some segment of the "business stack" that
you realize you can launch your own startup targeting software to solve some
problem you saw when you were operating in that portion of the business.

~~~
ryandrake
This is the best comment so far. I (~40) got out of development because the
compensation/lifestyle, which was great for someone in their 20s, doesn't fit
anymore. I'd go back in a heartbeat for the right package, but I'm pretty sure
it doesn't exist. The real career path is in management or the business side,
so a lot of people I know have moved over to that side. I love writing
software, and still keep my skills up to date on toy projects at home, but I
can't imagine a company where software development is actually a long-term
career option.

~~~
Kurtz79
Same here.

I´m still unsure if it's a path I want to follow indefinitely, but I agree
with the parent that going out of your comfort zone presents you with a whole
new set of challenges, which are not necessarily easier or more boring than
purely technical ones.

------
VLM
"When we started doing a lot of interviews"

Bingo! Only megacorps and people who hire noobs recruit that way. Beyond a
couple years its all ... "That guy I worked with who was an expert with
statistics (by their standards)" or "That guy with the awesome github repos"
or "That guy I contracted with once..."

And looking at his graph, I'm guessing his job description is skewed toward
noobs. Something about the company, or the job descript, or working conditions
or ...

------
wikwocket
This topic came up as an "Ask HN" 7 months ago, and there was a great
discussion about it:
[https://news.ycombinator.com/item?id=7372997](https://news.ycombinator.com/item?id=7372997)

------
codeulike
Yeah a big mystery in our relatively young industry: what happens to old
programmers? Do we all _have_ to become managers? Management is so much less
fun.

Once or twice I have met programmers in their 60s who remember the days of
punched cards etc. That's really exciting. Generally there's not many of those
guys and now they are tucked away in major corps or government systems.

~~~
VLM
"Do we all _have_ to become managers?"

Who would we manage, if per the article their average future employee only has
2 yrs experience and I have about half a century of working life. So the
average bottom layer of the pyramid programmer will end up reporting to
roughly twenty five ex-programmer managers simultaneously.

Or rephrased, 24 out of 25 programmers "must" find work elsewhere every two
years or so, to keep the numbers reasonable.

"tucked away in major corps"

That's where I am. Work to live, not live to work, great benefits, nice
working environment, nice coworkers, but if I want a promotion pretty much ten
people would have to quit or die of old age first. This "being pushed into
management" stuff from coasties sounds really weird to non-coastie ears. Or
having a "career" sounds weird, since I've had the same job for decades and
have no realistic hope of title advancement, and I'm perfectly OK with that.

------
llasram
"In fact, looking at the salary tables, there actually isn’t a level of higher
than 5 years."

That seems like it explains the OP's experience right there. Why would
honestly senior devs even consider jobs well below their salary range? My shop
is almost entirely very senior people with 10-20 years experience, but we pay
accordingly.

------
mcv
Shuttling experienced devs off into management is of course a sad thing that
should be prevented. It's better to have high ranking technical positions
available. (Although, Microsoft, isn't "fellow" basically a posh word for
"guy"? So the high ranking tech guy gets a position called "posh tech guy"?)

Anyway, my dad has always resisted any push towards management. He did
occasionally get the lead of a project thrust upon him, but he was still
programming until he retired. However, he comes from an age where people
stayed with a single employer for their entire life. You don't get to see his
CV because he was never looking for a new job. You see my CV a lot because I'm
constantly looking for something new.

Although in that graph, I guess I'm actually in the 10+ segment now... I'm
still a young dev, though.

~~~
insertnickname
[https://en.wikipedia.org/wiki/Fellow](https://en.wikipedia.org/wiki/Fellow)

------
githulhu
My anecdata: a former colleague of mine, over 50, just left his enterprise IT
development job to make a ton more money with a Salesforce consulting firm. He
didn't go to Stanford, he never studied computer science, he didn't start
coding until he was in his 30s, and he's only been developing Salesforce for
maybe 2 years. He also doesn't have the benefit of a large network or a
reputation that preceeds him, but he tells me that he's still getting offers
even a week after he accepted his new job. So I'm not sure the picture is so
bleak - as long as you're good and you put in a minimum amount of time
learning a relevant technology.

------
shams93
You wind up taking "haircuts" and doing without equity here in Los Angeles
till you are like me, 43 and forced to live in a squat with no running water
because the startup you were working for decided to kick up your hours to 21
days, 7 days a week with no overtime, and then cuts your base pay by 2/3 so
the founders don't take a haircut, this has been happening over and over for
14 years for me to the point where this company has me doing without personal
hygine to finish their product, ironically its a health oriented compnay.
Sounds like the ravings of a mad man, but this is how they treat developers in
Los Angeles.

~~~
eru
Why do you let them treat you like that? There are other options.

~~~
warfangle
> LA

~~~
eru
I don't get it. shams93 clearly has the right to work in the US, and is
already on the west coast, one of the hottest markets for any warm body
capable of writing a few lines of code..

Anyway, move away from LA, and up to SF or NYC?

------
steven777400
I work for state government and we hire a good number of older developers
(younger ones too). Because our projects are mostly dull (with a few key
exceptions), the technology largely prescribed, and the salary somewhat low,
we tend to get either the lower-quality developers, the very inexperienced
developers, or the developers who value stability more than other aspects.

We hired one former consultant recently who basically told us, that at his
age, nobody wanted to hire him for consulting jobs anymore. He took a
(presumably) big pay cut to work for us, but at least it's a steady job as he
approaches retirement.

------
zwieback
We have the opposite problem where I work: everyone is in their 40s, kids,
mortgage, etc. We cannot get kids to stay here even though we recruit them,
they leave after a short while.

There's good and bad, of course, we have an exceptionally experienced staff
but eventually we'll all retire. There may be a problem where we don't get
fresh perspectives on our work but I'm not really convinced that's true. Maybe
more of a problem in social/mobile/web but in product development it's
probably not as much of an issue.

------
inestyne
I've been programming professionally since 1986 when I had a 70+ year old
mentor writing accounting and plant control systems in TurboDOS. Now I code
AND design large complex systems using either .NET or Rails. I don't send CV's
to people unless they ask for them and they have to know of me in the first
place to even ask.

I think the older devs that are still relevant probably don't show up in the
job seeking type of data, they are probably already booked with paying work
and startups!

:)

------
JustSomeNobody
Why do we say "Move Up" to management!? I'm an engineer! I am not a
subordinate. If anything, we should say "Move over" to management.

------
kfcm
From 1990 until 2006, almost every one of my colleagues/co-workers (dev,
infrastructure, management) was at least 10-15 years older than me. Some were
my age. Rarely was anyone younger.

When I emerged from a deep stint with a company (2000-06), the age
distribution had shifted dramatically to people in their 20s. Not only were
many of the old timers gone, I was finding myself to be the old timer.

What had happened to all my old timers? Many didn't survive the dot-com bust
or recession of 01-02. They either outright retired or moved to different
careers; some survived, but moved on anyway. Some had died.

Those that remained in technology went three different routes. Management,
consulting, found a place in a company they like and haven't budged.

Personally, I started my own consulting business which I enjoy. Although
nearing 50, I do feel some envy for the guys who've found a nice small/mid-
sized company to settle down in. They may not be as well compensated, but they
are often "IT Director/VP" (where IT is 3-8 guys), are still hands-on, get to
have fun, and not have as much stress.

------
11thEarlOfMar
The oldest dev I know still working is 70. He tells stories of working on
PDP-8:
[http://en.wikipedia.org/wiki/PDP-8](http://en.wikipedia.org/wiki/PDP-8)

His company is unusual in that way: Average age of the devs is around 55. He
currently writes test software and technical manuals for advanced control
systems. They're hiring, if anyone is interested.

------
javery
They go where you went Oren - they end up running their own company or running
a group of devs or a product inside of a larger company.

------
unoti
I'm 46, I programmed a computer for the first time when I was 10, back when
Pong was starting to wane and the Atari 2600 was starting to get big. I've
been programming continuously since then for 36 years. It's been challenging
me to stay with it that long, and most people I've known have dropped out for
these reasons:

1.) Developers get comfortable with a given technology, and eventually stop
learning. And the longer this goes on, the more exceedingly difficult it is to
leave that comfort zone, because it makes you feel dumb and slow. When I first
got into the industry, there were lots of folks doing things like IBM
mainframe assembly and RPG/3 and COBOL. They'd tell me that that was where the
real money was, and there was no need to learn new skills. After all, those
systems weren't going anywhere, and they were bringing in fat checks. In fact,
the more obscure the technology, the more money they make.

This particular trap of sticking with a technology is an insidious one that I
almost fell into myself. In my early 30's, after working at the same place for
about 10 years, I started coming to the conclusion that I was the best
developer that I knew. I could do stuff in a weekend that other teams of
people would fumble over for months. I was unstoppable. Then I changed jobs a
couple times, and started doing game development, and started getting worried
that I was actually not nearly as smart as I thought, and that I was losing my
edge. But the real truth is simply that when you do the same kinds of jobs
with the same technologies for many years, you get real good at doing those
things. You find a comfort zone. And leaving that comfort zone feels wrong,
stupid, and even counter-productive.

2.) It becomes tempting to switch to management. Over my career I've worked
for innumerable managers who used to be developers in whatever technology was
used 5 or 10 years ago, but now they do management. Often, they don't even
realize how out of date their grasp on technology is. It's easy to fall into
the trap of moving into management, because it's typically the only path to
any kind of career development or upward mobility. I've gone into management
myself for a few years, but then realized that if I want to be a good
developer as my top priority, then I need to spend my time focusing on being
the best at that, which can mean making some sacrifices. Once you move into
management, you're done unless you keep your skills current.

3.) Developers need to continuously retrain themselves. This one kills most
developers dead. You have to train _yourself_. The means not expecting your
employer to do it for you or pay you to do it. Every 5-7 years over the last
few decades I've totally changed my technology platform many times, and every
time it was because I had spent the last year or so getting ready. I'm talking
about spending a significant amount of time working with and understanding
technologies other than the one you're using right now, say about 200 hours
per year at least. I haven't read the responses on this forum yet, but I
guarantee you will see a pattern of developers feeling like they don't need to
work hard to retrain themselves. Saying things like, "programming is my job,
it doesn't have to be my hobby as well." This is a fine attitude, as long as
you aren't planning to be a developer for more than 5-10 years.

If you're in software development for the long haul, more than 5-10 years,
then you have to be continuously training. If you're not absolutely serious
about staying on top of new technology, then your skills will be obsolete and
niche within 5-10 years.

~~~
brogrammer90
In regards to your third point, how do you differentiate yourself from a 23
year old kid who has the same amount of experience with the new technologies?
Also how do live with yourself having to learn this new platform written by
someone half your age?

~~~
unoti
A few ways: probably superior project management skills, information
organization skills, communication skills, systems architecture skills, data
design skills, and domain knowledge. If we're talking about payment
processing, I could list 10 things off the top of my head to look out for to
avoid difficulties in the application, for example.

I know how to start with a vague notion of a system, interview 15 domain
experts in the field, and turn that huge mass of random information into an
organized document. I know how to collaborate with others to make a design,
and manage the project through to completion. For certain areas of domain
knowledge, I have knowledge and skills on par with top industry experts. And
the 23 year old kid may actually meet or exceed any of those things, but
probably has never successfully worked trade shows, sold products, or given
presentations or training programs. I also run my own business that's
profitable that I started from nothing, and has been going for a few years.

That doesn't really matter too much in a lot of situations though, so in a lot
of cases, maybe I can't differentiate myself. I, too, was once a 23-year old
badass who had been programming for 13 years since before getting out of grade
school, and knew everything, and was the most amazing programmer around. The
most important advantage I have over the me back then is now I know I'm not as
smart as I thought, and I understand much better the importance of teamwork
and giving everybody on the team a chance to shine.

Living with code written by someone half my age is no problem at all. A far
more difficult thing is dealing with code that's badly written. But all
professional developers eventually learn to deal with that; it's like how
sailors learn to deal with rough weather.

------
Luyt
I'm 48 and programming since I was 11 (on a PET-2001 ;-). A few years ago I
wrote up a 'résumé' because everybody seemed to had one - since then, a few
people told me it's more a 'bio' than a 'résumé', but who cares... It's at
[http://www.michielovertoom.com/cv/software-
developer/](http://www.michielovertoom.com/cv/software-developer/)

 _" I was born in the mid-sixties and got in touch with software programming
at an early age. It became my hobby, along with the field of electronics. I
was very keen to get to know exactly how things worked and what was happening,
even up to the level of the silicon. In those days I spent more time reading
datasheets and computer manuals than I did reading comics. "_

I find great joy in exploring new technologies. At the moment, I'm learning
Docker.

------
mwfunk
It's an interesting question, but the article doesn't try to differentiate
between a dearth of older developers vs. a dearth of older developers sending
resumes to Hibernating Rhinos in Hadera, Israel. Like, are they affected by
local demographics, their own corporate culture, the ways in which they do
recruiting, etc.

It seems like the article is written from the perspective of assuming that the
age distribution of the job seekers that they interview is equivalent to a
random sampling of all software developers worldwide, but it could also just
be a function of how resumes make their way their way to this particular
company in this particular part of the world via the particular channels
through they receive resumes.

I would still expect a random sampling of people looking for programming jobs
worldwide to be heavily weighted towards recent grads however, for lots of
reasons:

(1) Just in terms of numbers, there are a lot more people with recent CS
degrees than degrees from 20+ years ago.

(2) People in the first few years of their career are much, much more likely
to send resumes to a gazillion different places. They are also much more
likely to start looking for a new job after 1-2 years.

(3) People with less experience are much more likely to apply for an entry-
level position.

(4) If you have a company mostly or entirely staffed by people in their 20s,
that by itself is going to scare off older developers and encourage younger
developers to apply.

(5) If most of the company is composed of people in their 20s, then most of
the resumes you receive from acquaintances of your existing employees are
going to be from people in the same age group. So, there can also be an
element of it being a self-perpetuating thing.

Etc. etc. etc. Basically, why there are fewer older developers is an
interesting question with multiple answers, and why this particular company
doesn't get resumes from them is also probably an interesting question with
multiple answers. The questions raised by the article are so general, however,
that there are no simple answers.

------
throwaway5752
Probably repeating what's been said elsewhere, but older devs are also less
common because a lot move out of development and into management or other
areas that are either less stress or more lucrative. A lot have kids and their
priorities shift, taking large company pay and stability (such as is is) over
startup lifestyles. Also, wisdom doesn't always come with age, but eventually
you realize that being a developer at a startup is overrated financially - it
primarily is a great professional development period. Once you've learned what
you can from the experience, you tackle some bigger problems that typically
cannot be solved by 3 guys working 24/7 on ramen and shoestring funding.

------
datashovel
I've noticed a basic pattern. Especially with web-based companies.
Inexperienced / non-technical folks get put into important decision-making
positions. They hire the young / hip devs. Definitely don't want to spend the
money older devs are asking for. Also it "kills the vibe" to have
30-somethings in the office when you're a company full of 20'somethings. They
spend a few years on the project. With project deadline looming, and no idea
how they're going to finish, they bring in the older devs for short contracts
to try to finish the job before deadline.

------
jordanpg
Shouldn't this line of work be some sort of grand meritocracy? Or at least be
striving for such a thing? Shouldn't age be 100% irrelevant?

But of course it isn't purely a meritocracy, because social factors matter,
too.

And of course careers and office politics matter, too.

And of course there are biological considerations, like family and energy and
health.

And of course it is exhausting to frantically keep up with the bleeding edge
of the technology _du jour_.

And of course deep, long-lived knowledge matters just as much as coding
ability sometimes.

And on and on and on....

------
gcv
Someone in Silicon Valley, a respected and very smart middle-aged CEO of a
well-funded startup, once said to me that programmers over 45 either become
CTOs or they probably aren't very good (and therefore not worth hiring).

A generalization, to be sure, but it fits with edw519's view of 75% of middle-
aged programmers in
[https://news.ycombinator.com/item?id=8481761](https://news.ycombinator.com/item?id=8481761).

------
23david
Eeek. What is an old dev? :-)

Who is older: a) programming commercially since age 20, currently 35 (15 yrs
full-time experience) b) programming commercially since age 35, currently 40
(5 yrs full-time experience...)

Once your arms and fingers start giving out (or eyestrain), people start
feeling old really fast. Doesn't matter how old you are. Take care of your
health (including keeping your brain active on interesting projects...) and
you'll stay "young".

------
ianstallings
I think this is actually just the fruition of the past growth in our industry.
Around 1995-2000 we saw incredible growth. Then we had some industry pitfalls
and people left for greener pastures so that might have weeded out a lot of
people that weren't committed. Then we had another growth spurt that has
slowed but is still growing. So we will be seeing a lot more people with
multiple decades of experience. And so on..

------
Beltiras
I'm 2nd in experience @ my dayjob, lead programmer is a step away. I also know
that the division head is a bit worn and really wants to step down.

I would like either one of those jobs but I would rather take the seat on the
management board to be honest for the influence it would give me.

Writing good software starts with a business decision and the Suits people are
notoriously bad at making good calls in that department.

------
ArtDev
Focus on your niche, become highly specialized. Do higher level architectural
stuff and apply your many years of experience.

~~~
CmonDev
E.g. picking WPF several years ago :)? And now it's dead.

~~~
throwaway876876
I'm sure he menat "niche" as in web dev or machine learning, not as in "COBOL"
or "WPF"

~~~
CmonDev
Web dev is not niche at all.

------
vkjv
I think you are missing a small detail. Older people tend to be more risk
averse and more likely to stay in their current position.

More than likely, the answer to the question, "where are the developers with
20 years experience?" The answer is, "the same place they were 10 years ago."

------
Wintamute
I'd say it's an interplay between the following issues,

1 - Writing code is a young man's game. Older devs get one too many
platform/language iterations behind the curve so can't apply for as many jobs
- obviously not true for everyone, but could account for something

2 - Older devs are tempted into management, and so write emails for a living
instead of code

3 - Older devs may have more commitments outside of work, so can't take on
jobs that demand long hours in the office and long hours at home keeping up
with tools and trends

4 - Huge numbers of people are starting to realise you can make good money
sitting on your arse all day and writing code, so there are lots of them
applying for jobs with low experience - that's not to say many of them will
still be trying a few years from now

5 - All the best experienced older devs don't apply to job ads, they just move
easily between contracts using their network

~~~
coldcode
A young man's opinion :-) Speaking as someone with 33 years experience writing
code at a high level, I have lost nothing over the years except the attitude
that only young people can code. What matters is desire to learn and keep
ahead of the curve, and continued enjoyment of writing code. I've seen people
lose that at every age group.

~~~
collyw
Young people usually write crap code in my 11 years experience. (Not all of
them but probably the majority of them).

~~~
MrDom
I knew one young guy in particular who prized indirection over all things.
Debugging his code for something relatively simple involved jumping up and
down at least 10 rungs of indirection or "abstraction" and was by and large a
nightmare to extend or maintain.

But, he _always_ , without exception exuded confidence and delivered new
features quickly. He was hired as a senior architect at several startups
before he turned 25.

~~~
collyw
I seem to have had the jobs cleaning up after these peoples mess.

------
void_star
I'm reminded of a blogpost from 2012:
[http://medriscoll.com/post/9117396231/the-guild-of-
silicon-v...](http://medriscoll.com/post/9117396231/the-guild-of-silicon-
valley)

------
peter303
Several 60-somethings at this company. And 20-somethings. We are vertical
software company where domain knowledge is important. Developers come from
both the the domain side and computer side.

------
spacefight
/dev/burnout :(

------
vetler
There's a flood of aging developers right around the corner, starting with the
C-64 generation. Perhaps there are not tons of older developers now, but there
will be soon.

------
pptr1
Agreed with edw519.

How come no one asks where do old chefs go to? What about old artists? What
about old musicians? What about old plumbers? What about old construction
people?

------
mcguire
It'd be fun to ponder all the deeper causes and consequences, but for some
reason I simply find myself agreeing with Poul-Henning Kamp:

"So asking where we are is the wrong question.

"You should be asking what it would take for us to become fired up about your
company?

"For one thing, you'd have to be within commuting distance, because we're not
going to uproot our family and ditch our real-estate investments for some
random job anymore, in particular not now that the lawn and roses are finally
starting to look nice.

"Telecommuting is fine, but it wouldn't be the same for your company, would it
? You wouldn't have a genuine graybeard to berate and lecture all the young
ones around the office.

"And I doubt you can muster at set of 'benefits' which can motivate us, what
we'd probably like most of all would be to work fewer hours not more."

(Agreeing with Poul-Henning Kemp? God help me!)

Another commenter pointed to a post by Robert Martin[1], with the following
quote:

"...what caught my attention was the shape of the age distribution in the
first graph. If this graph is correct, then most programmers are under 28.
Most programmers have less than 6 years experience!"

Which seems entirely true to me. Unfortunately, I'm significantly less
optimistic than Uncle Bob:

"One seasoned programmer in their 40s can have a profound effect on a team of
a dozen or so twenty-somethings. As a leader, that programmer can teach the
team about principles, patterns, practices, and ethics...."

Mostly because it seems impossible to _lead_ those 20-something programmers.
Most of them seem to have a project or two behind them (mostly unsuccessful,
but that hardly matters) and they _know everything_. As a result, it's not so
much a question of leadership than one of beating them into submission every
time a new question comes up.

To quote me:

"Ok, X works, we've done X successfully for a while, several people around
here are familiar with X. Let's use X."

"Sure, we'll look at X'," quoth they.

Then, "X' is too hard; we can't get it to work," when they come back.

"So, X?"

"No, Y is the new hotness, let's use Y."

[1] [http://blog.cleancoder.com/uncle-
bob/2014/06/20/MyLawn.html](http://blog.cleancoder.com/uncle-
bob/2014/06/20/MyLawn.html)

------
AwesomeTogether
Regardless of career prospects title should have been "where do old devs go to
die?"

------
prohor
/dev/null ;-)

------
robomartin
If you are 35+ and technically savvy you really ought to consider launching
your own business online. By far the best program I've seen that takes people
from newbies to online business owners is here:

www.ProjectAmericanDream.com

Full disclosure: I am an investor and know dozens of people doing the program,
friends and family members. Most successfully.

Older programmers have lots of challenges. Being good has nothing to do with
it. If you didn't build a network as you went through your career you are
going to have a hard time at 50+. Age discrimintion is very real in certain
circles. An then there's the ridiculous process through which some choose to
evaluate or filter people.

I have never been a freelance programmer, always an entrepreneur so I never
experienced this first hand. That said, I've always had good relationships
with recruiters because of my need to hire engineers for my businesses. I
often get to hear war stories over a cup of coffee.

If I had to summarize what seems to bother me the most and strike me as most
unfair is what I call the search for the instant language x and framework y
programmer. It seems there are companies who only care about an instant and
immediate fit with the language and tools they are using rather than to search
for unique experienced talent and new thinking. A software engineer with
decades of experience and a solid foundation in Computer Science has gone
through several language/tools/frameworks transitions. Their value goes far
beyond being able to write fizzbuzz in a certain language in 15 minutes.
That's myopic and really juvenile in my opinion. No, these people can offer
strategy, structure, safety, planning, ideas, process and a whole host of
other valuable contibutions to an organization and yet they might fail a
language x and framework y interview test. Once hired they can learn the
desired language/framework very quickly yet there seem to be lots of examples
of people not getting past that firewall due to, again, in my opinion,
misplaced priorities in the hiring process.

Some of the best people I have hired knew absolutely nothing about the tools
and frameworks we were using. Because I never look to fit people into a little
box that has never been an issue with the way I hire at all. If someone is
really good and can bring solid value to the organization I gladly spend
several thousand dollars sending them to courses to get them up to speed.
Inside of a month you have someone with amazing value who can now jump in and
rock with the tools you happen to be using.

One example I can offer that isn't direcly related to CS is when I hired a
machinist to help run our CNC shop stocked with the latest Haas CNC machines.
He had NEVER run a CNC machine. Didn't even know the first thing about G-code.
He had 40 years of machining experience. He blew me away when he showed me a
whole bunch of little machinist utilities he wrote for his HP-41 calculator. I
hired him on the spot. I probably invested about $10K in various classes
getting him up to speed on CNC. This guy was AMAZING we learned a ton from
him, for some of us lessons that will stay with us the rest of our lives. A
mentor in the true sense of the word.

So, yeah, at some level I think hiring, in certain segments of the industry,
is broken.

~~~
teyc
Spot on. Building networks is key. A software developers role tend to involve
a lot of time alone, and this counts against long term career development. In
particular, meeting time is often treated as bad time while writing code is
valued. In reality, a programmer needs to divide time between executing and
saving up some human capital for the future.

I have been going around doing interviews because I did not network enough and
my contracting/freelancing work dried up. What they are looking for in a
senior developer is the ability to lead teams, improve collaboration, code
quality. I'm in my 40s and I can absolutely believe that 50+ people can have
serious difficulties securing the right position.

~~~
robomartin
Right. If it is true that kids are getting out of school barely being able to
program their way out of a paper bag it is really astounding to me that
startups are not actively seeking programmers with ten or more years of
experience to get things done. At the very least there has to be room there
for some kind of a consulting position to guide away from bad decisions.

Of course, there are people so set in their ways that they simply refuse to
keep up with technology. We are not talking about that group here, least I
don't think so.

------
m0skit0
To C heaven

------
hga
Falsification: around and after age 35 I found it increasingly difficult to
find work, until I got a clue and scrubbed my resume of all evidence of
_exactly_ how old I was (removed education dates; I'd already been trimming
older jobs due to length and lack of relevance). Did that in the midst of one
job search and the difference was like night and day.

BIG caveat: my family and I look a lot younger than we are, with no effort at
all besides clothing and wearing a backpack I could pass as a 20 something
college student through my early '50s. I also had to be careful in talking
about my background, in one memorable 2003 interview I let slip that I'd
worked on PDP-11s and the technical interviewer who was probably around my age
exclaimed "Just how old are you??!?!??!!!"

Which wasn't intentionally an illegal question, just that the mental model
he'd been building of me suddenly went _TILT_. I did get that job, software
archaeology where experience made a difference.

~~~
MCRed
How many years of experience do you keep on your resume? I've been keeping 20,
but it seems the bay area startups can smell that I'm old. (I've not met age
discrimination outside of the bay area startups run by 22 year old type
companies.)

~~~
hga
Roughly a dozen years, under the heading "Recent Relevant Experience".

But I went more by the oldest jobs that looked really good on my resume, like
being the VP of tech or being directly or indirectly responsible for most of
my company's revenue, and including figures. Even better than developing
software that you claim works is having people buying it and proving it works.

~~~
danielweber
My first post-college job I created a piece of security software and I still
run into people that say "you wrote that? We use that!"

But I've also noticed the people who love talking with me about that are _not_
hiring me. It seems they bring me in to reminisce about the old days, and then
go hire someone else. As nice as it feels for my ego, I might drop it.

------
michaelochurch
To get a programming job that can actually use 10+ years of experience, you
need to develop strong interpersonal skills and (to put a darker shade on it)
learn some CS 666: Software Politics. At that point, the main obstacle to
moving into management (needing to bring your interpersonal skills up to, at
least, the 25th percentile) is gone.

In other words, if you're good enough at interpersonal politics to keep
improving as a developer past the 5-year mark (which requires working people
well enough to get on the best projects) then you're also good enough to move
into management.

Moving into management is also just plain easier than protecting a specialty
against the anti-intellectualism of business-driven engineering. You're a top-
flight developer making $140k with a well-formed specialty (let's say that
it's machine learning in Haskell). Your options are: (a) compete for the two
jobs that exist _in the world_ , (b) give up your specialty and move to a
hedge fund, or (c) move into management, which tends to be specialty-agnostic,
and lucrative. If you've decided that you're a manager from here on out, all
those damn Java shops become options again.

Startups were _supposed_ to provide an alternative, but these days the VCs act
like bosses and being a funded CEO _is_ a middle management position.

For what it's worth, the genuinely interesting fields of programming tend not
to have the same age-related attrition. Machine learning researchers, and even
serious engineers like Jeff Dean, are just starting up when they're 40.
However, the business-driven engineering that 95% of us have to contend with
is mind-rotting. Spending a week debugging someone else's
VibratorVisitorFactory method, or figuring out what the fuck some ORM is
doing, just causes atrophy.

We have age-related attrition (of both kinds; our most talented leave, and our
less talented or just less lucky are punted) because we're a badly organized
industry. We have a talent for which there's nearly unlimited demand, and yet
we refuse to organize around protecting its interests with a union or a
professional guild.

Also, organizations that use a "dual track" only underline the problem. Take
Google. It's 100 times harder to become a Principal Engineer (Director-
equivalent) than to hop on to the management ladder and make Director. It's
10,000 times harder to become a Google Fellow (VP-equivalent) than to make VP.
There may be a noble intention behind dual track organizations, but their
actual effect is to show how stacked the deck is against lifelong individual
contributors in a world that is still "manage or be managed".

~~~
dannypgh
"It's 100 times harder to become a Principal Engineer (Director-equivalent)
than to hop on to the management ladder and make Director. It's 10,000 times
harder to become a Google Fellow (VP-equivalent) than to make VP."

I think it is obvious given total headcount that there aren't 10,000 times as
many VPs as Fellows. And given I know of way more people going from IC to
Management positions than the other way around, it seems many ICs effectively
compete with folks on the Management ladder for Management jobs. Meaning even
if equal effort was required to get to Director as to PE, I'd expect many
would-be PEs end up as Directors because they decided to switch to the
management track for whatever reason (e.g. because they realized they were
already informally managing). Sure, one of those reasons /might/ be they
thought career advancement was easier on the management track, but what proof
of that do you have?

To assert it's 2 orders of magnitude harder to become a PE than a director,
and 5 orders of magnitude harder to become a Fellow than a VP, I think you're
gonna need more proof than that.

~~~
PeterisP
Actually, if I look at tech field as a whole, it seems quite realistic that
there are 10000 more VP-level positions across the many companies than the
Fellow-level positions, of which 99% of companies don't have any at all. My
home city likely has thousands of software-related VP's, but has 0 Fellow-like
positions, they're very uncommon globally.

Quite literally. If I want to be a manager of a sizeable bunch of programmers,
then that's a popular job that every company (from small tech companies to
multinationals selling soap or loans) will have a bunch of and most of them
probably have a vacancy right here and now. If I want a Fellow-type role, then
my options can be counted on my fingers.

~~~
michaelochurch
Correct. Also, engineers are promoted "confirmationally" (meaning, after
they're performing at level X) and managers are promoted "aspirationally"
(when people think they should be able to reach level X). Google prides itself
on promoting only confirmationally, and engineers like it that way because
it's more meritocratic. The problem is that product people and management
still get _aspirational_ promotion, and that's a huge leg up.

Over time, they advance a lot faster than we do. We have to take on above-
level responsibilities (which is politically dangerous, because people start
to wonder if you're neglecting your at- and below-level job duties) to
advance. They don't.

~~~
nostrademons
Product people and management - at least at Google - are still promoted
confirmationally - you get formal management responsibilities when you've been
a tech lead for a year or two and have exhibited the qualities (concern for
other peoples' careers, ability to delegate, humility, emotional stability,
ability to see multiple perspectives, commitment to Google and its values)
that Google wants to see in its managers.

~~~
michaelochurch
Confirmational promotion may be true for the first leap into the management
ladder, but not after that. Aspirational promotion makes sense for management,
since it's really about social status rather than achievement anyway.

 _concern for other peoples ' careers, ability to delegate, humility,
emotional stability, ability to see multiple perspectives, commitment to
Google and its values_

You don't really see these among the people in power. Stack ranking? Secret
"calibration scores"? Closed allocation? _Blind_ allocation? People getting
PIP'd for having 20% Time projects?

~~~
nostrademons
It's interesting how you and I can see the same facts and interpret them
completely differently, perhaps because I know the reason for these practices
and also don't have an axe to grind about how they've personally affected me.

Stack ranking is there to smooth out mistakes in your manager's judgment. One
of the big problems I saw in the promo process is that people who quietly help
out a lot of other people but don't work on their manager's pet projects will
get overlooked by their manager at promo & calibration time. Stack ranking is
there to counteract this: if you have helped out lots of teams, you will
appear high on many other peoples' stack ranks, sometimes even higher than
your manager, and promo committees take this into account when considering
promotions of people who don't have their managers' blessing. And it generally
works, too: I was promoted on the strength of peer recommendations (I had
quite low calibration scores, largely because I've never really cared what my
manager thought of me), and I know several other friends who were as well.

Calibration scores are there to prevent the problem where a manager games the
promo system by giving super-awesome assessments to all of his reports. He has
every incentive to do this: it raises his own prestige within the organization
to have a "super high performing" team (even if it's only high-performing
because he set the goalposts low), and engenders loyalty from his reports.
Calibration forces him to justify his scores to his peers, all of whom have an
incentive to inflate their own reports' scores relative to him.

Closed allocation does suck, but in my experience Google didn't actually have
closed allocation. If you had a solid track record and a team willing to
accept you it was remarkably easy to transfer to a different department.

Blind allocation is a consequence of Google's "hire for the company, not for
the team" practice, which is a way to prevent empire-building and keep the
hiring bar high. When teams do their own hiring, every manager has an
incentive to take a marginal candidate, because his team is probably
overworked, and one mediocre employee is better than zero employees. Over
time, this would make the whole company mediocre, which is why Google has
instituted a uniform hiring bar across the company. Blind allocation is an
unfortunate side-effect of this; most people would rather know which team
they're going to (actually, if you're in demand by multiple teams, you can get
this - I spoke on the phone with my eventual manager before accepting my offer
letter), but that's hard when you're not interviewing with one particular
team.

I have never seen anyone get PIP'd for having a 20% time project, and I had
like a dozen 20% projects during my time at Google, one of which became a
major open-source project (and ultimately consumed like 50% of my time). I
have seen people get PIP'd for not doing any useful work on their main
project, but that's because you're hired to do a job and you better do it.

