Moneyquote: "Now I understand why older programmers complain about rampant ageism in Tech. Younger workers are cheaper, and programmer productivity is notoriously difficult to measure, so most companies opt for the cheaper option."
Wow that is so spot on, as a "generic" programmer asking $150K versus a "generic" programmer asking $75K ? Easy choice, we'll get two and double our productivity and halve the sick days! I noted that in the medical profession "General Practitioners" made the least, while specialists made the most. They were all doctors.
Specialist software categories:
Embedded Software - bringing up code without an OS, understanding hardware function and tools.
Graphics Programmer - these days understanding 3D programming with Shaders and other features common in todays GPUs
Kernel programmer - understanding the insides of the kernel and how to write code that works there.
Networking software - understanding all of the intricacies of how packets get from point A to point B, and what interferes with that and what facilitates that.
Security specialist - someone who understands what makes programs and systems break and can program fixes for them or ways to spot attempts at exploiting them.
Storage specialist - someone who understands file systems and disk drives and getting data to and from programs reliably.
There are lots of 3D graphics professionals working on video games, which is a notoriously over-worked, under-paid field. To hire 3D graphics professionals:
1. go to a video game hub, like Montreal
2. offer sane working hours
3. there is no step 3.
Notice the complete lack of any mention of salary.
Could you be conflating 3d graphics artists with 3d graphics programmers? The former make 3d models for games. The latter writes 3d graphics systems to take those models and show them on the screen. The former is relatively low skill (as you say, it's a saturated market) the latter is very high skill (linear algebra).
"Many people reach senior software engineer, and then they get stuck. They’ll still be a “senior” level developer 5 or 10 years later. For many, getting stuck is just fine. They like coding, and they don’t want to manage people, and the money is pretty good."
I have a problem with this part. Basically, being a developer and not making it to a managing position is "getting stuck". I strongly disagree with that. Developers and managers have very different roles, a great developer will not necessarily be a great manager. It's like expecting great athletes to become great coaches, and if they don't they're stuck?
Is becoming a manager really a promotion? I would argue that in such a hot market great developers should be making more money than their own manager.
Regardless of salary numbers, becoming a manager is not a promotion. It is changing career tracks. It just so happens that the lowest rung on that ladder is somewhat reachable from the highest rung of the software ladder.
The problem in many companies is that the positions into which a senior developer may be promoted do not exist. Other positions with greater pay and prestige are on other career tracks. Positions like lead software developer, software architect, technical complexity organizer, software developer supreme (with tomato and sour cream), or historical catastrophe repetition avoider might not be available, or not available to internal hires.
They could exist. Several people here could probably argue a very convincing case for them. But they don't.
And the reason is because certain people still don't see business software resources as anything but costs to be managed down. Just yesterday, a member of my own household wanted to extract an image from a PDF, crop out the whitespace, and post it as a JPEG to a website. This non-technical person could have spent a whole day--or more--figuring this particular problem out. Having a technically knowledgeable person on hand shortened that time considerably. (I could have done it myself in seconds, but I didn't want to assume responsibility for doing that on demand for the rest of my life.)
The sad thing is that I got no credit for the time saved. I instead got grief for not being instantly helpful. I wasted someone else's time, because I didn't anticipate the need, so that SumatraPDF and Paint.NET or GIMP would be installed on their computer already. I wasted someone else's time because I didn't drop what I was doing immediately, so that they wouldn't have to wait for me to finish eating, or, horror of horrors, actually spend a few minutes to try to figure it out on their own.
That's the problem. The whole party complains, "Why didn't you just call on the Eagles again, Gandalf? We could have been done in three days!" And then when Radagast explains about the dearth of giant fish in the magical appropriations budget, no one listens to a word he says.
The people with control of the money don't quite seem to grasp that software is yet another product, among many, where you get what you pay for. No matter how magical it may seem, you have to put more money into it to get more value out of it. People get "stuck" at senior because too many companies have determined that threshold is as much software talent as they need, and that paying for more would be wasteful.
I think he means stuck financially, not career wise since they have chosen to stay as a developer.
His answer to how to move ahead financially is to specialize. So maybe that is the general advice is to find something to specialize in or you are just seen as a commodity by management. If you are a commodity (e.g. general web developer with X years) then you may not get higher rates.
The article agrees with you that entering management is a cop out. If you want to keep growing as a developer, you need to specialize, is basically what the article says.
It's certainly opened my eyes; I'm very much a generalist, but I can see how, to get beyond a certain point, you need to specialize in something where quality really matters over quantity; you want to be able to provide value that two lower-paid people with twice the amount of time can't.
Security sounds like a great specialization, for example: a single great security expert can save a companies hide (which may be worth millions) in ways two average programmers won't.
UI/visual design sounds like another case where that's true. Look at Jon Ive. Having the product look better can mean you reach more people, which amplifies revenue.
I'm sure there are other valuable specialization areas where your expertise can multiply across a large organization.
I agree with the premise of this article (if you wanna get paid, specialise) as it strongly echoes my own, perhaps limited, experience.
I am a generalist. I like being able to solve problems across a wide spectrum of fields. Working at a startup for the last three years has given me plenty of time for that. The flipside is that I have not had much opportunity to specialise. I take pride in being comfortable diving into anything. However this has meant I don't have DEEP knowledge of a specialist.
At a previous job, I was able to dig really deep on Solr and build some expertise. In the intervening years however most of that has become way outdated.
Also I've found (in an admittedly limited sample size of interviews) that jobs seeking "full stack" developers tend to really be seeking someone to fulfill a specialised role but ALSO be comfortable moving up and down the stack as the need arises.
So obviously in my next job I've been looking for more established organizations where my opportunity to specialise in something I enjoy is greater. I think I've found one and am quite excited about it.
I know many companies who would rather have someone like you. Someone who they can give a problem to and they know you can solve it because of your wide knowledge base. "Sorry we can't give this problem to Bob to solve because all he knows is tech X." This is worth a lot to some people.
It's also not that you know many things, it's that you can learn other things easily and quickly. (without training)
The hard part is finding the right place to work at. Many large corporations are looking for a square peg for a square hole.
Additional problem for a senior full-stack devs is that you'll usually be assigned at solving various tricky issues, and even when you get to dig deeply into something and get a decent expertise on that niche, it's very likely that as soon as you setup everything you'll have move to work on something else, usually completely unrelated. After a few months of working on something else you'll almost completely forget the most of those little insights and details that you previously learned, and you'll be back at the start...
Unfortunately, the author does not offer much to actually answer the question posed by the title.
He does complain about the whiteboarding during interviews, and would prefer to be taken at his word about his past experience. As an older engineer (much older than the author, I might add), I can understand the feeling; however, in my years of experience, I have seen too many people coast on their former laurels and contribute, basically, nothing to the day-to-day business of the company. They can talk a mean talk, but never deliver anything of value. They sure are quick to jump on a hot idea once it's proven out and take credit, though!
So is whiteboarding the best way to higher people? I don't know; but I think it is a good way to keep the slackers _out_.
In other words, your worth is equal to your replacement cost. Specialization helps because of demand/supply dichotomy.
There is another option; grossly unpopular, but I have to lay it out: make a career in startups. You'll eventually land with one or two that work out very well. That may not increase your yearly salary, but it increases your overall payout over a decade, because you'll get a windfall or two.
How? As you keep working for startups, some will fail and some will succeed, in different ways. Eventually, you'll learn how to recognize the more promising ones. Are there any guarantees? No. But there are no guarantees in any path.
[About me: Software Engineer by education and trade. Been in the valley for several years. Early employee at Box, left last year as their Director of Engineering. Now run http://InterviewKickstart.com. We've trained a lot of people on how to prepare for technical interviews, the right way, the no-shortcuts way]
It was pretty much - whiteboard interviewing is stupid. BUT, if you for some reason value it, recognize I already went through a much harder version of it and passed." That's entirely reasonable, and not entitled, it's just facts.
It's unclear to me if that was his message or if he was trying to get across the more nuanced "my experience at Google should be a signal about my qualifications"
The author definitely stressed this a few times in the article.
To a new employer, the fact that he "made it through a Google interview" honestly doesn't mean much. Even Google interviews are wildly variable, and more importantly it doesn't in any way indicate that the candidate is a good match for whatever job he/she is interviewing for.
Talking about products and designs he had worked on in the past, at a technical level, though, is crucially important, and the author also pointed out they failed to do that (or at least I think he did?)
Anyway, getting a job at "one of the big employers" honestly doesn't mean much - there are plenty of people that get rejected that probably deserved a hire, and plenty of of people that get hired that aren't up to par. What matters more is what the candidate did while he was there.
It's sort of funny that he points out how broken interviewing & hiring is, but then also says that because he got hired by Google, he should be treated differently.
> Is it really that hard to manage your own health insurance plan and deduct taxes?
No, but it's hard (for many) to actually find work then negotiate a price. And for certain types of problems that people want to work on, there won't be many non-employe openings. Dealing with large bodies of sensitive data, for example, would be one I'd think it'd be harder to find consultant positions - not impossible, but more difficult.
I've been working as a consultant for a number of years and I think the biggest difference is the inconsistent salary. As I recall there was a recent poll someone posted on HN and that was the main reason people don't go into consulting. Consulting also suits a certain type of person because it's a hustling game. You can always make more, but that means there's no light to flip off at 5pm.
no, it's not that hard. what's hard is dealing with inconsistent income flow, lack of stability, and, most relevant to me, the psychological block against taking vacation or personal time when doing so has a real and immediate cost to my paycheck.
I'd rather make a little less at a job that has vacation benefits, than make a little more at a job where every day off comes out of my salary- because I recognize that I'm a human with certain hangups, and this is the way I can best optimize quality of life.
I recently blogged about this similar topic (http://jobtipsforgeeks.com/2015/05/20/moremoney/) and listed a handful of ways to avoid what I referred to as a salary plateau. The basic list was change jobs, get promoted, ask for a raise, brand additional benefits to your hire (network, visibility, etc.), consult/contract, moonlight or add revenue streams, and specialize.
I haven't read "Career Superpowers, but it sounds like Whitaker did almost all of these things - moved between Google/Apple, became a nationally recognized authority, specialized, added a revenue stream (book), and got promoted to VP.
In the end, your salary is roughly proportional to the number of people you impact. Management is an obvious path, since you directly control a group of people. But senior engineers can give technical direction and influence a lot of more junior engineers without having to be formally their boss. Also known as the technical track at companies such as Intel (principal engineer -> fellow).
The other thing that's somewhat related to this is the old "X years of experience means this range salary". Nothing like that cold, hard statement to remind you that the person across from you sees you as nothing but a cog or entry in a balance sheet. It immediately puts everything you've done, no matter how incredible/complicated/significant, down as if it's irrelevant.
That's capitalism. The sooner you stop thinking of your boss as your buddy and start thinking of the employer/employee relationship as a business transaction of hopefully mutual benefit, the better.
There's more than a hint here. It's not hard to hire competent people and then give them space to grow. As engineers, that is what we want, to grow, challenge yourselves. And it is the only way that experience occurs. If you as a company are not willing to invest in that, don't be surprised when people don't walk in your door and agree to do exactly the same things they've done 5x already, with no opportunity for growth.
I'll take a job that offers great opportunity and a mediocre salary any day. The vice versa not so much.
Just because you are specializing does not mean there is not room for growth of your knowledge, it just may not be in programming manner.
Consider specialization in say Expert Systems, you get to learn immense amounts about each domain which you are developing expert systems for, but I can understand employers wanting you to have a firm base in expert systems before hiring for you such a job.
The same can be said for 3D graphics, real time simulation software, and most other types of programming you could specialize. Just because you know everything there is to know about making realistic vehicles with 3D graphics does not mean there isn't plenty for you to learn about making realistic 3D dinosaurs and the nuances necessary to make them look amazing. You may not always be given tasks that require you to learn and develop new skills, but if you actually care about challenging yourself and learning you can generally find a way to incorporate challenges and learning new things into your job. You just have to be willing to put in the initiative to avoid forcing problems to be solved with the solutions familiar to you, and put in initiative to try new things learning enough about them to be able to advocate for their use when necessary.
TLDR: Just because the job doesn't force you to learn and be challenged, doesn't mean someone who wants to can't learn and challenge themselves on the job.
Key takeaway: You should become an expert in a deeply technical software specialty. Also, bounce back and forth between Google and Microsoft a few times.
I second this wholeheartedly. Unless you are specialized in some vertical with locally or nationally recognized skills, you are going to hit the ceiling. I'm not commanding 200-300K salary yet. But story is true for someone earning 150-160K. It seems like 150K is the beginning of the ceiling.
From a company's point of view, it's legit to not offer high salary for individuals with generic skills and experiences. They can always hire 2 at the cost 1 engineer. Then pay thru slower productivity, buggy software, inefficient architecture and so on.
I'm much less stressed about this after I realized it doesn't take more than 10-15 years of saving to become financially independent. It's seriously stressful to know you have to find a career that can sustain you until 65. Many people seem to have problems fairly early in their tech careers, with rampant ageism etc. So I plan on being FI by 45, preferably 40. So liberating to know my current job could be my last.
We should have a discussion about default SQL connectivity limits and the problems with using persistent connections.
There seems to be a ripe opportunity to make something similar to Amazon RDS, except with automatic scaling. The current version of RDS presents the user with different instance sizes and doesn't automatically scale during high CPU loads.
Security. Also 'growth hacking'; I'm not sure if that will actually up your salary, but knowing "everything" about SEO, analytics, a/b testing, email marketing, blah blah can definitely specialize you within an org.
EDIT: Employers also hire for 'tech stack' specialization, even though it's usually not necessary. For example, I'm only really recruited because I have demonstrate-able Rails expertise. In reality, I've also worked in Node.js and Java environments, and I'm pretty much just as productive after a few weeks.
You may not realize it, but a lot of web developers still only know things like ASP, .NET, ColdFusion, PHP, etc.. So knowing modern languages and APIs like Go, Ruby on Rails, Python, NodeJS JavaScript, etc. is already a step toward specialization. Another frequent ask I see from clients is knowing modern streaming methods like Web Sockets, Comet, Meteor, etc. which is another level again. Past that their is mobile development, which can be done in HTML/JS on platforms like Cordova, and also scaling and deployments. It's often different to write something that can run on hundreds of servers at once than a single web server, for example.
You can always specialize by domain. It's not too hard to take general web development experience and apply it to finance for a nice pay raise. You can do even better by transitioning away from web stuff to "core" parts of financial systems like trading or risk systems.
Nice writeup. I think that the final message to be specialized is great, and I'd underline that this should come after you proved that you master the "general knowledge".
This is clearly true for the author, he can specialize on 3d graphics after 3y web+mobile dev at Google and 3y in a startup, but the assumption that one could start specializing in 3d graphics from 0 imo is wrong.
All great painters were highly specialized, but all of them mastered the "general skills" in painting before taking their art to another level.
If financial side is so important, why not specialize in fintech / quant software development?
No special education (except for the general interest in finance and some math — easier than in computer graphics) is needed, and salaries are quite attractive.
The downside is zero work-life balance and huge stress levels, but everything has its price.
[+] [-] ChuckMcM|10 years ago|reply
Wow that is so spot on, as a "generic" programmer asking $150K versus a "generic" programmer asking $75K ? Easy choice, we'll get two and double our productivity and halve the sick days! I noted that in the medical profession "General Practitioners" made the least, while specialists made the most. They were all doctors.
Specialist software categories:
Embedded Software - bringing up code without an OS, understanding hardware function and tools.
Graphics Programmer - these days understanding 3D programming with Shaders and other features common in todays GPUs
Kernel programmer - understanding the insides of the kernel and how to write code that works there.
Networking software - understanding all of the intricacies of how packets get from point A to point B, and what interferes with that and what facilitates that.
Security specialist - someone who understands what makes programs and systems break and can program fixes for them or ways to spot attempts at exploiting them.
Storage specialist - someone who understands file systems and disk drives and getting data to and from programs reliably.
[+] [-] sammyo|10 years ago|reply
[+] [-] moistgorilla|10 years ago|reply
Data Analysis
Distributed Computing
High Performance Computing
Modelling and Simulation
Artificial Intelligence
[+] [-] FragenAntworten|10 years ago|reply
[1] https://www.google.com/about/careers/search#!t=jo&jid=34154
[+] [-] bryanlarsen|10 years ago|reply
There are lots of 3D graphics professionals working on video games, which is a notoriously over-worked, under-paid field. To hire 3D graphics professionals:
1. go to a video game hub, like Montreal
2. offer sane working hours
3. there is no step 3.
Notice the complete lack of any mention of salary.
[+] [-] PopeOfNope|10 years ago|reply
[+] [-] dudul|10 years ago|reply
I have a problem with this part. Basically, being a developer and not making it to a managing position is "getting stuck". I strongly disagree with that. Developers and managers have very different roles, a great developer will not necessarily be a great manager. It's like expecting great athletes to become great coaches, and if they don't they're stuck?
Is becoming a manager really a promotion? I would argue that in such a hot market great developers should be making more money than their own manager.
[+] [-] logfromblammo|10 years ago|reply
The problem in many companies is that the positions into which a senior developer may be promoted do not exist. Other positions with greater pay and prestige are on other career tracks. Positions like lead software developer, software architect, technical complexity organizer, software developer supreme (with tomato and sour cream), or historical catastrophe repetition avoider might not be available, or not available to internal hires.
They could exist. Several people here could probably argue a very convincing case for them. But they don't.
And the reason is because certain people still don't see business software resources as anything but costs to be managed down. Just yesterday, a member of my own household wanted to extract an image from a PDF, crop out the whitespace, and post it as a JPEG to a website. This non-technical person could have spent a whole day--or more--figuring this particular problem out. Having a technically knowledgeable person on hand shortened that time considerably. (I could have done it myself in seconds, but I didn't want to assume responsibility for doing that on demand for the rest of my life.)
The sad thing is that I got no credit for the time saved. I instead got grief for not being instantly helpful. I wasted someone else's time, because I didn't anticipate the need, so that SumatraPDF and Paint.NET or GIMP would be installed on their computer already. I wasted someone else's time because I didn't drop what I was doing immediately, so that they wouldn't have to wait for me to finish eating, or, horror of horrors, actually spend a few minutes to try to figure it out on their own.
That's the problem. The whole party complains, "Why didn't you just call on the Eagles again, Gandalf? We could have been done in three days!" And then when Radagast explains about the dearth of giant fish in the magical appropriations budget, no one listens to a word he says.
The people with control of the money don't quite seem to grasp that software is yet another product, among many, where you get what you pay for. No matter how magical it may seem, you have to put more money into it to get more value out of it. People get "stuck" at senior because too many companies have determined that threshold is as much software talent as they need, and that paying for more would be wasteful.
[+] [-] matt_s|10 years ago|reply
His answer to how to move ahead financially is to specialize. So maybe that is the general advice is to find something to specialize in or you are just seen as a commodity by management. If you are a commodity (e.g. general web developer with X years) then you may not get higher rates.
[+] [-] mcv|10 years ago|reply
It's certainly opened my eyes; I'm very much a generalist, but I can see how, to get beyond a certain point, you need to specialize in something where quality really matters over quantity; you want to be able to provide value that two lower-paid people with twice the amount of time can't.
Security sounds like a great specialization, for example: a single great security expert can save a companies hide (which may be worth millions) in ways two average programmers won't.
UI/visual design sounds like another case where that's true. Look at Jon Ive. Having the product look better can mean you reach more people, which amplifies revenue.
I'm sure there are other valuable specialization areas where your expertise can multiply across a large organization.
[+] [-] mattdeboard|10 years ago|reply
I am a generalist. I like being able to solve problems across a wide spectrum of fields. Working at a startup for the last three years has given me plenty of time for that. The flipside is that I have not had much opportunity to specialise. I take pride in being comfortable diving into anything. However this has meant I don't have DEEP knowledge of a specialist.
At a previous job, I was able to dig really deep on Solr and build some expertise. In the intervening years however most of that has become way outdated.
Also I've found (in an admittedly limited sample size of interviews) that jobs seeking "full stack" developers tend to really be seeking someone to fulfill a specialised role but ALSO be comfortable moving up and down the stack as the need arises.
So obviously in my next job I've been looking for more established organizations where my opportunity to specialise in something I enjoy is greater. I think I've found one and am quite excited about it.
[+] [-] gsarrica|10 years ago|reply
It's also not that you know many things, it's that you can learn other things easily and quickly. (without training)
The hard part is finding the right place to work at. Many large corporations are looking for a square peg for a square hole.
[+] [-] ivanhoe|10 years ago|reply
[+] [-] discardorama|10 years ago|reply
He does complain about the whiteboarding during interviews, and would prefer to be taken at his word about his past experience. As an older engineer (much older than the author, I might add), I can understand the feeling; however, in my years of experience, I have seen too many people coast on their former laurels and contribute, basically, nothing to the day-to-day business of the company. They can talk a mean talk, but never deliver anything of value. They sure are quick to jump on a hot idea once it's proven out and take credit, though!
So is whiteboarding the best way to higher people? I don't know; but I think it is a good way to keep the slackers _out_.
[+] [-] t0mbstone|10 years ago|reply
Some of the best and most brilliant programmers I've ever met were horrible at writing code on a whiteboard.
[+] [-] soham|10 years ago|reply
There is another option; grossly unpopular, but I have to lay it out: make a career in startups. You'll eventually land with one or two that work out very well. That may not increase your yearly salary, but it increases your overall payout over a decade, because you'll get a windfall or two.
How? As you keep working for startups, some will fail and some will succeed, in different ways. Eventually, you'll learn how to recognize the more promising ones. Are there any guarantees? No. But there are no guarantees in any path.
(Link to my bit more detailed answer on Quora: http://www.quora.com/How-can-I-increase-my-income-as-a-softw...)
[About me: Software Engineer by education and trade. Been in the valley for several years. Early employee at Box, left last year as their Director of Engineering. Now run http://InterviewKickstart.com. We've trained a lot of people on how to prepare for technical interviews, the right way, the no-shortcuts way]
[+] [-] svisser|10 years ago|reply
[+] [-] RogerL|10 years ago|reply
[+] [-] iaw|10 years ago|reply
[+] [-] moistgorilla|10 years ago|reply
[+] [-] bhilburn|10 years ago|reply
To a new employer, the fact that he "made it through a Google interview" honestly doesn't mean much. Even Google interviews are wildly variable, and more importantly it doesn't in any way indicate that the candidate is a good match for whatever job he/she is interviewing for.
Talking about products and designs he had worked on in the past, at a technical level, though, is crucially important, and the author also pointed out they failed to do that (or at least I think he did?)
Anyway, getting a job at "one of the big employers" honestly doesn't mean much - there are plenty of people that get rejected that probably deserved a hire, and plenty of of people that get hired that aren't up to par. What matters more is what the candidate did while he was there.
It's sort of funny that he points out how broken interviewing & hiring is, but then also says that because he got hired by Google, he should be treated differently.
Still a really interesting article, though, and I think his points about specializing are quite valid. Reminds me of this post, which is worth the read: http://alexgivesup.com/2013/12/23/i-got-fired-last-week-that...
[+] [-] EGreg|10 years ago|reply
Seriously, FTE is considered "the" way to fo by far too many people. Is it really that hard to manage your own health insurance plan and deduct taxes?
[+] [-] mgkimsal|10 years ago|reply
No, but it's hard (for many) to actually find work then negotiate a price. And for certain types of problems that people want to work on, there won't be many non-employe openings. Dealing with large bodies of sensitive data, for example, would be one I'd think it'd be harder to find consultant positions - not impossible, but more difficult.
[+] [-] dangero|10 years ago|reply
[+] [-] knodi123|10 years ago|reply
I'd rather make a little less at a job that has vacation benefits, than make a little more at a job where every day off comes out of my salary- because I recognize that I'm a human with certain hangups, and this is the way I can best optimize quality of life.
[+] [-] fecak|10 years ago|reply
I haven't read "Career Superpowers, but it sounds like Whitaker did almost all of these things - moved between Google/Apple, became a nationally recognized authority, specialized, added a revenue stream (book), and got promoted to VP.
[+] [-] alain94040|10 years ago|reply
In the end, your salary is roughly proportional to the number of people you impact. Management is an obvious path, since you directly control a group of people. But senior engineers can give technical direction and influence a lot of more junior engineers without having to be formally their boss. Also known as the technical track at companies such as Intel (principal engineer -> fellow).
[+] [-] zo1|10 years ago|reply
[+] [-] BrainInAJar|10 years ago|reply
[+] [-] RogerL|10 years ago|reply
"I'm teaching myself 3D graphics"
There's more than a hint here. It's not hard to hire competent people and then give them space to grow. As engineers, that is what we want, to grow, challenge yourselves. And it is the only way that experience occurs. If you as a company are not willing to invest in that, don't be surprised when people don't walk in your door and agree to do exactly the same things they've done 5x already, with no opportunity for growth.
I'll take a job that offers great opportunity and a mediocre salary any day. The vice versa not so much.
[+] [-] genericuser|10 years ago|reply
Consider specialization in say Expert Systems, you get to learn immense amounts about each domain which you are developing expert systems for, but I can understand employers wanting you to have a firm base in expert systems before hiring for you such a job.
The same can be said for 3D graphics, real time simulation software, and most other types of programming you could specialize. Just because you know everything there is to know about making realistic vehicles with 3D graphics does not mean there isn't plenty for you to learn about making realistic 3D dinosaurs and the nuances necessary to make them look amazing. You may not always be given tasks that require you to learn and develop new skills, but if you actually care about challenging yourself and learning you can generally find a way to incorporate challenges and learning new things into your job. You just have to be willing to put in the initiative to avoid forcing problems to be solved with the solutions familiar to you, and put in initiative to try new things learning enough about them to be able to advocate for their use when necessary.
TLDR: Just because the job doesn't force you to learn and be challenged, doesn't mean someone who wants to can't learn and challenge themselves on the job.
[+] [-] applecore|10 years ago|reply
[+] [-] dj_doh|10 years ago|reply
From a company's point of view, it's legit to not offer high salary for individuals with generic skills and experiences. They can always hire 2 at the cost 1 engineer. Then pay thru slower productivity, buggy software, inefficient architecture and so on.
[+] [-] fleshshelf|10 years ago|reply
[+] [-] frozenport|10 years ago|reply
There seems to be a ripe opportunity to make something similar to Amazon RDS, except with automatic scaling. The current version of RDS presents the user with different instance sizes and doesn't automatically scale during high CPU loads.
[+] [-] CognitiveLens|10 years ago|reply
[+] [-] jblok|10 years ago|reply
[+] [-] heynk|10 years ago|reply
EDIT: Employers also hire for 'tech stack' specialization, even though it's usually not necessary. For example, I'm only really recruited because I have demonstrate-able Rails expertise. In reality, I've also worked in Node.js and Java environments, and I'm pretty much just as productive after a few weeks.
[+] [-] lnanek2|10 years ago|reply
[+] [-] base13|10 years ago|reply
[+] [-] fbr|10 years ago|reply
[+] [-] svisser|10 years ago|reply
[+] [-] ecesena|10 years ago|reply
This is clearly true for the author, he can specialize on 3d graphics after 3y web+mobile dev at Google and 3y in a startup, but the assumption that one could start specializing in 3d graphics from 0 imo is wrong.
All great painters were highly specialized, but all of them mastered the "general skills" in painting before taking their art to another level.
[+] [-] atemerev|10 years ago|reply
No special education (except for the general interest in finance and some math — easier than in computer graphics) is needed, and salaries are quite attractive.
The downside is zero work-life balance and huge stress levels, but everything has its price.
[+] [-] markbnj|10 years ago|reply
Oh... irony?
[+] [-] moistgorilla|10 years ago|reply
[+] [-] fleshshelf|10 years ago|reply
[deleted]