And the mangers' attitude is that "they can shake any tree and it rains qualified programmer resumes". Here in Toronto, there is a company called Allegis and all major employers post their developer job here. The headhunters are plugged into Allegis and they call you based on keyword match. Have you ever seen poor people huddled outside HomeDepot, hoping to be picked up? Thats what it like to be a developer searching for a job in my town. Most enterprise dev jobs are focused on a very narrow set of skills; so it doesn't matter how good you are with designing solutions or algorithms you know -- what matters is do you know java/c#/angular(new) ? And thats all that matters for Allegis keyword match. You are probably thinking I can learn more technologies ; what I am pointing out is that enterprise s/w development process is based on the fundamental principle of getting barely skilled people who can put in the hours and keep their mouth shut. But these jobs pay a lot more than startup jobs and have a lot more security.
Disregarding a few years that was mostly WordPress consulting, my experience is largely enterprise C#. Lots of line of business applications, glorified CRUD apps, and some client work. Zero need for any ability to write a BST or radix sort.
If you're working for SpaceX, or Twitter, or a Big 4, of course you should know those things. But most developers don't work for one of those companies. The vast majority of programming is done to further a business other than programming.
For past few years I work (not full-time) on what is essentially a prototype of trivial line of business application: stock-keeping system. It is 3 layer and blahblah, with me implementing most of the server side. Amount of various hacks in the server to accommodate requirements of the "It is impossible to linearize a tree in C# without having local SQL database" kind is truly ridiculous (most of these involve few lines of generator-and-list-comprehensions-heavy python code on server).
Somehow there is whole large class of so called "developers", that can only directly transform input to output and anything that requires building some kind of data structure is impossible/unfeasible/whatever for them.
1) Programmers, who have solid coding skills that primarily work on building systems using existing modules and libraries.
2) Software engineers, who have algorithmic and systems level expertise along with advanced coding skills, and are capable of working on complex software such as operating systems, compilers, and other libraries / components used by others.
Let me hasten to add that that isn't to say one is better than the other. Both are needed, just like both regular doctors (in greater quantity) and neurosurgeons are needed (in lesser quantity) are also needed and all are highly skilled professionals.
Apparently (and unfairly), our society thinks otherwise - family doctors make $150K/year and neurosurgeons make $750K/year :-)
Not to mention tens of thousands of average developers that got lucky with stock options and became millionaires where a doctor of same age is still slaving away as a resident with 24-hour shifts and abysmal pay ($50-$60k year for surgical residents, according to google).
The market (not society) is treating us developers pretty well.
I am on the East Coast (outside of NYC, though), have been in the software business for 20+ years and know a lot of smart /accomplished people.
I don't know a single software engineer who makes more than $200K/year in a senior engineering role, as an employee. (We are comparing salaries, not consulting income or stock options here, which can disappear very quickly).
It would be nice for you to step outside of the bubble you live in SV, every now and then :-)
And even then, once the bubble pops, if you don't sell (there is usually a vesting period), they could be worth much, much less than today. Remember 2000-2001?
As I said: The rolling vesting offered by most companies means that you're selling stock every year after your first. So if you ignore the first year (or pretend that it's poorly compensated), it's not that shockingly bad.
RSUs in an established big company are much less likely become worthless overnight. Core part of your compensation at Amazon/Facebook/Google/etc...
I was just pointing out that, even though both family doctors and neurosurgeons go through long and arduous studies, the income disparity among doctors is very high.
If you really feel that you are living beyond your long term means, you should act: you can make more changes now than you will be able to later, and as hard as it can be to accept - this problem isn't going to solve itself.
And, think about the awful stuff like derivatives, taxes, etc.
But being able to adapt, apply and even create algorithms is a big part of what separates crappy CRUD/UI implementation dev jobs from real engineering and research roles. I don't imagine anyone wants to be stuck writing CRUD apps their entire career.
my experience is that this isn't the case, at least not where I am. Last place I was at, the guy who came in weekends was the first of us to be let go. (granted, the first guy to get promoted to direct-hire status also worked more hours than average, but he didn't come in weekends, and he certainly put in way fewer hours in the office than the guy who was let go first.)
There is quite often a correlation between my perception of a person not being very effective and staying super late.
>what I am pointing out is that enterprise s/w development process is based on the fundamental principle of getting barely skilled people who can put in the hours and keep their mouth shut. But these jobs pay a lot more than startup jobs and have a lot more security.
Eh, that's kind of the space I am in right now, only I'm more ops than dev (nearly every job is a mixture of both, most are tilted one way or the other.I am maybe 1/3rd dev, 2/3rds operations, my title is 'SysAdmin' at the moment)
The thing is about the corporate keyword jobs? You are right that they are looking for replaceable cogs, and it usually pays better than startup work, but it is very 'easy come, easy go' - expectations of contractors are super low, and contractor interviews are super short, so while you are very replaceable, so are they.
Where I am, in silicon valley, direct hire jobs at the places where you'd get those easy contractor gigs are kind of a different animal. They pay even more, really by quite a lot, and getting them is a combination of passing a bunch of IQ-test like puzzles and complex social signaling. Now, most of the people I know with those jobs are actually pretty good, so maybe the sorting process is better than I think? My problem is that first, I barely qualify, IQ wise, at least for the best of those companies, and then I am, well, I kind of am a capitalist, and part of the complex social signaling is pretending that you really want to be part of that advertising collective, which is super difficult for me, personally. I mean, I don't mind selling my sword to an advertising collective, but I am not the sort to 'drink the kool-aid' - Advertising is not making the world a better place, and I know that them hiring me is a transactional sort of thing. I'm not joining a collective, and I have difficulty pretending it's a collective.