A) I am not a (major) outlier (or many of my friends are major outliers too). Bottom line: Senior Engineers can make $250K+ today. Burn that into your synapses. The Netflix listings already posted here demonstrate that. I know Facebookers and Googlers making twice that or more and they weren't even acqui-hires. Glassdoor (valuable information source it is) IMO oversamples the discontent. Senior engineering positions at hedge funds can be $800-$900K.
B) Sure, without getting too specific, I started out as a videogame developer writing games entirely in assembler, branched out to multi-processor and multi-user games also in assembler, and that set me up nicely for writing device driver code for Windows and that's how I got my first gig in the valley.
You can follow exactly in my footsteps by really learning C/C++ and how to optimize it on x86 processors or whatever takes their place down the road. I'm not writing x86 much anymore, but I'm still writing very low-level parallel code, and it is next to impossible to find people who are really good at this because they've either been snatched up by Big Co and hedge funds making far more than I do or they're nowhere near as good as they think they are.
But who knows what they future will bring, so don't follow it exactly but instead go learn the things that are both in demand and that people complain are too hard. That's what worked for me. When game developers said 3D was too hard, I jumped into it. When game developers said multi-core was too difficult, I mastered it. And those are the skills that led to my biggest paydays(1).
1. You can of course make $100M doing nothing but Ruby/Javscript/Python (and especially PHP), but that wasn't the path I took (though sometimes I think I should have).
> But who knows what they future will bring, so don't follow it exactly but instead go learn the things that are both in demand and that people complain are too hard. That's what worked for me. When game developers said 3D was too hard, I jumped into it. When game developers said multi-core was too difficult, I mastered it. And those are the skills that led to my biggest paydays(1).
That sounds like a rather neat advice right there.
B) Sure, without getting too specific, I started out as a videogame developer writing games entirely in assembler, branched out to multi-processor and multi-user games also in assembler, and that set me up nicely for writing device driver code for Windows and that's how I got my first gig in the valley.
You can follow exactly in my footsteps by really learning C/C++ and how to optimize it on x86 processors or whatever takes their place down the road. I'm not writing x86 much anymore, but I'm still writing very low-level parallel code, and it is next to impossible to find people who are really good at this because they've either been snatched up by Big Co and hedge funds making far more than I do or they're nowhere near as good as they think they are.
But who knows what they future will bring, so don't follow it exactly but instead go learn the things that are both in demand and that people complain are too hard. That's what worked for me. When game developers said 3D was too hard, I jumped into it. When game developers said multi-core was too difficult, I mastered it. And those are the skills that led to my biggest paydays(1).
1. You can of course make $100M doing nothing but Ruby/Javscript/Python (and especially PHP), but that wasn't the path I took (though sometimes I think I should have).