Hacker News new | comments | show | ask | jobs | submit login
Career planning: Where do old devs go to? (ayende.com)
344 points by matthewwarren on Oct 20, 2014 | hide | past | web | favorite | 317 comments



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.


I build cool stuff, I have kept up to date on new technologies, and languages. But I don't have a big network of people who "need a website" and I don't build websites, so I don't have people constantly calling me offering me work. That doesn't make me someone who has "done the same job for 30 years".

My skill is not marketing my skills on a freelance basis. My skill is in engineering.. and a variety of others (like startups, people management, etc.)

I hate 80/20 like splits that are so binary.

Part of the problem here is that it's very difficult for many people under 30 to imagine someone over 40 is not falling into your %75 category. They already think that most people can't do fizz buzz.

I once had an interview with a 20 year old with 2 years of experience. HE was the head of development at one of those startups that raised millions on kickstarter.

He asked me the question: "How would you do feature X in language Y?". I pointed out that you couldn't do it in language Y but that you could do these other things that were similar. He then said " In language Z you do this and that's the answer I was looking for". But language Z is not the same as language Y.

Flubbing a question? No problem. Everyone can get nervous. Giving a BS question and then using the "wrong" answer as a reason to not hire me? Suspicious. So, why would he try to do that? Well, it turns out we were on a video call.

Who wants to hire someone old enough to be their dad? I understand that sentiment.

But the Software Industry hasn't developed a pyramid of job titles you can climb.


> Who wants to hire someone old enough to be their dad?

I do. They almost certainly know more than I do about anything of any substance. Maybe they don't know node.js and mongodb as well as some young person, but they can figure that stuff much faster than I can learn any of the stuff they've learned throughout their life. I worry more about the opposite: who wants to work for someone young enough to be their child?


"Maybe they don't know node.js".

Exactly, there is nothing magical about implementing the Reactor pattern in a 25-year old language.


There's nothing magical about any of it. It's all incremental progress. We place way too much value on specific technologies, and not enough on broad experience. If someone has been successfully building software for decades, it is stupid to think they can't figure out rails or play or clojure or {{whatever}}. They may not want to learn, but that's a different issue.


There are plenty of older developers who are interested in the latest thing. Because us older developers get bored with the old stuff, and we are definitely aware of the issue of falling behind. I am 36 and have been doing Node.js for 3 years.

I was just reading a response to this article with someone who was much older, like 50 or 60 or something, also said he was a Node.js programmer.

I've actually been really paying close attention to trends, new programming languages, etc.

Node.js is kind of old news. The coolest new programming language I know of is Nim.

Stuff that I think that matters for the future is higher-level semantic metalanguages for information exchange and information systems factorization, fully distributed computing, connected devices, and custom circuits/electronics.


It's so absurd that 36 is "older".

I didn't mean to imply that no "older" developers are interested in newer things, just that it really doesn't matter if they aren't.


I am finding a bit difficult to understand the "I am not good at networking" angle. Assuming a job change every 3 years, and 2 people to vouch for you at each, one would have a 10 people "marketing team" after 15 years. I am not talking about schmoozing with higher ups here; just impressing peers with the quality of work.

Am I missing something?


There are introverts, and then there are introverts. I can easily see somebody who is particularly introverted not developing a deep network after 10, 20, or even 30 years of experience, simply because they are very introverted (or socially maladjusted; the two are different, but in a world run by extroverts it is arguable that they may as well not be). I'm not that introverted, but I'm introverted enough that it is by sheer luck I have more than two people from my first few jobs I could ask for references or even directly for work. My last couple of jobs, however, have been another matter--I "got over it," as they say, and have put more effort into networking. I even recently developed a connection completely outside of work!

Leavnig that aside, sometimes people move or switch focus or have to take jobs at crappy "body shop" companies to make ends meet during a bust, etc. Hence the quality of the network isn't necessarily good enough to have the kind of "I need a job, whatcha got" connections you mention.


I'm spectacularly bad at keeping up with previous co-workers. I'll certainly admit to that---it's one of my "listen to my advice, what I'd do, and then do something completely different" points.

But then, I spent 8 years at one job and in grad school. Anyone I knew before that would be really hard to find even if they could be a useful network.

And I was really bad at connecting with my committee--I graduated, but without a good network there.

Then I moved across the country.

I've never had any problem finding work, if I shop my resume around to local contractors and "body shops". In fact, I've made a pretty good career out of that. But "exciting" work? Not so much.

At this point, I'm considering getting out of the field. And I love what I do. I just hate what I'm doing, if you can see the difference.


The problem is you think this is somehow normal. That's not how all engineers work. Maybe you work a job and do good work, but then the team disintegrates, people quit, you lose track of co-workers because they were just co-workers and not friends (even if you had an excellent working relationship). It's not necessarily normal at all to retain close relationships with past co-workers, even less so to routinely network through them let alone retain them as references.

The entire reason LinkedIn exists is because most people, even many very highly skilled people in professional career roles, find it difficult to make effective use of such networks, for example. And if you're an engineer who has experienced a rough patch of employment or worked at a company or in a role or under a boss they hated or experienced a period of burnout or underperformed somewhere due to any of those circumstances the whole thing gets that much more difficult.


What am I supposed to do exactly? Call up some co-worker from 3+ years ago and say "hi, remember me? Can you get me a job?"

I don't have a network. I have friends and I have colleagues, but I don't really have anyone that could get me job leads (maybe a couple of my friends)


Or you could call them up, ask them how they're doing, meet them for a coffee, then ask if their company is hiring for X and if they could refer you. At the very least this gets your resume put in front of the hiring manager and lets you bypass the HR nonsense. At the very worst, they say no and you go back to talking about his dog or whatever.

Keep in mind that most companies offer referral bonuses and programmers like to work with people they know and trust. I used to avoid doing this like the plague because I thought I was being a burden to people I consider friends. In reality, asking for a referral is mutually beneficial for both parties.


> Or you could call them up, ask them how they're doing, meet them for a coffee, then ask if their company is hiring for X and if they could refer you.

Every single one of my former coworkers, managers, and other people I dealt with on a regular basis is still at my former employer or retired. How do those contacts help me?


Quit overthinking it an go for coffee already! They know people; they hear about projects you don't; pick their brains. They will be glad to help, because they obviously are NOT interested in leaving their current job so you're no competition.


That might work if my former employer was not a defense contractor. Unfortunately, I left in large part because my co-workers seemed to have little clue as to what was going on outside their own little bubble and little interest in correcting that.


That's a perfectly fine reason for leaving, but you're the one who wants/needs help, so it could serve you well to temporarily drop the judgments & assumptions, and just give a few of said ex-coworkers a try.

If it turns out none of them can help you, you're out an hour or two and the cost of coffee.


Fair enough. You could go to meetups, go to conferences, engage other devs on social media. Send thoughtful emails to people who know people. Ramit Sethi has a couple of blog posts showing email scripts for getting busy people to say yes to coffee[1][2].

A longer term alternative is to make cool things and tell people about them. Write some open source or a side project and post it to HN. Lather, rinse, repeat until you get people emailing you asking you if you have time to talk.

Whatever strategy you use, the goal is to make a personal connection with a hiring manager directly.

[1] http://www.iwillteachyoutoberich.com/blog/ramits-definitive-... [2] http://www.iwillteachyoutoberich.com/blog/video-how-to-use-n...


That is what I am working on, and it is clearly on me that I have not accomplished anything along those lines yet. I have made a few good contacts this way, but nothing has panned out from it.


Hanging out with salespeople is the best way to learn how to network.

Something you notice immediately is that they never feel like they're being used when someone wants to "meet for coffee" as transparent cover for getting something out of them.

They realize that someday they'll need their back scratched, and there's always the possibility that they'll get something (a tip, a lead, etc.) out of an unexpected meeting.


Yes? Assuming your relation with this co-worker was good, why not? Many companies have recruitment bonuses so he would probably also be very happy to refer you.


> Assuming a job change every 3 years

There you go. I spent (really too many) years at one small company after moving from a top-5 city to a top-20 city. And some of my contacts have left town.

