Career planning: Where do old devs go to? - <AUTHOR> http://ayende.com/blog/168802/career-planning-where-do-old-devs-go-to <comment><USER4> 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.

<comment><USER5> >>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.

<comment><USER6> 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.

<comment><USER7> >> 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. :)

<comment><USER8> 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.

</comment></comment></comment></comment></comment><comment><USER9> 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.

<comment><USER10> 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.

<comment><USER11> 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.

</comment></comment></comment><comment><USER12> 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.

<comment><USER13> "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.

<comment><USER12> 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.

<comment><USER13> 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.

</comment></comment></comment></comment><comment><USER14> 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).

</comment><comment><USER15> 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.

<comment><USER16> 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.)

</comment></comment><comment><USER17> 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.

<comment><USER18> 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".

<comment><USER19> > "Thanks, but I prefer coding, I'd rather stay where I am".

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

"nope."

<comment><USER20> 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).

<comment><USER21> 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.

<comment><USER20> 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]

</comment></comment></comment></comment></comment></comment><comment><USER20> 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).

<comment><USER9> 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.

<comment><USER22> 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).

<comment><USER9> 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.

<comment><USER23> 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.

</comment></comment></comment></comment></comment><comment><USER24> 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.

</comment><comment><USER25> 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.

<comment><USER26> 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.

<comment><USER27> > 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).

<comment><USER26> 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.

<comment><USER27> 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.

<comment><USER26> 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.

</comment></comment></comment></comment></comment></comment><comment><USER28> 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".

<comment><USER29> > 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.

</comment></comment><comment><USER30> 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.

</comment><comment><USER31> 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.

<comment><USER19> 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.

<comment><USER32> _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.)

<comment><USER33> I'm working at a services firm in India and am not good enough to get into AmaGooBookSoft. What do I do ?

<comment><USER32> 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.

</comment></comment></comment></comment></comment><comment><USER34> 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)

</comment><comment><USER35> 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 - <USER2> 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.

</comment><comment><USER36> 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.

</comment><comment><USER37> 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".

<comment><USER38> 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.

<comment><USER37> 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".

</comment></comment></comment><comment><USER39> 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.

<comment><USER40> 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.

<comment><USER41> 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.

<comment><USER42> 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.

</comment></comment></comment></comment><comment><USER8> 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.

<comment><USER21> 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.

<comment><USER13> 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.

</comment></comment></comment><comment><USER43> "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 ...

</comment><comment><USER44> 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)

</comment><comment><USER45> 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.

<comment><USER43> "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.

</comment></comment><comment><USER46> "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.

</comment><comment><USER47> 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.

<comment><USER48> [https://en.wikipedia.org/wiki/Fellow](https://en.wikipedia.org/wiki/Fellow)

</comment></comment><comment><USER49> 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.

</comment><comment><USER50> 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.

<comment><USER51> Why do you let them treat you like that? There are other options.

<comment><USER52> > LA

<comment><USER51> 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?

</comment></comment></comment></comment><comment><USER53> 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.

</comment><comment><USER54> 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.

</comment><comment><USER55> 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!

:)

</comment><comment><USER56> 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.

</comment><comment><USER57> 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.

</comment><comment><USER58> 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.

</comment><comment><USER59> 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.

</comment><comment><USER60> 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.

<comment><USER61> 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?

<comment><USER60> 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.

</comment></comment></comment><comment><USER62> 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.

</comment><comment><USER63> 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.

</comment><comment><USER64> 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 - <USER3> 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.

</comment><comment><USER65> 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.

</comment><comment><USER66> 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....

</comment><comment><USER67> 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).

</comment><comment><USER68> 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".

</comment><comment><USER69> 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..

</comment><comment><USER70> 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.

</comment><comment><USER71> Focus on your niche, become highly specialized. Do higher level architectural stuff and apply your many years of experience.

<comment><USER72> E.g. picking WPF several years ago :)? And now it's dead.

<comment><USER73> I'm sure he menat "niche" as in web dev or machine learning, not as in "COBOL" or "WPF"

<comment><USER72> Web dev is not niche at all.

</comment></comment></comment></comment><comment><USER74> 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."

</comment><comment><USER75> 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

<comment><USER76> 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.

<comment><USER77> Young people usually write crap code in my 11 years experience. (Not all of them but probably the majority of them).

<comment><USER78> 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.

<comment><USER77> I seem to have had the jobs cleaning up after these peoples mess.

</comment></comment></comment></comment></comment><comment><USER79> 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)

</comment><comment><USER80> 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.

</comment><comment><USER81> /dev/burnout :(

</comment><comment><USER82> 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.

</comment><comment><USER83> 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?

</comment><comment><USER84> 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)

</comment><comment><USER85> Regardless of career prospects title should have been "where do old devs go to die?"

</comment><comment><USER86> /dev/null ;-)

</comment><comment><USER87> 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.

<comment><USER88> 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.

<comment><USER87> 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.

</comment></comment></comment><comment><USER89> To C heaven

</comment><comment><USER90> 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.

<comment><USER28> 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.)

<comment><USER90> 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.

<comment><USER42> 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.

</comment></comment></comment></comment><comment><USER91> 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".

<comment><USER92> "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.

<comment><USER93> 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.

<comment><USER91> 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.

<comment><USER94> 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.

<comment><USER91> 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?

<comment><USER94> 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.</comment></comment></comment></comment></comment></comment></comment>


Hilary Clinton's search results manipulated by Sourcefeed, not Google - <AUTHOR> https://medium.com/@rhea/hillary-clintons-search-results-manipulated-by-sourcefed-not-google-3dd9a5c68ca1#.4ovlz5ra6 <comment><USER2> Do any of these people understand that the autocomplete algorithm takes many other things into account? Like your personal search history, Google's internal dossier built on top of your usage of all their services, and even things like location, type of device, etc.

It's very difficult to get an unbiased autocomplete suggestion and actually requires some nontrivial degree of experimentation/the appropriate setup.</comment>