Also, even if I've got people who can vouch for me, how do I tell them I'm looking for work? (This might sound trivial but I haven't figured it out.)


I suspect no amount of networking would protect against moving away from the centres of industry.

Given the alternative is being stuck in a boring job, or low pay, or unemployment, what is so difficult in shooting an email asking if they know anyone hiring? What would your reaction be if you got such an email from an ex-colleague?


Yes. I"m 48, and I've worked in software for 26 years.

For two companies.

I think I'm probably the last generation that looks at long-term employment as a good thing, and the older I get the less risk I want to take in being "the new kid" who would be the first to go if anything went wrong with the company.


My network consists mostly of people who know I'm a "programmer" and that's about it. I hang out with tabletop gamers, artists and costume designers, video editors, etc. We're more connected by our hobbies than our jobs. Most tech people I've tried to hang out with aren't all that into discussing tech when we're not on the job. Heck, my enthusiasm for tech usually ends at 5pm.

I also don't talk to former co-workers much because I've moved on to different problems.

So, yeah, I'm bad at networking.


I think no one is like Ed. There maybe be 25% of programmers that have a long standing experience, even with the new tools, but they don't share wisdom like Ed does.

Ed why can't you have your own company? Why can't you be the one who is hiring or at least teach others how to hire. I bet you can smell a talent from 1000 miles away - even if someone did not finish a good school; the world of software engineering would make so much more sense.

[EDIT:] I imagine a job interview; an interviewee says: "I didn't program this but I did program something more difficult"; interviewer makes a frowny face; Ed comes round the corner, puts his hand on the interviewer shoulder and says: "He did not call you stupid; he just said he is ready for the challenge - he has the experience".


He already answered your question:

1. He doesn't take a job unless it's challenging. They don't post on HN or go to conferences because they are busy with so much work and life (hence no wisdom sharing).

2. If he is a freelancer (which his post makes him sound like), than he does own his own company. It's just not a software startup looking for VC or articles in big magazines.

3. He's not hiring because he wants to program, not do HR. Also, Michael Jordan can't pick players for shit and he's the best BB player in history. Skill in a job doesn't mean you can find talent, and the level that he would jump and say a person has talent is probably the level where said person doesn't need recognition to know their skill.

4. If a team does a good job outlining job requirements and interviewing, they too can smell talent from 1000 miles away. But interviewing every applicant with a 2.0GPA from a bottom tier school takes a lot of time and most often does not reveal a hidden gem. Regardless of what their potential is.


I'm like Ed! Except I do engines, libraries, network and backend code, including embedded stuff. But I don't have a resume; don't apply for jobs; don't need to look for work because it looks for me.

I've owned a company but its lonely, so now I earn less but work as a peer in somebody else's company.


Upvoted because I never heard anyone until now say that owning a company is lonely. Food for thought...


I own my own company too, and the loneliness is a very serious issue. I miss having someone else to bounce ideas off of. And often it feels like I'm the only one that cares whether I'm working during a given 1-day period or not, which is very difficult for me sometimes, particularly when the work isn't very challenging.


Takes iron discipline to keep going, 4 weeks into an 8-week project with nothing to do but turning the crank.


I think it's interesting people would assume so. Good programmers don't always make good managers. Or business owner. The same reason why not every good carpenter runs a business and manages a team of people. Highly skilled experts are probably disciplined enough to freelance or work as a contractor. But the skills necessary to grow an enterprise are often a very different set of experiences outside of what they do for a living.

Or they simply aren't interested. They are happy with what they do.

On the other hand, seasoned programmers do make great interviewers. And a good interview often include them in the process. Their insights are very valuable.

Also as a sidenote, if there is no senior/lead developer during your interview process. Or the people do not appear to have a clue. Run. Unless they are going to hire your as the senior/lead, and they admit they lack the knowledge.


I think no one is like Ed

That seems highly unrealistic.

- What are the odds HN would attract and recognize a one-in-seven-billion individual? HN is not THAT special.

- You believe Ed holds great wisdom, and it is Ed himself telling you he is not the only one.


"one year's experience 30 times, not 30 years experience." is a fantastic sentence and I'm stealing it. I've seen too many developers to whom it applies, and it's a great way to express that.


An HR manager said this to my mother's face once. Please consider people's feelings before using it. It's likely to be interpreted as "you've wasted your career and/or life".


It is true though. Some of my friends work for huge corporations, their job title sounds very advanced but in reality, they are repeating very narrow task over and over again for years like a trained monkey.

The worst part is that most people don't recognize this, they live in the bubble, being proud of themselves they know it all. Unless they lose this job and suddenly realize they are basically unqualified for anything outside of their narrow field of expertize.

Either get lucky, never lose that job, so you don't get your feelings hurt when looking for new job. Or get out of the bubble before it's too late and start challenging yourself with new opportunities.


It's not necessarily a bad thing to hear something that sounds bad. Even after years on this planet people can rediscover themselves and start a kind of life they didn't even know it exists. Not telling people who are bad that they are bad is a concept I have a hard time to understand. Instead of worrying about feelings why not worry about really being this better person people can't complain (as much) about?


> Not telling people who are bad that they are bad is a concept I have a hard time to understand.

You might be wrong, and you should factor that in. Perhaps you're not helping people towards a bright new future of self-realization, just condemning them out-of-hand based on your own limited experience or misconceptions? (Not using "you" to imply you do this, btw.)


I really wish English would develop a pronoun similar to the German man. I guess we used to use "one" in a similar sense, but it sounds really stilted now.

> Perhaps one isn't helping people towards a bright new future...


I myself have the experience of overestimating myself drastically many times. Also there are a few things I got good enough in. Therefore I think, when you get feedback and the person giving the feedback is wrong due to their lack of skill, not yours, then you are not really hurt. The only thing that is harmed is your impression and respect for that person. When you are sincerely hurt, it's often you who's lacking.

Never the less it's important to think carefully before criticising others. You are absolutely right and I'll try to keep that in mind next time I want to tell someone how bad they are.


No it's not a bad thing. Problem is that way too many people use this as an excuse to be an asshole. Remember that no one likes to be criticized. If you need to do that, you owe the person the basic human dignity of considering their feelings and being diplomatic.


Oh I would never use that kind of language to somebody's face. It's blunt, and usable when describing (for example) why you wouldn't hire a candidate after a job interview, but not as a form of criticism. There are better ways to bring up the intention to the people themselves.


"One year's experience 5 times" is a very old expression. I first heard it applied to real-estate agents, and it was very old then.

I went Googling for its origin and the first link just took me back to HN: https://news.ycombinator.com/item?id=4627373


Are you one of the people who use it to describe serial contractors or "job hoppers", or are you one of the people who use it to describe people who've been iterating on the same project/technology system for X years in a single place?

That's the problem with the generalization: it's too general, can be applied to almost any normal career, and isn't really a good heuristic to use when analyzing somebody's work experience in most contexts.


I'd use for people who claim X years of experience, but haven't made any progress in ability in those X years. You can spend 30 years evolving, or you can spend it standing still and only moving when you have no other option. This kind of phrase is for the latter kind, doesn't matter if they're serial contractors or have been working on the same project for 30 years.


Why is this comment getting upvoted? It's pretty insulting and arrogant to paint a massive swathe of our community as stupid, unambitious people who never progressed past hello world.

Let's remember that in those 42 years the number of BASIC, FORTRAN, or COBOL jobs has diminished through to almost nothing. The last person I met who described themselves as a COBOL programmer was about 10 years ago, and even they said they did it for the money as there were so few of them left.

So the programmers edw519's knows have in all probability probably managed to switch from COBOL to to VB6, then Java or PHP and then maybe even C# or Ruby and are probably nowhere near as stagnant or unambitious as he's portraying them.

It's that or he hangs round at COBOL programmer's meetups.


I felt the same, but I've come to realize that the comment you take issue with perfectly encapsulates the tech industry. A no holds barred race to the bottom. That's why work conditions, salary, stability and prestige are nowhere near comparable industries such as finance, heavy engineering, medicine, law, etc.

Something about programmers makes them think they are all the destined one true hero, and as a result, programmers tend to disparage and disrespect their own peers, at great cost to themselves.

My favorite is this guy [1], who was literally adding billions of dollars of revenue for Goldman Sachs, but was getting paid peanuts. When he left to pursue more interesting work (not for salary!), they brought the FBI down on him.

I don't call myself a programmer, computer scientist, or any such low class term anymore. I'm a consultant, and I don't associate with self-deprecating professionals who denigrate their own fields.

Humans are primates, and we form status hierarchies. Proudly exclaiming that your tribe is at the very bottom is the definition of stupidity. Good luck to those that do, I sincerely wish you the best. But when your salary stagnates, you're asked to work 80hr weeks without overtime, and you get no respect from management, maybe its time for a little self-reflection.

There is a reason software dev is such a low status profession, and it's not because we're "nerds". It's because we self-denigrate and self-deprecate like no other profession on earth.

1. http://en.wikipedia.org/wiki/Sergey_Aleynikov

EDIT: It is worth reading this article if you'd like some more details on this problem, from a fellow HN member who has dedicated a lot of time to thinking about it [2].

2. http://michaelochurch.wordpress.com/2014/07/13/how-the-other...


> That's why work conditions, salary, stability and prestige are nowhere near comparable industries such as finance, heavy engineering, medicine, law, etc.

As a combination or individually? Medicine is about the only one in the list that's strong in all of the listed characteristics. "Heavy engineering", to my knowledge, doesn't pay much more, finance doesn't seem that much more stable, and law certainly has good work conditions for those at the very top, but not for the newbies.


How did you get "other programmers" as the villain in Aleynikov's disgusting tale? Just wondering.


Actually in his case, his worst enemy was himself. He did not accurately value himself within the organization either politically or economically [1]. He thus paid the price.

The programmer types were different from the trader types. The trader types were far more alive to the bigger picture, to their context. They knew their worth in the marketplace down to the last penny. They understood the connection between what they did and how much money was made , and they were good at exaggerating the importance of the link. Serge wasn’t like that. He was a little-picture person, a narrow problem solver. “I think he didn’t know his own value,” says the recruiter. [2]

1. https://news.ycombinator.com/item?id=7577872

2. http://cryptome.org/2014/04/goldman-sachs-code-thief.htm


You should take with a grain of salt any assertions you see that Aleynikov was bringing in billions in revenue. The sub-industry he worked in doesn't see those kinds of numbers from any individual's effort.


Please elucidate exactly to which sub-industry Goldman-Sachs belongs. I'm all ears.

Last time I checked, banks are the most powerful industry, and GS is the most powerful bank[1]. Aleynikov was single handedly building, deploying, maintaining and updating Goldman-Sach's HFT framework.

If you believe that key people like Aleynikov don't make the HFT industry profitable, a certain Medallion Fund and a Dr. James Simons would beg to differ.

[1] https://www.youtube.com/watch?v=FzrBurlJUNk

I don't know of any big software companies getting government bailouts after gambling with money they scammed from average citizen . Once you can get away with that, and not have a single executive do jail time, come back to me. Every industry is subservient to the whims of banks. They'll tell you otherwise, but actions speak louder than words.


Aleynikov worked for a specific trading desk at Goldman-Sachs, which carries out high frequency strategies in some equity markets. High frequency equity trading is the sub industry I'm referring to. Since you're apparently confused about this: Goldman is a large bank. It has many lines of business, same as Microsoft produces many software products. Some of Goldman's business endeavors fall within the US high frequency equities space, but you'd be making an enormous error of scope if you confused one of their high frequency equities desks with their entire business.

I call shenanigans on the claim that Aleynikov was single handedly running the trading infrastructure for even a single one of their desks. That's complete nonsense.

As for Jim Simons: It's generally believed that the main cause of Renaissance's success is that they have a couple hundred of the world's smartest people all working together. It's not a 'key man' shop at all. (Also: You seem to be suggesting that Simons himself did all the work. The fact is that he spends most of his time smoking cigarettes and handing out wads of cash.)


Let's remember that in those 42 years the number of BASIC, FORTRAN, or COBOL jobs has diminished through to almost nothing. The last person I met who described themselves as a COBOL programmer was about 10 years ago, and even they said they did it for the money as there were so few of them left.

They haven't really diminished to almost nothing, they have just been outsourced to Indian shops. You'll have a really hard time finding Westerners who still write those languages, but Indian firms are happy to step in and fill that void, maintaining the hundreds of millions of lines of COBOL code still in production at Fortune 500 companies, on a contract basis.


> Let's remember that in those 42 years the number of BASIC, FORTRAN, or COBOL jobs has diminished through to almost nothing.

That's true, but it's a hockey stick / logarithmic thing. When I started coding, the BASIC and COBOL technologies were waning-- still bringing in paychecks, but it was clear that their peak was a few years in the past.

There are lots of people right here on these forums using technologies today that are in the exact same situation. Citing these examples by name usually erupts into a flame war, but for sake of illustration, a good example might be PHP.


PHP's not there, no-one's been able to replace its ease of use and it will remain until someone does. Also it's had some good face lifts recently. There's plenty of new code being written today in PHP.

Perl, on the other hand, is.


one year's experience 30 times, not 30 years experience.

This exactly and it happens at all ages. I interviewed someone not long ago who had 5 years experience. It turned out they learned their job in 3-6 mos. and just repeated that same job for 5 years. I was amazed how little else they knew.


Right now there is a firehouse of job offers from recruiters on linkedin, and all a good developer has to do to find work is take a drink from that firehose.

While I enjoy the current situation, it's unlikely to last. Sometimes we forget that there's plenty of people who have simply built up a clientele and a repuation through plain old networking. These jobs tend to be more lucrative and probably don't require you to learn the flavor-of-the-month js framework. It's no surprise that we don't see many experienced professionals competing for what are essentially entry-level jobs (despite the use of the word senior in the job title and despite the high salaries inexperienced developers command). Obviously not all experienced professionals have built up that network. Those are the people you see applying for jobs.

Source: I spent a couple years getting to know a network of CTO's and architects who have been doing ecommerce since it's inception. They are in demand, they don't apply for jobs, and they are paid handsomely, and yes some of them are grandfathers or grandmothers.


If you're an older tech worker, for the most part, LinkedIn is just a firehose of crap. At worst, it's:

Hi, I see you're doing [JOB] at [COMPANY]. How would you like to do [JOB minus 4] at [COMPANY minus 2]? We have Beer Thursdays and your fellow employees will all be young enough to be your sons (and yes, they're all male).

And at best it's:

Hi, I see you're doing [JOB] at [COMPANY]. How would you like to do the same job, but at a different, but very similar company, with the same lack of a future career path?

What you never see is:

Hi, I see you're doing [JOB] at [COMPANY]. You probably feel like you're in a rut there, and are ready to advance to [JOB + 1] at [COMPANY + 1].


It's a firehose, not a high class wine tasting room, you are correct. But one is at least unlikely to go thirsty, which is far better than it has been from time to time over the last couple of decades.


THIS. oh a THOUSAND times this.


"All".

All you have to do is sift through that firehose for jobs that match your expertise, at companies you wouldn't hate to work for, at rates and hours you'll accept, and that don't seem like they're just jerking you around. Then after you've expended that effort you can begin the actual process, which may fall through for any one of a billion reasons, not the least of which are that most recruiters are jackasses with little understanding of the actual field of work.

For anyone with a slightly complex set of skills just getting to square 1 of having a recruiter or HR person be able to understand your skillset is damned near impossible. And there's no way they'll actually be able to have a proper appreciation of your competency except in the crudest, most oblique manner possible (e.g. years of experience, "big" projects completed, expected wages, etc.) It's hard enough to have a conversation between talented, highly knowledgeable software devs which actually parses the differentiation between various job roles (like, say, systems engineering and web dev), which can span enormous ranges of differences. Trying to get the human resume regex parsers we know as recruiters and HR personnel to understand such things, good fucking luck. And yet today those people often stand between you and a job.

I could only imagine the state of the industry without word of mouth referrals.


> Right now there is a [firehose] of job offers from recruiters on linkedin

Interview offers, and they only come to the people who have the right combination of keywords and location. Miss on one or both of those counts, and you are invisible. The second seems to be much more important than the first, too.


I'd agree with that. I'd add that I live in Salt Lake City, Utah and still get a fair amount of offers. I realize it might be quite different in other countries.


I know Texas likes to claim is is "a whole other country", but sometimes living in Dallas it feels like that. It seems like nobody comes looking in Dallas from outside the area.


Having tried to drink from the firehose in the past, I can say that I have never once had a recruiter lead actually result in a job offer. It's one gigantic catch-22. The companies themselves aren't great at hiring, or they wouldn't need to use recruiters doing semi-random searches on linkedin. If you yourself were any good at interviewing, you wouldn't need to rely on the recruiters either. You're an unqualified lead that can't get a job on his own, which to a hiring manager screams "high risk hire." So you start the interview process in the negative column and have to really shine to get a job offer. But, if you were any good an shining in an interview, you wouldn't need the recruiter in the first place. The whole thing becomes a high stress waste of time.


> But, if you were any good an shining in an interview, you wouldn't need the recruiter in the first place.

If you need the recruiter in order to get the interview in the first place, it doesn't matter how well you shine in the interview.


Yet more catch-22. Just out of curiosity, have you had success using recruiters to find jobs?


I have gotten a few potentially good leads from third-party, but the vast majority don't seem to even read my resume. In-house recruiters generally go better, though Google's seem to misread my experience often and approach me for roles I am not really qualified for.


Why the downvote? It's an honest question. If my assumptions are wrong, I'd like to know.


I think you're very wrong here. In-house recruiters also use Linkedin, I don't know why that would put anybody in the "high risk hire" category. I got my recent job through a recruiter contact on Linkedin and I'm pretty happy about it.


Generally true. But I spend some time now and then in a small/mid-sized Midwestern city where going through a recruiter is a requirement. A very high percentage of the businesses are in the same economic sector, and they use the recruiters as the first line of HR, in order to keep their hands as legally "clean" as possible.


"I have never once had a recruiter lead actually result in a job offer."

I once had a recruiter (he had my resume) contact me for a Novell admin position. And there was nothing related to Novell on my resume. Then I knew not to waste time with 'recruiters'.


I've landed two excellent positions through outside (not in-house) recruiters. Though the first was 20 years ago; the last, 14. They were respectful, didn't waste my time or the company's, knowledgeable, and selected people based upon experience or qualified reference (the first position, they contacted the head of a user group who knew me well and referred me; then experience counted).

The experience I've had with outside recruiters in the past 10 years is atrocious, though. All they're looking for is warm bodies to toss at a company, and hope one of them sticks. No or limited experience--they still want to present you...after modifying the resume you've sent them in Word.

Today's outside recruiters are inexperienced in and ignorant of the field ("Your last job was a fitness trainer??"), and borderline unethical.

I'm still surprised so many of them are in business.


75% or perhaps 85% of programming is CRUD applications. It's very easy to fall into the trap of thinking you're advancing technically when in fact you're just becoming very knowledgeable about a cul-de-sac.

Most programmers don't take this path by choice. They just don't see it as its happening. You have to pro-actively manage your developer career if you want it to grow over the long haul.


Thanks for sharing.

I find it quite amusing, but in my observation, this 25%/75% split can be found in each age group you'd look at...


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


I think that after 30 years you're left with only the very best and the very worst still programming. Everybody in between have probably drifted of towards other responsibilities.

You also could uncharitably argue that 75% of developers of any age are useless. Furthermore programming has a much lower barrier to entry than being a doctor or lawyer and it's much easier for a terrible programmer to hide their terribleness for 30 years than it is for a doctor or lawyer.


I've seen this stated this as another occurrence of the 80/20 rule, which close enough to 75/25.

It doesn't really have anything to do with after a certain age, either. Some percentage %x of your 5 year experience programmers haven't really moved much past their first year at all.

To be fair, I think of it really as a series of plateaus, not a hard and fast rule. People get stuck at a level of professional development for all sorts of reasons, internal and external.

The thing is, it gets more noticeable the longer time period you are talking about. Comparing two people with 3 years experience where one of them hasn't really progressed past the first year or so, and the other has 3 solid years is a lot different than comparing two people with 30 years experience where one of them hasn't really passed the 10 year mark of development and the other has a solid 30.

And "useless" is the wrong way of looking at it. There is a lot of use for a developer with 5-10 years of experience, so long as you don't expect them to perform like a developer with 20-30 years experience. This is true even if they have 30 years on paper, which can be a bit of sticky point w.r.t compensation, but that's a different issue.

This absolutely happens with lawyers and doctors, by the way. A real difference is that a doctor has been forced into a good 10 years of professional development before they take the training wheels off, so the base level of competence is much higher. Some of them don't progress significantly beyond that for the rest of their careers, but that doesn't mean they aren't productive for that whole time.

As an industry, I do believe that software development is pretty weak on developing talent internally, particularly beyond the entry level.


Lots of employers want to pigeonhole you in the "same year of experience, 30 times" group. You can sometimes tell this during the interview; one warning sign is that they want someone with their exact technology stack experience they are using right now.

But I've always thought a team of generalists beats a team of specialists, which is swimming against the current tide.


I don't think this is as simple as specialization vs. generalization.

Considering nearly any situation your team encounters, junior people, experienced people, and very senior people are likely to take different lessons for it, because they have different perspectives on what happened and what could have/should have happened.

To me, a "same year of experience, 30 times" person is someone who runs into similar situations over and over, but fails to grow in how they understand and react to them. This is true of architectural issues, interpersonal issues, schedule management issues, ... everything really.

Technology stack isn't so important here. If anything I expect the experienced people to pick up a new stack faster, if they've done this before, all else being equal.

I'd expect insight and ideas from a 20+ year developer I'd never dream of asking a junior (< 5 years), and if you don't get them - you're probably looking at someone who has repeated many of those 20 years.


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

* 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.


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


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.


> Personally, I refuse to treat my job as "just a job." I want it to mean something.

Well, some people don't build model airplanes after work. They raise families, work at food banks, take care of their elderly parents, sponsor people in AA, and so on. Ideally, every waking minute of your life will make the world a better place, but it's a luxury to expect a career that really means something.

Good luck on your career decision. It sounds like you've already made up your mind, but in general it's a good idea to talk to your boss about the soulcrushingness of work well before you want to quit. It's possible that she would be willing to give you more variety, responsibility, or freedom to keep you around.


Personally, I refuse to treat my job as "just a job." I want it to mean something.

That's fine for you, and quite a laudable position to take.

But the reality is, in a great many environments, across the board -- in blue chips as well as in startups (often quite insidiously so) -- as soon as you start personally investing in your work, you start taking on considerable risks. It means, almost by definition, you're going to start butting heads with people -- or at least take on a heavy risk of appearing to others like you're butting heads with them, even though you're not. Because they'll have to start justifying their own decisions, and exposing their own lack of depth and experience. And that's really, really threatening to a lot of people.

The safest route, by far? Keep your head down, and don't become "personally invested" in your work. Otherwise you risk becoming (per the Japanese proverb) "the stake that sticks up."


Be careful doing this. One of the things I've done to shoot myself in the foot, career-wise, is to repeatedly take more interesting jobs at lower salaries. As a result, I don't have an increasing salary history and expectations. I was blown away when I discovered that the good salary I thought I had was 20% lower than the average in my location for my experience.


I was once like you, and I still am a wee bit. There's a era on my CV where I jumped ship every ~18 months until I landed in my current role. I did this because I wanted to experience working in different market sectors and then when I got bored I moved on.

The present role, where I've been for the past 11 years, is very enjoyable and gets me out of bed in the morning...but paradoxically I do treat it somewhat as "just a job". I have to do that because otherwise I'd just burn out, and that happened once before and it nearly killed my development career.

But anyway, I wish you all the best and hope the future's bright for you.


"It might not be as exciting as the seat of your pants local startup but it pays the mortgage and provides reasonable financial security."

I'm skeptical of the "financial security" claim. Obviously this is not true in the U.S., where there is zero hesitancy to lay people off and very rare to have legal recourse as an employee when laid off.

But even working in the U.K. or other nations with stronger worker protections, you are still vulnerable to your employer hitting hard times. Companies can very quickly go from profitable to out of business or close to it, especially where technology is involved. Not having skills applicable outside of your current job does not seem like a secure strategy.


> I'm skeptical of the "financial security" claim.

I guess it depends on how you define 'reasonable financial security'. As someone in the US, I define financial security as having a couple month's pay in the bank, and a retirement plan of some sort, while making enough money every month to pay the mortgage and the bills and have some left over to spend on entertainment, then it is doable, even in the US.

A mediocre developer who has a bit of experience, making $75k/yr anywhere but San Francisco or New York, could afford to be in the situation I describe.

What does 'reasonable financial security' look like elsewhere?


>"Companies can very quickly go from profitable to out of business or close to it"

Sure, but types of companies I'm talking about where these folks work are big blue chip FTSE 100 companies. It's a very rare event where a company the size of Lloyds or Barclays or BAE snuffs itself out of existence.

Ok sometimes you get a perfect storm such as the 2008 banking crisis but even then the UK government and others stepped in to prop up the likes of RBS, Bank of Scotland and Northern Rock. No-one turned up to discover the doors locked in the IT department and life very quickly went back to business as usual.


Lawyers and doctors are not too different.The premise is true for most of white collar jobs, if not all.


Yep. Most of the folks who are only doing it for the money fall into that 75% group.

If you don't have passion for something you'll never be truly good at it.


That's a somewhat naive assumption and sentiment. I've known plenty of devs around my age (40-50 yrs) who are really very bloody good at what they do and yes...shock horror...they do it for the money. Otherwise what or who will finish the paying the mortgage, help with paying for your children's further education, top up your pension, etc, etc.

Sure they may not have the "passion" but it also doesn't mean they're grinding away through their days. As I said in another comment, your priorities change and your perception/measure of job satisfaction changes as you get older. Mine certainly has despite being a techy and developer to my core.


Down here in Los Angeles the talent pool is very shallow, now we are starting to see the first companies offering equity down here that is meaningful since 1998, seriously. If I hadn't had to go the last 14 years without equity I wouldn't still be coding pushing 43, I'd be an angel investor, basically making a living helping to fund companies. With no equity life is a kind of living hell, no ability to have the normal human experiences of say starting a family, instead its a twilight world of paycheck haircuts and forced unpaid overtime, that leaves you feeling permanently like a zombie as everywhere you turn, its the same demand, everyone here wants 100-140 hours a week, offers you 40 hours pay then tries to haircut you back to 20 hours pay, management through extortion is common down here, either work 100 hours for free or you don't see your next check.


Don't overplay the importance of equity. It's like a lottery ticket - you can't win if you don't have it, but the chances of winning big are still remote.


Sounds like LA is a pretty crappy market for employees. Move someplace with a reasonable cost of living and some big corporations, stick with corporate-friendly technologies, and it's not too hard to pull a six-figure salary in an easy 40 hrs/wk.


Not after a certain age. They're equally useless young too. These are the people who fail at FizzBuzz.


I think this failing at FizzBuzz thing is becoming a meme.


Unfortunately, it is real. I've interviewed "senior software engineers" with "12 years of C++ experience" who could not tell me the difference between an int and a char*.


> Would you say the same thing for lawyers or doctors with 30 years experience?

I don't have a reference for this, but I remember reading that other than surgeons, doctors' skills decline the further out they get from medical school... of course that's doesn't take into account a lot of the other important parts of being a doctor like how you interact with patients, etc.


Doctors and nurses are required to take continuing education to stay licensed.


why are you startled? Have you never heard of the 20/80 rule? It appears in almost every dataset. The top 20% of any set do 80% of the work.

Example: The top 20% of a population owns 80% of the wealth.

And yes, this applies to other occupations as well.


It's called the Pareto Principle(http://en.wikipedia.org/wiki/Pareto_principle) and it does not need to be a symmetric 80/20 split. 1% of the people own 50% of the wealth is one other application of the same math.


Wikipedia doesn't do narrative justice to the interesting history behind Pareto. We tried to correct that in this blog post (http://www.emphatic.co/blog/know-stuff-think-shouldnt/).


Yes and even among the 80% who are useless, they are useful 20% of the time. I work with a few people like that... They either need a challenge, an end date or other creative ways of being motivated.


actually he's saying they are equally as useful as they were 29 years ago.


Not useless, but perhaps useless outside of their small niche. The problem is in technology small niches can disappear in an instant.


I for one would welcome the opportunity to find and learn from people like you. If you guys don't hang out at the latest hot technology meetup and you don't change jobs that much (or that publicly) where does one go to seek you out and make friends?


An observation and a questions...

I've observed that Group 2 (your 75%) frequently winds up in "Director of IT" positions where they can productively re-use that year over and over again keeping the ship running. Some of it is a lack of imagination, some just a simple desire for stability. Either way, they get very stuck. Their firms can't afford for them to do anything else, and they have to take a pay cut if anything bad happens.

Now my question.... By keeping a low profile, do you feel you are artificially lower your wages or opportunities? You're in the same boat as the top 3 or 4 developers I know - very talented, well paid, jobs find them, and employable in any market. But sometimes I wonder if they could get paid more if they were more visible, simply from supply/demand. (They have a scarce skill, increasing the demand for it should increase the wages) Or is it that anyone who would properly employ them is by definition outside mainstream hiring and would know them already?


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.


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.


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.


:) I almost thought you were saying there were no 10x developers. I agree with you 100%


Couldn't you say this about every industry though? I feel like I could have read the exact same post, with the word engineer literally substituted for any other job name, and it'd still read the same. Is that a fair assessment, or is my experience just limited?


Hm, I don't think it's strictly every job, but it's a common syndrome. Say for example a surgeon - in my mental model he moves from being an assistant during ops to leading op teams or research. I might have a completely wrong model how surgeon careers progress, though :P

But in general it makes sense for experienced people to move into managerial roles where they can leverage their knowledge on a meta level, rather than purely object level work.


A surgeon isn't even ready to be the lead hand-on surgeon in am operation until ay east age 30, after years of apprenticeship.


Been done read up about the Chief Programmer Team model which was doing software dev using the same paradigm as a surgical team.


Your comment makes an interest contrast with edw519s which is the most upvoted one in this thread.


I think we're both right. He seems to have gone the independent contractor route - which is a perfectly legitimate career path for a rock star developer who wants freedom. It's also incredibly lucrative - independent contractors can easily make double what someone working at a company can while charging half of what contractors from professional services firms do.

But again, there's only so much market demand for that; and I would have trouble believing that more than 10% of his peer group at age 30 went that way.

This is more typical to what I've seen: someone started out as a developer writing back-end code, but noticed that it was more difficult to deploy the code consistently than it was to write. So they started helping out the tech ops team with that, until it became most of their job. Then the tech ops manager quits, and the company needs a replacement. The back-end developer was doing the job anyway; and it's a pay raise, so why not. Now they notice that the real reason it's so hard to deploy back-end code is because the servers are never patched, so they work on a process solution to make sure everything is consistent. The work is still technical in nature, but it's becoming much more process-oriented.

Maintaining a technical skillset is hard. Not many people have the energy to keep it up throughout their 30s when they're having children, taking care of sick parents, etc. So you'll see a lot of people gradually move to the business side - which isn't hard to do when you have an engineering mindset that helps you solve hard problems. It's also often a pay raise anyway.


Well, that is one of the two branches you can take, and probably the most financially sound one (plus it can be rewarding if you like that kind of thing).

The other is to become a specialist (as in, an expert in something). It's not as common, and most companies don't offer a dual track (and when they do, it can be a trap)

The one thing you don't want to take is to get stuck (the "one year's experience 30 times" edw talks about), and I see lots of people getting stuck. I'm kind of stuck myself but I think I'll be able to transition into business soon.


> I saw the game for what it was early and got out of engineering before I hit 30.

What did you jump into afterward?


I went and got an MBA and jumped into consulting. Because I worked for a number of startups before that, my niche started out being helping big companies foster innovation internally. At this point, I'm more on the marketing/product side of the equation, which is extremely interesting in my mind. You really need a tech background to do product for anything but retail goods these days anyway; and in the media products space I work in, it's almost mandatory.

Net result is I took on a bunch of debt to go back to school but my salary is much higher now and I have a lot more control over my destiny. I don't regret it for a second.


> I'm more on the marketing/product side of the equation, which is extremely interesting in my mind. You really need a tech background to do product for

In this context, what would you define as 'product'? I'm curious as I hear it mentioned and it sounds fun, but conjours up mental images of inventing the next Gilette razor.


It can be :) What you're talking about is the typical CPG (consumer packaged goods) model: a product manager would be responsible for selling that product, identifying a market, etc. The work isn't really all that different, but CPGs don't usually require much deep knowledge.

IMO, product in tech companies is a much more exciting role because you get your hands dirty with creating the product. Let's say I'm the product manager for Facebook's News Feed. I would work with designers, developers and marketing folks to determine the features of the product. For example, I could say "Hmm, let's show more ads to people between the ages of 18 and 29 than we show to people between 13 and 18". We would test the hypothesis either through focus groups or A/B testing and determine if users are like/hate/neutral on it, and if they're like/neutral and it provides more money, it's now a feature in the mainline product. The role is slightly different at different companies (product managers at Google are expected to write a little code and lead engineering teams, for example) but the core tenet of the job is answering the question of "What should the product be?"

Product management is the central role at any startup for the first few years. A good product manager is worth their weight in gold. A great product manager can make you billions. For me, it's the perfect mix of creative, technical and business disciplines. You have to have the vision to see what the product can be, the technical chops to know how to get it done, and the business sense to know what levers you should be pulling at any given time.


I agree with this 100%. Good engineers are problem solvers, and as you grow older, you gain the wisdom that relative to the value that you bring to a business, the compensation will never match. It's unfortunate when you see younger software engineers who are incredibly smart technically and dedicated, but don't apply those same problem solving skills to their career. They become exploitable, and wind up making other people rich off their hard work.


Exactly. Once you get older, you start to realize that there are business frameworks that work just like software frameworks!

An MBA and a CS degree are a powerful combination. In fact, if there were more engineers with MBAs, I doubt the MBA would have a reputation for being somewhat clueless about practical matters.


I've got an MBA and a HND in CS (slightly lower than a degree) and it makes for an interesting combination.

Some days I'll sit down and work with other devs on code even write them some examples to illustrate what I want, and then the next I might be talking to senior business people from our customers.

I didn't do my MBA until I was in my 30s and had already been a CTO, biggest thing I got from it was the ability to think differently - literally turn an argument around to see it from the other side, and a lot of friends who done various masters degrees say similar things


Describing jobs as for a "Javascript Ninja" and offering perks like free Mountain Dew illustrate a distinct targeting of younger people, and are obvious ploys to trade trinkets to engineers in exchange for their work which generates actual value which is skimmed out of their pockets.


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.


I'm a programmer in my 30's and my wife is a writer (short stories mainly). We've discussed how similar writing and programming are, and it's a lot more than I would have initially though.

Think of when you are working on a large project and you all of a sudden need to refactor some module which then has a huge impact all over the application. This is similar to a novel where late into the book the author figures out they want to change some part of a main character (like their origin, name, just some kind of detail), which will require fixing it all over the book. Writers refactor similarly to programmers.

Writers have outlines. Programmers have design documents.

There are more parallels between the two, but I forget many of them right now.


Speaking of such parallels... There's that classic essay by Thomas Scoville - "The Elements Of Style: UNIX As Literature" (http://theody.net/elements.html). I highly recommend reading it to anyone, even though it's not directly tied to "programmers" in the contemporary sense of this term.


I'm a software engineer. My degree was half pure engineering subjects (math, physics, signal theory, the works) and half computer science. While not all programming is engineering, whenever you are modeling complex systems, it is engineering as pure as it comes (in the sense of applied physics and applied math).

It is also (always?) storytelling, I agree.


A quite literal analogy is Scrum's "user stories". :)


Engineering is about applying heuristics and rules to solve problems. You build a bridge in one way one time, then you build a similar bridge elsewhere in a very similar manner. The same thing happens in software, but only in the boring areas. Software is far more varied, and far more interesting. But most of the interesting parts are under the hood or otherwise invisible (such as the mechanics of actually making the software, which generally not a standardized process).

Imagine if software was physically manifested and somehow translated into familiar aspects of life. Going to buy a car you wouldn't see a lineup of several incrementally different models from different companies, instead you'd see: a bicycle; a tank; a bamboo framed solar powered moped held together by duct tape; a rocketship; a jet pack; a houseboat on top of an enormous tracked crawler; and a pair of rollerskates (both for the left foot). Also, half of them are free, a quarter of them can be bought for cash, and the remaining quarter cost tens of thousands of dollars per unit and can only be purchased through very elaborate contract negotiations (and there's no rhyme nor reason which is which, because the rocketship is actually free, and the rollerskates is one of the crazy expensive ones).

That's software, and that's just a tiny pocket of it. The entire software industry is basically fractally weird in the same fashion, but on a much larger scale. It's commonplace for some metrics to differ between direct competitors by not just percentage points but by orders of magnitude. It's also commonplace for competing products to offer entirely different paradigms of use. Imagine considering buying one of two different hammers, one of which is an ordinary hammer, while the other somehow submerges and infuses your surroundings in a bubble of liquid glue 1 light year in radius, then rapidly cures just the portion of glue you want to cause two things to stick together, then instantly vacuums up the uncured glue remaining in the bubble. That's the scale and weirdness of differences between SQL and NoSQL, or between systems built on node.js and java, for example. But we accept that as if it's normal, and the end user never really sees it. HN is a perfect example. As a user you can't really tell what HN was written in, and you can't discern a difference between its underlying structure and, say, how facebook works (except at a functional and UX level). But underneath HN is written in Arc by a tiny team and facebook is written by an army of devs on PHP and makes use of custom PHP compilers.


I couldn't agree more with this notion, with the caveat that the writing happens in second and third and fourth languages.

So learning programming is like learning language, and should be taught similarly -- lots of feedback (REPL, throwaway projects/conversations) to develop fluency, and once you can carry on conversations, start specializing into specific, valuable subjects you may want to talk about and do business in.

But programming is definitely writing.

All of the most fundamental hard-science engineering advances end up, not just being encapsulated into libraries, but woven into the languages themselves (garbage collection, lexical closures, laziness, STM, generics, ownership and borrowing...), and programmers express their (executable) ideas more clearly using language appropriate to the topic.

I read about, for instance, PG Wodehouse pinning every single page of his book up on a vast wall in a grid, so he could take it all in and then take a step forward and consider what was being accomplished over the course of these two or three pages, and see at a high level what was working or not.

Or Raymond Chandler exploiting the existence of pulps to throw away heavyweight notions of story in favor of a medium where you can just choose to have a man burst through a door with a gun in his hand, so he could throw readers right into the meat of a story. And then burnishing his little hacks to gemstone luminousness by writing them to, according to him, the same level of quality as the "slick magazine stories" of his day.

And Chandler's insistence on the importance of actually playing with, and loving, the words themselves, at the sentence level ...

I think all of the things that make programming unique have to do with its connections to, 1) our basic human language capabilities, and 2) writing for two audiences at once.


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


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.


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.


Why would you be doing that? That sounds awful. I hope you're being compensated well.

Consider spending some of your day to automate these tasks. It sounds easily automatable.

I wrote a script that checks that Python scripts conform to standards and it worked well and saved a lot of time. Perhaps something like that would save you a lot of time and allow you to spend your working day doing something more fullfilling.

I wish the best of luck to you sir!


SPMP - Software Project Management Plan?

SQAP - Software Quality Assurance Plan?

SCMP - Software Configuration Management Plan?

SRS - Software Requirements Specification?

I've seen "engineering" defined as "statics, dynamics, and thermodynamics", but what you've listed sounds much more like engineering to me.


Yup. IEEE 1558-2004.

I might be wrong, but I believe "Software Engineering" is a more common concept in Europe than US, since many "Computer Science" degrees are actually part of Engineering Universities curricula.

That is to say, many universities are more likely to offer a "Software Engineering" degree rather than a "Computer Science" one. But it might be only my experience.


Graham wrote his comparison between programmers and painters, but I think writer is far more appropriate, in terms of tools and process. If you have a couple of hours to kill, "Hemingway on Writing" is an awesome short read. Big chunks of it adapt really well to writing code, if you're look for it.


This is fantastic! Your daily efforts become a work of art in the end and one is constantly trying to become a better artist. Many artists do what they do because they care about the end result more than money. Once they get to a place where money is no longer an issue (they can pay for family, food, housing and some leisure) a programmer will continue to try new tools and mediums and leverage those experiences in new project/endeavors.

I myself have done web, mobile apps, mobile games, console and PC games, systems programming, database programming and even incorporated my own business. I've done these with open source stacks and Microsoft stacks.

It's all fun in the end, if you have something challenging for me to work on, a new tool and or a new medium I'm all ears, please contact me....I'm 39.


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.


> until I got a clue and scrubbed my resume of all evidence of exactly how old I was (removed education dates;

I've done that.

> I'd already been trimming older jobs due to length and lack of relevance)

And will probably try that as well. I agree that removing any indicators of age helped a lot with getting interviews. This would also help with clueless agents contacting me about PHP or Perl jobs when it's been a very long time since I did either of those things.


As I mentioned elsewhere in this subthread, my heading for this section is "Recent Relevant Experience". So I can leave out things like PHP or Perl if I've decided I never want to use them again. Or to indicate I'm a programmer who likes/is willing to do some system administration, but not indicate I'd take a pure sysadmin job.

Or not cluttering it with no longer particularly relevant technologies. E.g. programming Windows at the Petzold level (although some discussions on HN have given the impression that right now that might be the way to go :-( ).


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


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.


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.


Interesting idea. I had never considered "aging off" experience. It might be doubly useful in my case, because my first and oldest job was almost pure EE.


Indeed. Your resume is just a tool to get your foot in the door, to get that first conversation with a hiring manager or an interview. Extraneous things, like irrelevant experience, get in the way of that.

Note this will depend on such things as having enough experience to show you're a generically good employee. If you were a new graduate I'd look favorably on e.g. in high school starting out at entry level in a fast food restaurant and working your way up to, say, shift manager (if you could make it that far, very favorably).


MIT's operating systems class used to (in the early 2000s) be based on Lion's book on UNIX Version 6 for the PDP-11:

http://pdos.csail.mit.edu/6.828/2014/xv6.html


And I can attest the Lions' book is great, I read it as samizdat in the very early '80s, found it more useful than the K&R of that time (or at least K&R's chapter on pointers and arrays was awful, and Lions went way beyond teaching you C). Of course it helped that the system I was supporting for pay was a PDP-11/44, and the student run computer center I founded used a surplus 11/45, all running UNIX(TM).


Its the reason I still wear my hair in a pony tail - I have good genes and am not losing my hair.


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


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.


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


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.


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


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

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

"nope."


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


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.


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]


Salary seems on the money, but equity is not - at least for a senior engineer, I have been offered around $60k * 4 (standard 4 year vesting - value at offer) typically in my short time around.


You're being a little vague. 5% is which markets? A programmer in SF might earn as much as a CXX from North Dakota but the CXX in his market is making a lot more than him. Still, I think at the CXX level the total compensation is a lot more. >$300k? $500k?


Top 5% of salaries nationally (in the US). Or, about $180,000. Yes, nowhere near the compensation that a C-level will earn at a major multi-national.


Once again, that's 180k in a market where that's close to the average developer salary and the cost of living is quite high?


I did my mechanical engineering and having a pain in finding a job. I'm planning to get into programming. What do I need to do to become a decent developer who is in demand and can earn decent money?


I graduated with a BS in nuclear engineering (which at NCSU is very close to a mechanical engineering degree). I now work the computational engineering angle, working both the CS and engineering model side of things. I can show what I did, but I don't have a singular piece of advice that can act as a silver bullet.

- I was formally educated in FORTRAN up 'til the 95 spec. Many engineering codes still exist in it, so I've since rounded out OO Fortran. It helps me read legacy code, talk to the older engineers, and maintain it if need be.

- I built a computer with a nVidia GPU chip: It helped me appreciate the hardware side of things and enabled me to write and run CUDA (CPU/GPU) programs, which offers a window into high performance computing (HPC).

- I learned as much about the OSI stack as possible (I had the fortunate opportunity to take a week-long CCNA bootcamp training class) so I could have a rough mental model how networking works, which helps in distributed computing or HPC scenarios.

- I already knew C, so I spent time spinning up on C++ and its ecosystem, as it can be popular in engineering contexts.

If you are wanting to go the pure developer route then there are plenty of others who can provide better advice. I have come to enjoy the inter-discipline of CS and engineering.


The jobs you got, did they require you to program or did you learn the languages on your own?


They definitely required programming, but were understanding of any spin-up time it took to get on board. I did wind up spending large amounts of time outside reading and tinkering along with blog posts, wikipedia, and even good old-fashioned books.

I took some of my class notes on equations and implemented them in a variety of ways as an exercise to get used to the language while keeping the engineering knowledge relevant. For instance, when I was blazing past a variance calculation, I was surprised to learn that catastrophic cancellation could occur in a naive implementation. Not because I "got the answer wrong" per se, but because a computer has limits (in this case: precision), and there's no way (in my mode of learning) for that kind of information to stick unless I have my hands dirty in the code.

To go back to the languages though, I stuck to major ones and played with Python, C/C++, and Fortran. Python and Fortran I used online references to play with and learn, while with C++ I bit the bullet and read C++ Primer which is really hefty but I found to be very thorough (and a great reference).


It's easiest if you start hanging out with people who can program (and best of all, earn good money programming).

There's lots you can learn on your own. Just do some web searches. Pick a language, and start learning. Python is great for a beginners. (I like Haskell, but I'm weird.)

There are a bunch of auxiliary skills that help. Learn how to use irc (freenode is great), get familiar with github.

Drop me a line, if you need more help. My email address is in my profile.


CEO's and managers get a lot of shit on HN, but there is a reason they make more money (in general, obviously there are exceptions, especially at tech companies). The main reason is that what they do is more valuable.

At most companies the coding required is easy and doesn't require much thought, low-skill = low-pay. The job of allocating capital and people to the highest ROI areas is much more significant to most companies' success than having the best programmers.


"The main reason is that what they do is more valuable."

Personally I would have said a big part of it is that they control payroll.


Yeah, I probably should't have said more valuable. It's more accurate to say that there a lots of people who can program poorly and for most jobs that's all that's needed. Far fewer people can manage others well or effectively allocate resources.


but that's not the whole story - a CEO is highly paid, but that's more likely that they've "proven" track-record of doing well in another company, and in order to poach them, a high salary is needed. But, _is_ the CEO responsible for their so-called record? or do they just have really talented employees and the credit for doing well is being rubbed off into the CEO?

Think steven jobs - he is credited with apple's success. May be that's true - he could have ruthless quality requirements. But it couldn't have happened without the engineers that _actually_ created the product. Why is it that the CEO gets exponentially more returns than the soldiers that fight in the trenches, doing the _actual_ work?


You should work for a tech company (i.e. those companies that solely focus on tech). Most usually have clear career paths for those who want to become senior individual contributors vs. managers, because that is actually very useful.


I'm skeptical about dual-track organizations (read my other post in this thread, here: https://news.ycombinator.com/item?id=8481680 ). I agree that it's a good idea, but they tend to make it astronomically harder to be a Director-equivalent engineer than a Director. Ultimately, the management ladder is easier to scale and therefore "better", insofar as you can be a Director and still code (if you want).

I look at it this way. I've been programming for 10 years and, in a typical "do what I'm told" job, I'm not going to learn anything new. Sure, managers only get 10-15 hours of coding time, but that's more than you'll get in useful coding time as a managed employee anyway.

As a manager, you can have your underlings explore new technologies and report back, keeping you current on the field, and while you'll only get 10-15 hours of coding time (unless you work 40+) you have a lot more freedom in deciding what you code, and power to get your work noticed. I'd rather have 10 hours per week of quality coding experience than 40 hours in the Java mines maintaining someone's VibratorFactoryVisitorSingleton.

Managers are good at complain-bragging and making their track sound more painful than it actually is. The fact is that a manager who keeps his coding skill current is highly valued. Being a manager means you have organizational credibility, and if you want to use that credibility to code because you think it's the right thing for you, then you can.

If I were to take a cynical view of dual-track organizations, I'd say that the real purpose is to convince the programmers that the management-ladder people are better than they actually are. A Director-equivalent programmer at Google (Principal Engineer) is an objectively strong engineer, and it's competitive as hell to get to that rank. The Director-level managers at Google aren't any better than middle-management at other companies.


The tech world is going flat, which has a lot to do with the experiences of your former employer. In this new (but not really that new) model, the hierarchy is flatter, people managers are fewer and have lots of reports, while experienced/skilled individual contributors (ICs) are expected to provide more of the leadership missing from the fewer managers (who are better at providing that anyways). When each manager has 20 reports, you don't need many of them. Even Microsoft is moving this way, and has always focused on a lot of strong ICs; distinguished engineer is a partner level position (I think).

I would be quite surprised if the real product direction power wasn't held by the principal engineers at Google. I mean, ya, the managers get to manage, and they provide some leadership, but they have those pesky management tasks and politics (all necessary) getting in the way of that. In that situation, there are also probably plenty of managers who have to manage peers (i.e. people who have equal or even more influence in the company), and the concept of "underling who reports back" is a bit of a stretch!


Look at how many distinguished engineers, or other very high level individual contributors who have actual real power there are compared to Directors and VP's who manage large groups of people.

The individual contributor path is exponentially more difficult to climb. I argue that you both have to win the lottery with the right projects and get in early at a company, and have all of the necessary skills.

I believe it is a story that is told to individual contributors by people with real power to keep them motivated.

The only theory that I've heard of where a flat org could be actually beneficial to individual contributors is the parents theory on open allocation. Otherwise it's just management kicking out the ladder once they've climbed it.


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


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.


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


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.


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.


There are two sides of the development coin for companies like banks, though. On one side is your friend who is asked to do the Serious Business. Without a doubt those are the interesting jobs. On the other side is the stupid report development. I've only seen the stupid report development. I've never heard of folks moving from one to the other, though.


I know part of me whished I has switched into TCP/IP from OSI (I was 3rd line support for the uk for X.400) and gone down the multiple CCIE route at BT


> the work is often unchallenging

It's a different challenge. At a bank, you manage a system based on boring, mature technology, that processes billions worth of transactions every day. Or a server park of 20,000 machines. It's not mobile game development, but on the other hand at least it's not mobile game development.


(I've never worked at a bank, but I've talked with people who do.)

It can also be work with too many grotty doesn't-teach-you-anything-technical challenges. For example, a bank that has acquired multiple companies with incompatible, archaic, poorly maintained systems, and struggles to keep them interoperating while stitching them together under some ill-considered technical policies and bizarre regulatory side constraints. Struggling with medium-scale technical challenges that only exist because larger-scale technical best practices aren't followed isn't as productive as it could be. You do learn things but it's akin to learning how to develop code in a dysfunctional language in the absence of specifications and source code control systems and testing: too many of the things you learn tend to be kinda messed up. And by the Anna Karenina principle they may not generalize well to your next job, even if that job also has more than its share of screwed-up challenges.

All businesses tend to have some proportion of work that is too idiosyncratic and ill-conceived to be satisfying or to be a good long-term career choice, and it's dangerous to overgeneralize from anecdotes. But I don't know any way to sharpen up a claim about the proportion of idiosyncratic ill-conceived work so that we could test the claim with proper statistical sampling. Falling back to anecdotal evidence then because it's all I have, there might really be a tendency for some parts of banking have more than their share of this.


I could tell war stories about bizarre regulatory side constraints (my favorite: on location in a country with very strict banking secrecy laws; having to work in the basement, in case someone might see customer data through the window using a telescope), but if a bank today doesn't have its IT department in order, it won't be able to compete with those who do.

Some banks can be so weirdly huge, that one department may be developing a simple website with last decade's technology, while another has computer scientists working on algorithms for a high frequency trading system with microsecond accuracy, which may never at any point have an unscheduled hiccup of a fraction of a second. As far as challenges are concerned, it's hit or miss, just like in any other sector.


Any tips on getting those entry level reporting job at banks who pay 150,000 USD? I'm 23 so I'm willing to leearn.


The programmers aren't entry level, but the work they're doing is entry level (in difficulty and maybe in quality). I've worked for a bank before and the environment (for this level of work) is stultifying. I just fell into the work, though, and I left after a couple of years. I wouldn't know where to seek it out.

HOWEVER, I can give you a little bit of advice on what skills might be a little bit useful. You want to learn to create reports/data portals for something like Oracle Business Intelligence Suite, SAP's Business Objects, or IBM's Cognos.

Bank of America used to use Oracle's solutions, but as I understand it they're moving over to Business Objects. For the rest, I can't say, but there are a lot of companies that want these skills.


I did look into SAP modules and thought about learning them but how do I market myself after learning the fundamentals? Don't they require some sort of computer degree? How do I gain professional experience which the job opening might require? That thought made me abandon learning SAP.


Oh good god I do Business Objects work right now. I wouldn't wish that on anyone. Not even for 150k.


Well shit. I start a new job working on it ... on Monday.

Any suggestions for books on it? They're training me, but the more I can learn on my own, the better.


I'm mostly self-trained. That's probably a part of the problem. The utterly broken way that my team decided to build the reports probably doesn't help either.

Sorry, no suggestions for books.

Do you know if you'll be working with Crystal Reports? Or directly with the Business Objects API? Either way they're both very, very poorly designed and implemented. Good luck I hope you're getting paid well.


How long will it take to become proficient enough in SAP Business Objects which can get you hired? If entirely self taught


Honestly, it wouldn't take you long to get the skills if you could get access and were a decent programmer already. One of the problems with these sorts of systems though is that it's not like they're open source and easily available outside of the enterprise.

Want to set up a testing instance and just play around or build something? They're either not available or horribly crippled. If you can get into a company that is doing it already and you can get access, you will have an easy time learning it (but it's not exactly fun).


I knew a very smart guy who got a job like this. After a couple of years he threw it away and moved to Brazil, after teaching himself Portuguese by hanging out in soccer forums and IRC channels. He teaches English now.


work in wall street or the City supporting traders and their ghastly self written excel POS - and expect to get the "I have a pair of shoes that cost more than your entre wardrobe" gibes


Thankfully, I'm not at a bank. My employer build software and licensing is the primary source of revenue. And I haven't written entry-level reports since, well, never.


They put a limit on the number of sick days per year?


In America, they limit the number of days they'll pay you while out sick. It could be worse. Fast food businesses refuse to pay for even a single day out sick and have been known to fire workers for taking more than one or two unpaid sick days. They actively lobby against laws mandating ANY paid sick days.

America is the only country in the developed world where people tolerate and expect restaurants to pressure workers into preparing food while they're sick and can barely feed their own families. Don't eat fast food if you visit.


Yes, America has pretty horrifying* leave policies. Most professional jobs in the DC area start with 15-18 days of personal leave (vacation and sick are treated the same) and around 10 national holidays. Jobs that pay hourly frequently don't have any leave at all - if you take a day off, you don't get paid anything.

And maternity/paternity leave is almost non-existent.

All of which leads to people coming to work sick, spreading disease, being miserable, burning out, and spending a fortune paying strangers to watch their babies.

* Horrifying by Western European standards.


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.


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.


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.


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


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.


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.


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.


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


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


If you wanted to be ageist, though, can't you deduce someone's approximate age from their resume just as easily, and thus eliminate them even quicker?


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.


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.


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.


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


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


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.


Improve by working on side projects.


Hey Patrick, could you talk more about the options available to you if you are good enough to get into AmaGooBookSoft, as well as ready to take on plenty of risk?


If you constrain a problem enough it eventually becomes impossible. The odds of staying "in the trenches" and getting a management level salary are extremely low outside of a company you own a large portion of or a consultancy. When you have the same skills everyone else has you can't command a salary appreciably greater than theirs.

Why is it this way? Because there are more programmers who can do your job than there are managers who can manage you. You can argue that's unfair, but it's the way it is. The managers have skills that are in demand, and despite what the general HN attitude towards managers/executives is they are important to the success of most businesses.


Boring is subjective.If that's not your cup of tea it's fine but it doesn't invalidate his point about career paths.


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


There are three issues to take into account:

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

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

3. Lack of interesting work or autonomy.

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

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

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

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

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


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.


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


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.


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


Amen brother the average GP in the UK is paid £120k average C.Eng. Is probably paid 50% less than that if they are lucky.

The base salary for a LU tube driver is more than the average it salary in London.


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.


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.


This is overwhelmingly because the resume and interview route to acquiring a new job is so incredibly worthless and inefficient.

I'm actually surprised that I have found so many jobs that way, compared to how easy it was just knowing some people who already work at the company who is hiring. I still had to interview, though--one interview with the hiring manager and her boss that took less than an hour.

The only problem is that very few of my old colleagues have connections to any of the jobs that I might actually want.

So now the standard response I get is "we decided to hire someone that was a better fit for us" or "we decided not to fill the position at this time". If you can't read the subtext, that means "you're too old (and therefore expensive)" or "we were trying to import someone cheaply, and your application screwed that up."


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.


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.


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.


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.


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.


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


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


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.


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


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


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.



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.


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.


"Sorry, I'll be in late, I have a job interview for a floor job at Costco - if I can get it, they're going to pay me 50% more than you do."


This sounds like a place you should leave.


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


> LA


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?


If you're living in a squat with no running water, your job is not improving your lifestyle. People can do the same thing working zero hours per week at a regular job.

More

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: