Author Topic: Is the hype around tech/ programming/ coding careers the same as crypto hype?  (Read 25747 times)

AccidentialMustache

  • Handlebar Stache
  • *****
  • Posts: 1080
Someone can be great at refining their own rubber, but uselessly slow at actually changing a tire.  Someone can be great at changing a tire without knowing anything at all about what a rubber tree looks like.  They're different jobs.

The person swapping the tire needs to understand what the tire is capable of and failure modes in order to pick the proper tire to put on a car. Eg no summer tires in the winter and sizing it properly for the vehicle in question. Not just physical size, but load characteristics, temperature ratings, etc.

That's my point about assembly. If you don't know what the CPU actually does (which assembly isn't either, but it is the closest anyone practically works with), making your code run fast where it matters is a harder task.

I'm also not saying everything should be assembly. I work in python these days, and have done java, php, c/++, and others in the past. I've written (and taught) assembly (academically) in the past.

However I am saying knowing assembly means understanding a lot more about the cpu -- register layouts, cache details, what and how interrupts work -- all of which is still relevant to the higher level languages. A developer can write python -- but that same developer who understands more of the stack below them (eg, assembly) will write, in general, better python than their ignorant evil twin.

GuitarStv

  • Senior Mustachian
  • ********
  • Posts: 25520
  • Age: 43
  • Location: Toronto, Ontario, Canada
Someone can be great at refining their own rubber, but uselessly slow at actually changing a tire.  Someone can be great at changing a tire without knowing anything at all about what a rubber tree looks like.  They're different jobs.

The person swapping the tire needs to understand what the tire is capable of and failure modes in order to pick the proper tire to put on a car. Eg no summer tires in the winter and sizing it properly for the vehicle in question. Not just physical size, but load characteristics, temperature ratings, etc.

That's my point about assembly. If you don't know what the CPU actually does (which assembly isn't either, but it is the closest anyone practically works with), making your code run fast where it matters is a harder task.

Nah, this is where I completely disagree with you.  The mechanic only needs to know how to identify a summer vs a winter tire.  They can look up the load characteristics on the sidewall.  The tree the rubber came from, and how to find it in the forest is maybe nice to know, but mostly irrelevant.

Assembly level changes tend to produce very negligible improvements for the majority of desktop applications.  The higher level functions of most programming languages are optimized to be extremely efficient.  Design patterns become much more important in these cases.  Moving from a brainless bubble sort to a quick sort, or loading things into a hash table rather than searching through a list will provide logarithmic improvements.  You're just not going to get that sort of logarithmic improvements looking at the assembly vs using the (already mostly optimized) built in functions of the higher level language.

(This excludes certain special cases  . . .  in embedded and especially real time embedded software it's very important to know assembly because of the often unique limitations imposed by hardware.)


I'm also not saying everything should be assembly. I work in python these days, and have done java, php, c/++, and others in the past. I've written (and taught) assembly (academically) in the past.

However I am saying knowing assembly means understanding a lot more about the cpu -- register layouts, cache details, what and how interrupts work -- all of which is still relevant to the higher level languages. A developer can write python -- but that same developer who understands more of the stack below them (eg, assembly) will write, in general, better python than their ignorant evil twin.

Why stop at assembly?  Wouldn't it be useful to understand electrical engineering and chip design?  And mechanical engineering and fabrication?  And metallurgy?  And, and, and . . . None of these are bad to know.  Arguably there's some tangential knowledge that can be gleaned from them.  But they're just not all that applicable for most software developers.

So again, I'm going to say that it depends on the code being written.  If I'm writing a large scale threaded application for typical desktop PC use, I'd hire the guy with a great knowledge of semaphores, data structures, and design patterns 100% of the time over someone with a God-like encyclopedic knowledge of assembly.  The former will be much more useful.  The latter's knowledge just doesn't give him any edge in what I'm doing.  (That would of course completely change if I was working on real-time embedded stuff.)

clarkfan1979

  • Magnum Stache
  • ******
  • Posts: 3556
  • Age: 45
  • Location: Pueblo West, CO
Whenever I see everyone piling into something I'm cautious as it usually turns out to be a bubble e.g everyone investing during dotcom bubble, everyone buying real estate prior to the gfc, crypto/ nft's as some examples. It seems like everyone is currently 'getting into tech/ programming' etc right now, bootcamps popped up, youtubers are selling courses/ giving their stories/ advice etc, it all leads me to believe this is another bubble like bitcoin.

Anyone agree/ disagree? Anyone in the industry able to ad their thoughts/ advice?

The annual salaries definitely get attention. However, from what I have seen, the expectation is also long hours. Although a small sample size, my network of programmers in their early 40's all work at least 50 hours/week. Most of it is work from home, which is an advantage, but it's difficult to convince them to join me in the mountains because they are always working. I calculate value based on average hourly wage and not salary. It's more of an apples to apples comparison.

Anyone care to share the hourly expectations for different salaried positions? It can be whatever is industry standard, not personal. 

For any career, if someone is willing to pay you a high salary, it has a tendency to create this false confidence in other areas. You now think you know everything. I have seen it within other fields, such as doctors. However, I think this concept is over-represented with tech, especially among those in their late 20's. 

dandarc

  • Walrus Stache
  • *******
  • Posts: 5952
  • Age: 42
  • Pronouns: he/him/his
Whenever I see everyone piling into something I'm cautious as it usually turns out to be a bubble e.g everyone investing during dotcom bubble, everyone buying real estate prior to the gfc, crypto/ nft's as some examples. It seems like everyone is currently 'getting into tech/ programming' etc right now, bootcamps popped up, youtubers are selling courses/ giving their stories/ advice etc, it all leads me to believe this is another bubble like bitcoin.

Anyone agree/ disagree? Anyone in the industry able to ad their thoughts/ advice?

The annual salaries definitely get attention. However, from what I have seen, the expectation is also long hours. Although a small sample size, my network of programmers in their early 40's all work at least 50 hours/week. Most of it is work from home, which is an advantage, but it's difficult to convince them to join me in the mountains because they are always working. I calculate value based on average hourly wage and not salary. It's more of an apples to apples comparison.

Anyone care to share the hourly expectations for different salaried positions? It can be whatever is industry standard, not personal. 

For any career, if someone is willing to pay you a high salary, it has a tendency to create this false confidence in other areas. You now think you know everything. I have seen it within other fields, such as doctors. However, I think this concept is over-represented with tech, especially among those in their late 20's.
I currently make $100 / hour self-employed up to 2080 per year (actually work about 1200 hours per year). The combination of hourly rate and agreement that part time is enough are benefits of a good reputation mainly. I'm probably not a very good software engineer, but compared to others in the niche I'm in, I do produce higher-quality work. At least on criteria the end-users who control the contracts & money care about - "works" and "performs well enough that users in field aren't complaining" and "gets enough volume of work done"

Before this, I worked for about 10 months W-2 salaried at $150K + benefits that ostensibly was for about 2000 hours per year, but there was a lot of pressure (or my boundaries just not good enough) to work a fair bit of overtime. My math said that all-in with the benefits that was maybe $95 / hour if I try to see it favorably. I mean, on the minimum hours expectation - less than that when factoring in overtime, which was part of the reason I left for the above referenced part-time gig with a new customer. Hourly rate more important than total comp for me, and at a place I really want to work less and contract, hourly works well for cutting back purposes.

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
Whenever I see everyone piling into something I'm cautious as it usually turns out to be a bubble e.g everyone investing during dotcom bubble, everyone buying real estate prior to the gfc, crypto/ nft's as some examples. It seems like everyone is currently 'getting into tech/ programming' etc right now, bootcamps popped up, youtubers are selling courses/ giving their stories/ advice etc, it all leads me to believe this is another bubble like bitcoin.

Anyone agree/ disagree? Anyone in the industry able to ad their thoughts/ advice?

The annual salaries definitely get attention. However, from what I have seen, the expectation is also long hours. Although a small sample size, my network of programmers in their early 40's all work at least 50 hours/week. Most of it is work from home, which is an advantage, but it's difficult to convince them to join me in the mountains because they are always working. I calculate value based on average hourly wage and not salary. It's more of an apples to apples comparison.

Anyone care to share the hourly expectations for different salaried positions? It can be whatever is industry standard, not personal. 

For any career, if someone is willing to pay you a high salary, it has a tendency to create this false confidence in other areas. You now think you know everything. I have seen it within other fields, such as doctors. However, I think this concept is over-represented with tech, especially among those in their late 20's.
I currently make $100 / hour self-employed up to 2080 per year (actually work about 1200 hours per year). The combination of hourly rate and agreement that part time is enough are benefits of a good reputation mainly. I'm probably not a very good software engineer, but compared to others in the niche I'm in, I do produce higher-quality work. At least on criteria the end-users who control the contracts & money care about - "works" and "performs well enough that users in field aren't complaining" and "gets enough volume of work done"

Before this, I worked for about 10 months W-2 salaried at $150K + benefits that ostensibly was for about 2000 hours per year, but there was a lot of pressure (or my boundaries just not good enough) to work a fair bit of overtime. My math said that all-in with the benefits that was maybe $95 / hour if I try to see it favorably. I mean, on the minimum hours expectation - less than that when factoring in overtime, which was part of the reason I left for the above referenced part-time gig with a new customer. Hourly rate more important than total comp for me, and at a place I really want to work less and contract, hourly works well for cutting back purposes.

^ I also make about $95-100 / hr W-2 pay if I include my benefits. I'm currently on a gov contract, so everything is tracked by the hour, and I've never been asked to do more than 40 a week in 4 years. I know there are jobs out there where I could push my pay higher, but I like having the set hours rather than potentially higher pay.

If I wanted to make a bunch of money, I'd just buy into the right startup.

BC_Goldman

  • Bristles
  • ***
  • Posts: 288
Heh, I would feel pretty good right now if I was making $50-60/hr and working half-time. Half-time or less is where I would like to be within 5 years before my son starts school.

roomtempmayo

  • Handlebar Stache
  • *****
  • Posts: 1452
Tech has definitely become more popular as the "get rich quick!" entry point and the entry level is becoming flooded.

I think that this part is true. All the finance bros want to work in tech now, but the nerds don't want them here. Ignoring the possibility that the average finance bro is more sexist and/or racist than the average nerd they don't actually want to write good code. They just want to get rich quick. The best developers want to write good code for the sake of writing good code. The former finance bros just want to get rich quick.

I'm a total outsider to tech, but it seems to be something of a theme across fields that when they're invaded by folks who are mostly in it for the money the suck factor goes way up.  I've certainly heard friends who have been in tech for 20 years mention that the number of douches has skyrocketed over the past decade as it's gotten a reputation for easy money.

Maybe you're already there, but the next stage of degeneracy in fields like medicine and academia is hiring on a whole layer of MBAs with no real experience in the area to manage it.  What they mostly do is siphon off resources for themselves, make the case for their own necessity independent of demonstrable contributions to the core work/mission, and build up a whole bloated world of midlevel staff.


dandarc

  • Walrus Stache
  • *******
  • Posts: 5952
  • Age: 42
  • Pronouns: he/him/his
This - when you have a good conceptual base, the specific language matters little to nothing (I did once get asked to look at an assembler program - that might be an exception to "just google the syntax. . . "). The specific languages shouldn't matter that much if you know what you want to do.

One thing I'm struggling with right now is trying to get other developers to actually do some useful work on a pretty big project - not even a new language just getting used to a somewhat different architecture within the same basic setup (VB.NET-Webforms / Oracle database). And I'm constantly fighting the urge to just say fuck it, stop waiting on them and do it all myself, but I'm just one person who works about 24 hours per week - everyone is going to be better served if the other developers are involved and learn this approach.
If computer languages lack meaningful differences, why do you get resistence from coworkers?  And here you're not even pushing them to learn full programming languages, but just parts of languages.

You mentioned "assember language"[sic], which I think is mixing up assembly language with the tool which turns text into machine code - an assembler.
https://en.wikipedia.org/wiki/Assembly_language

My strongest objection is this: learning one computer langauge does not make you competant writing all other computer languages.  My closest overlap with your idea is I agree reading computer code is a skill that generalizes - but has limits, as you've experienced with assembly language.

I think in my career, I've tried to debug down to the assembly maybe twice? And one of those times it probably wasn't necessary. Unless you are looking for ways to squeeze a little more performance from your code for an RTS, knowing assembly doesn't do you much good. In fact, quick and dirty is very much preferred because AWS cycles are much cheaper than developer hours. (Obviously you don't want O(n^2) algo's when O(n) is possible, but again, you don't debug that at the assembly level.)

There are people out there that still work with assembly on a regular basis but my guess is that that's less than 1% of computer engineering jobs out there.
I was clearly not clear with any context in that comment I made - the thing I find myself specifically thinking of when I think of "programming language different enough that 'google it . . .' is not very helpful" was a program written in assembly to perform some business logic. The source code, at least that I was given, was assembly - there wasn't anything higher level available because it was either written that way in the first place or the source code was completely lost at some point along the way. I remember being told it was written in assembly a long time before I was given the task, but I could easily be mistaken on that. Sort of an academic point - program existed, did something important and was currently in use, had a bug or two that needed / wanted to be fixed and ideally converted to a higher-level language - COBOL would was best for that insurance company at that time. This was in 2007 when it came across my desk - a long, long time past when anything like this might have been expected to be written in assembly and yet there we were.

GuitarStv

  • Senior Mustachian
  • ********
  • Posts: 25520
  • Age: 43
  • Location: Toronto, Ontario, Canada
This - when you have a good conceptual base, the specific language matters little to nothing (I did once get asked to look at an assembler program - that might be an exception to "just google the syntax. . . "). The specific languages shouldn't matter that much if you know what you want to do.

One thing I'm struggling with right now is trying to get other developers to actually do some useful work on a pretty big project - not even a new language just getting used to a somewhat different architecture within the same basic setup (VB.NET-Webforms / Oracle database). And I'm constantly fighting the urge to just say fuck it, stop waiting on them and do it all myself, but I'm just one person who works about 24 hours per week - everyone is going to be better served if the other developers are involved and learn this approach.
If computer languages lack meaningful differences, why do you get resistence from coworkers?  And here you're not even pushing them to learn full programming languages, but just parts of languages.

You mentioned "assember language"[sic], which I think is mixing up assembly language with the tool which turns text into machine code - an assembler.
https://en.wikipedia.org/wiki/Assembly_language

My strongest objection is this: learning one computer langauge does not make you competant writing all other computer languages.  My closest overlap with your idea is I agree reading computer code is a skill that generalizes - but has limits, as you've experienced with assembly language.

I think in my career, I've tried to debug down to the assembly maybe twice? And one of those times it probably wasn't necessary. Unless you are looking for ways to squeeze a little more performance from your code for an RTS, knowing assembly doesn't do you much good. In fact, quick and dirty is very much preferred because AWS cycles are much cheaper than developer hours. (Obviously you don't want O(n^2) algo's when O(n) is possible, but again, you don't debug that at the assembly level.)

There are people out there that still work with assembly on a regular basis but my guess is that that's less than 1% of computer engineering jobs out there.
I was clearly not clear with any context in that comment I made - the thing I find myself specifically thinking of when I think of "programming language different enough that 'google it . . .' is not very helpful" was a program written in assembly to perform some business logic. The source code, at least that I was given, was assembly - there wasn't anything higher level available because it was either written that way in the first place or the source code was completely lost at some point along the way. I remember being told it was written in assembly a long time before I was given the task, but I could easily be mistaken on that. Sort of an academic point - program existed, did something important and was currently in use, had a bug or two that needed / wanted to be fixed and ideally converted to a higher-level language - COBOL would was best for that insurance company at that time. This was in 2007 when it came across my desk - a long, long time past when anything like this might have been expected to be written in assembly and yet there we were.

Was that job on the up and up?  The only time I've ever been asked to use assembly like you're describing, I'm pretty sure that I was really being asked to reverse engineer a program from a competitor.  :P

dandarc

  • Walrus Stache
  • *******
  • Posts: 5952
  • Age: 42
  • Pronouns: he/him/his
I mean, I was working directly as an employee for a fortune-100 insurance company. Employed a staff of at least 300 COBOL programmers at the home office. Insurance is not some rocket-surgery type of business to figure out where there would be an incentive to do any actual corporate espionage like that. The tech work is basically just websites (or greenscreens which are basically just websites with shittier graphics) that keep track of paperwork - the most complex stuff that happens is what the actuaries do and was decidedly not anything I ever worked on.

ender

  • Walrus Stache
  • *******
  • Posts: 7414
Someone can be great at refining their own rubber, but uselessly slow at actually changing a tire.  Someone can be great at changing a tire without knowing anything at all about what a rubber tree looks like.  They're different jobs.

The person swapping the tire needs to understand what the tire is capable of and failure modes in order to pick the proper tire to put on a car. Eg no summer tires in the winter and sizing it properly for the vehicle in question. Not just physical size, but load characteristics, temperature ratings, etc.

That's my point about assembly. If you don't know what the CPU actually does (which assembly isn't either, but it is the closest anyone practically works with), making your code run fast where it matters is a harder task.

I'm also not saying everything should be assembly. I work in python these days, and have done java, php, c/++, and others in the past. I've written (and taught) assembly (academically) in the past.

However I am saying knowing assembly means understanding a lot more about the cpu -- register layouts, cache details, what and how interrupts work -- all of which is still relevant to the higher level languages. A developer can write python -- but that same developer who understands more of the stack below them (eg, assembly) will write, in general, better python than their ignorant evil twin.

The number of engineers who actually need to care about these issues on anything resembling a consistent basis is pretty low though.

Many apps the constraining factor isn't hardly anything related to all the small level stuff. Sure, some it matters. But I'd say for the vast majority of people writing code, what you said doesn't matter materially at all.

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 42
  • Location: Vancouver, WA, USA
Someone can be great at refining their own rubber, but uselessly slow at actually changing a tire.  Someone can be great at changing a tire without knowing anything at all about what a rubber tree looks like.  They're different jobs.

The person swapping the tire needs to understand what the tire is capable of and failure modes in order to pick the proper tire to put on a car. Eg no summer tires in the winter and sizing it properly for the vehicle in question. Not just physical size, but load characteristics, temperature ratings, etc.

That's my point about assembly. If you don't know what the CPU actually does (which assembly isn't either, but it is the closest anyone practically works with), making your code run fast where it matters is a harder task.

I'm also not saying everything should be assembly. I work in python these days, and have done java, php, c/++, and others in the past. I've written (and taught) assembly (academically) in the past.

However I am saying knowing assembly means understanding a lot more about the cpu -- register layouts, cache details, what and how interrupts work -- all of which is still relevant to the higher level languages. A developer can write python -- but that same developer who understands more of the stack below them (eg, assembly) will write, in general, better python than their ignorant evil twin.

The number of engineers who actually need to care about these issues on anything resembling a consistent basis is pretty low though.

Many apps the constraining factor isn't hardly anything related to all the small level stuff. Sure, some it matters. But I'd say for the vast majority of people writing code, what you said doesn't matter materially at all.

Indeed. I would argue that C is a better level to learn/know/think about. I've had to write assembly exactly once in my career in order to do something architecture specific on armv6. I have read a lot more assembly than I've written debugging early boot u-boot and Linux kernel. But I never had to modify any of that early boot code. I just had to understand why my kernel was in the wrong part of memory or my SPL wasn't starting, etc. But that's a pretty specific niche in computer science.

clarkfan1979

  • Magnum Stache
  • ******
  • Posts: 3556
  • Age: 45
  • Location: Pueblo West, CO
Heh, I would feel pretty good right now if I was making $50-60/hr and working half-time. Half-time or less is where I would like to be within 5 years before my son starts school.

My son starts kindergarten in August 2022. His school is 7:45 to 2:55 (M-Th). I teach community college and set up my schedule so I can drop him off and pick him up, if my wife is not available. Per my contract, I have to be on campus 24 hours/week, so I set it up for 8:00-2:30 (M-W) and then Thursday is 8:00-1:30. I probably average 30 hours or work/week for 32 weeks/year. It's a pretty awesome schedule. Salary + benefits is around $82,000, so I make around $82/hour. 

The biggest downside is that I typically cannot take a one week vacation in the middle of the semester. For a vacation that is more than 3 days, I have to wait for a break in the semester (Thanksgiving Break, Winter Break, Spring Break or Summer Break). I sometimes get invited to do these types of trips in the middle of the semester and I typically decline.


BC_Goldman

  • Bristles
  • ***
  • Posts: 288
Heh, I would feel pretty good right now if I was making $50-60/hr and working half-time. Half-time or less is where I would like to be within 5 years before my son starts school.

My son starts kindergarten in August 2022. His school is 7:45 to 2:55 (M-Th). I teach community college and set up my schedule so I can drop him off and pick him up, if my wife is not available. Per my contract, I have to be on campus 24 hours/week, so I set it up for 8:00-2:30 (M-W) and then Thursday is 8:00-1:30. I probably average 30 hours or work/week for 32 weeks/year. It's a pretty awesome schedule. Salary + benefits is around $82,000, so I make around $82/hour. 

The biggest downside is that I typically cannot take a one week vacation in the middle of the semester. For a vacation that is more than 3 days, I have to wait for a break in the semester (Thanksgiving Break, Winter Break, Spring Break or Summer Break). I sometimes get invited to do these types of trips in the middle of the semester and I typically decline.
That sounds like a great setup aside from vacation limits! In my case, we are seriously considering homeschooling our son and that's going to be my responsibility for the most part.

My current rate is more like $36/hr but it's boosted probably another $5 from the value of the higher 401k match. Technically lower though because I'm salary and frequently work late because I'm trying to get better.

My salary will go up with more experience but it sounds like I will have a hard time getting to 100k without a lot of time there.

BlueMR2

  • Handlebar Stache
  • *****
  • Posts: 2341
There are people out there that still work with assembly on a regular basis but my guess is that that's less than 1% of computer engineering jobs out there.

Yeah, it's not much of a thing anymore.  Just throw more hardware at it.  :D  I spent a TON of time in Assembly in the early '90's though as I only had access to an XT clone and I was doing graphical work...  Some core logic in C, but all the drawing and calculation code was in Assembly.  I really miss it, those were the golden years.  :)

AccidentialMustache

  • Handlebar Stache
  • *****
  • Posts: 1080
Y'all are why, despite CPUs being a billion times faster than when most of us were kids, computers are still slow.

Cache mechanics has been useful in my career (while working in Java, no less!) and I wasn't anywhere near embedded/etc. Just high-throughput, internet-scale type stuff. It is worth spending some software engineer salaries on it when you multiply gains across enough servers.

TheOldestYoungMan

  • Pencil Stache
  • ****
  • Posts: 778
I've got a friend who recently started at Meta (he's late 40's) making $1.2 mil/yr.  He's not C-suite and isn't anything particularly special, pretty good at his job, competence you would expect after working in the field.  As an engineer in a more classical field, I doubt I ever hit numbers like that.

He says the problem with software/coding types is that they spend too long in jobs they aren't learning in. So there's a lot of programmers working at a place like Blizzard or bumfuckrandoaccounting firm making what is, by the standard of everyone else, good money, but by the standard of their industry, absolute shit.

There's been comparisons to Architects or Engine designers, and that's all well and good for the sophistication required.  But it misses the powerful impact of scalability.  Very few people will make an improvement to an engine that impacts a billion people, though it does happen.  The engine space is limited, and it's very much first-across-the-line.  Hardly any architectural design is re-used.  Occasionally there's an AE firm that is able to sell the same design multiple times, but that's not work those folks are taking a whole lot of pride in usually.  The "style" gets re-used often but almost none of the details.

Aggressively pursue opportunities to become more competent, while also keeping an eye on compensation, and it could be pretty good.  And that's why I don't think it's a bubble.  Tons of people want to camp out in one job forever and just expect more money as time goes on, and a lot of software folks think that's what they're getting cause they started at 80k and retired at 180k (nothing shameful about that), meanwhile their fellows that left for different opportunities/challenges, are making absurdly high wages that still lowball their actual impact on society.

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
I've got a friend who recently started at Meta (he's late 40's) making $1.2 mil/yr.  He's not C-suite and isn't anything particularly special, pretty good at his job, competence you would expect after working in the field.  As an engineer in a more classical field, I doubt I ever hit numbers like that.

He says the problem with software/coding types is that they spend too long in jobs they aren't learning in. So there's a lot of programmers working at a place like Blizzard or bumfuckrandoaccounting firm making what is, by the standard of everyone else, good money, but by the standard of their industry, absolute shit.

There's been comparisons to Architects or Engine designers, and that's all well and good for the sophistication required.  But it misses the powerful impact of scalability.  Very few people will make an improvement to an engine that impacts a billion people, though it does happen.  The engine space is limited, and it's very much first-across-the-line.  Hardly any architectural design is re-used.  Occasionally there's an AE firm that is able to sell the same design multiple times, but that's not work those folks are taking a whole lot of pride in usually.  The "style" gets re-used often but almost none of the details.

Aggressively pursue opportunities to become more competent, while also keeping an eye on compensation, and it could be pretty good.  And that's why I don't think it's a bubble.  Tons of people want to camp out in one job forever and just expect more money as time goes on, and a lot of software folks think that's what they're getting cause they started at 80k and retired at 180k (nothing shameful about that), meanwhile their fellows that left for different opportunities/challenges, are making absurdly high wages that still lowball their actual impact on society.

1. Your buddy isn't telling you something. You don't make 1.2MM in a year without having a company be acquired or some other contract deal that he was able to leverage.

2. I'm going to go out on a limb and say that the majority of software built isn't useful for society or have any large impact. Software lives for about 6-10 years, and even then, I've worked for companies that don't mind having stuff written and tossed all the time.

The only way that you are going to make stupid money in the >300k range is by building a piece of software yourself that a company buys from you and they attach a retainer as part of the policy or by reaching the technical equivalent of the C-suite. A software engineer can more easily do 200-300k range if they live in the right city and guess the right niche to focus on. Anyone can obtain 180k if they switch jobs 4 or 5 times over 15 years and are half decent programmers.

Your friend lucked out too. I've known several very smart people who have ended up wasting decades of their life going from startup to startup trying to make it big, meanwhile there are 1000's of people who can make steady check and retire early all around them.

If your friend thinks making 1.2MM per year is attainable by anyone, he's lying to himself to convince himself that 99% of his wealth wasn't a coincidence of timing and luck.

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 42
  • Location: Vancouver, WA, USA
I've got a friend who recently started at Meta (he's late 40's) making $1.2 mil/yr.  He's not C-suite and isn't anything particularly special, pretty good at his job, competence you would expect after working in the field.  As an engineer in a more classical field, I doubt I ever hit numbers like that.

He says the problem with software/coding types is that they spend too long in jobs they aren't learning in. So there's a lot of programmers working at a place like Blizzard or bumfuckrandoaccounting firm making what is, by the standard of everyone else, good money, but by the standard of their industry, absolute shit.

There's been comparisons to Architects or Engine designers, and that's all well and good for the sophistication required.  But it misses the powerful impact of scalability.  Very few people will make an improvement to an engine that impacts a billion people, though it does happen.  The engine space is limited, and it's very much first-across-the-line.  Hardly any architectural design is re-used.  Occasionally there's an AE firm that is able to sell the same design multiple times, but that's not work those folks are taking a whole lot of pride in usually.  The "style" gets re-used often but almost none of the details.

Aggressively pursue opportunities to become more competent, while also keeping an eye on compensation, and it could be pretty good.  And that's why I don't think it's a bubble.  Tons of people want to camp out in one job forever and just expect more money as time goes on, and a lot of software folks think that's what they're getting cause they started at 80k and retired at 180k (nothing shameful about that), meanwhile their fellows that left for different opportunities/challenges, are making absurdly high wages that still lowball their actual impact on society.

1. Your buddy isn't telling you something. You don't make 1.2MM in a year without having a company be acquired or some other contract deal that he was able to leverage.

2. I'm going to go out on a limb and say that the majority of software built isn't useful for society or have any large impact. Software lives for about 6-10 years, and even then, I've worked for companies that don't mind having stuff written and tossed all the time.

The only way that you are going to make stupid money in the >300k range is by building a piece of software yourself that a company buys from you and they attach a retainer as part of the policy or by reaching the technical equivalent of the C-suite. A software engineer can more easily do 200-300k range if they live in the right city and guess the right niche to focus on. Anyone can obtain 180k if they switch jobs 4 or 5 times over 15 years and are half decent programmers.

Your friend lucked out too. I've known several very smart people who have ended up wasting decades of their life going from startup to startup trying to make it big, meanwhile there are 1000's of people who can make steady check and retire early all around them.

If your friend thinks making 1.2MM per year is attainable by anyone, he's lying to himself to convince himself that 99% of his wealth wasn't a coincidence of timing and luck.

He might be L8 at Google (Principal Engineer): https://www.levels.fyi/?compare=Google&track=Software%20Engineer
But that comes with a lot of leadership responsibility AFAIK.

AccidentialMustache

  • Handlebar Stache
  • *****
  • Posts: 1080
L8 at google the technical equivalent of C-suite. I know a L6 at google who has been there since pre-ipo (but only barely) who is starting to look, because getting promoted beyond L6 is all but impossible (and highly political).

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
L8 at google the technical equivalent of C-suite. I know a L6 at google who has been there since pre-ipo (but only barely) who is starting to look, because getting promoted beyond L6 is all but impossible (and highly political).

Right. Google (but really Alphabet) is just a giant tech holding company. These L8's are really just acting as mini CEO's of the subsidiary holdings of Google. They probably contribute technically in some token way, but as you said, it's more political than programming talent.

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 42
  • Location: Vancouver, WA, USA
L8 at google the technical equivalent of C-suite. I know a L6 at google who has been there since pre-ipo (but only barely) who is starting to look, because getting promoted beyond L6 is all but impossible (and highly political).

Right. Google (but really Alphabet) is just a giant tech holding company. These L8's are really just acting as mini CEO's of the subsidiary holdings of Google. They probably contribute technically in some token way, but as you said, it's more political than programming talent.

I don't disagree, much. According to Quora L8 is one step below VP level.

ender

  • Walrus Stache
  • *******
  • Posts: 7414
1. Your buddy isn't telling you something. You don't make 1.2MM in a year without having a company be acquired or some other contract deal that he was able to leverage.

2. I'm going to go out on a limb and say that the majority of software built isn't useful for society or have any large impact. Software lives for about 6-10 years, and even then, I've worked for companies that don't mind having stuff written and tossed all the time.

The only way that you are going to make stupid money in the >300k range is by building a piece of software yourself that a company buys from you and they attach a retainer as part of the policy or by reaching the technical equivalent of the C-suite. A software engineer can more easily do 200-300k range if they live in the right city and guess the right niche to focus on. Anyone can obtain 180k if they switch jobs 4 or 5 times over 15 years and are half decent programmers.

Your friend lucked out too. I've known several very smart people who have ended up wasting decades of their life going from startup to startup trying to make it big, meanwhile there are 1000's of people who can make steady check and retire early all around them.

If your friend thinks making 1.2MM per year is attainable by anyone, he's lying to himself to convince himself that 99% of his wealth wasn't a coincidence of timing and luck.


$1.2M is definitely an outlier but for someone with 20 years of IC experience who is, as the friend here says has taken high impact/learning jobs, Meta definitely could pay that much. Meta is pretty much the highest paying company employing a meaningful number of software engineers at this point.

I've known many senior director/VP types (which are probably the manager equivalent of that IC) who are in that range. It's definitely doable. The biggest issue is there are significantly more people management roles available at that type of level than IC roles.

Your last point about comp (regarding 300k+) is is so completely wrong it's not even funny.  A large number of number of companies pay $300k-400k+ total compensation for senior engineers at this point between salary/public RSUs. Hell, a lot of them are paying new grads close to 200k total compensation. If you are capable of being a staff or principal engineer at those types of companies your compensation ceiling is much, much higher.

I know quite a few ICs who are making north of 700k-900k+ across numerous companies too. You shouldn't expect to make that much and certainly average, non-ambitious people don't accidentally get that type of compensation but it's certainly doable.

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
1. Your buddy isn't telling you something. You don't make 1.2MM in a year without having a company be acquired or some other contract deal that he was able to leverage.

2. I'm going to go out on a limb and say that the majority of software built isn't useful for society or have any large impact. Software lives for about 6-10 years, and even then, I've worked for companies that don't mind having stuff written and tossed all the time.

The only way that you are going to make stupid money in the >300k range is by building a piece of software yourself that a company buys from you and they attach a retainer as part of the policy or by reaching the technical equivalent of the C-suite. A software engineer can more easily do 200-300k range if they live in the right city and guess the right niche to focus on. Anyone can obtain 180k if they switch jobs 4 or 5 times over 15 years and are half decent programmers.

Your friend lucked out too. I've known several very smart people who have ended up wasting decades of their life going from startup to startup trying to make it big, meanwhile there are 1000's of people who can make steady check and retire early all around them.

If your friend thinks making 1.2MM per year is attainable by anyone, he's lying to himself to convince himself that 99% of his wealth wasn't a coincidence of timing and luck.


$1.2M is definitely an outlier but for someone with 20 years of IC experience who is, as the friend here says has taken high impact/learning jobs, Meta definitely could pay that much. Meta is pretty much the highest paying company employing a meaningful number of software engineers at this point.

I've known many senior director/VP types (which are probably the manager equivalent of that IC) who are in that range. It's definitely doable. The biggest issue is there are significantly more people management roles available at that type of level than IC roles.

Your last point about comp (regarding 300k+) is is so completely wrong it's not even funny.  A large number of number of companies pay $300k-400k+ total compensation for senior engineers at this point between salary/public RSUs. Hell, a lot of them are paying new grads close to 200k total compensation. If you are capable of being a staff or principal engineer at those types of companies your compensation ceiling is much, much higher.

I know quite a few ICs who are making north of 700k-900k+ across numerous companies too. You shouldn't expect to make that much and certainly average, non-ambitious people don't accidentally get that type of compensation but it's certainly doable.

That's cool that you know some Google engineers I guess. Talking about their pay as if it is normal or even close to what "any engineer with enough gumption" can make is really misrepresenting comp sci pay. They still represent a tiny fraction of the industry. Getting a job at Google is not only difficult you can also be randomly removed from consideration for any number of reasons.

Even in San Fran average SE pay is closer to 125k (2020 numbers). The median SE in the US makes 90k. the top 25% of programmers make above $116k. All of Google is an outlier, and pointing to them as though they are attainable by any developer is misleading to people trying to figure out what they'll make at the career. Google and Meta represent the top 1% of pay, not the top 10%.

Meta better pay a lot, I wouldn't sell my soul for less than 300k lol.

ender

  • Walrus Stache
  • *******
  • Posts: 7414
That's cool that you know some Google engineers I guess. Talking about their pay as if it is normal or even close to what "any engineer with enough gumption" can make is really misrepresenting comp sci pay. They still represent a tiny fraction of the industry. Getting a job at Google is not only difficult you can also be randomly removed from consideration for any number of reasons.

Even in San Fran average SE pay is closer to 125k (2020 numbers). The median SE in the US makes 90k. the top 25% of programmers make above $116k. All of Google is an outlier, and pointing to them as though they are attainable by any developer is misleading to people trying to figure out what they'll make at the career. Google and Meta represent the top 1% of pay, not the top 10%.

Meta better pay a lot, I wouldn't sell my soul for less than 300k lol.

None of the folks I know making that kinda money are at Google. Many people do not know how many companies are paying crazy money these days for tech workers.

I've had a lot of conversations with people who have gotten 50k-100k+ raises in the last year. Including people who are kind of mediocre if I'm honest.

Also, I don't know where you are getting your numbers from on average salaries but keep in mind almost no source includes actual total compensation including RSU compensation.

seattlecyclone

  • Walrus Stache
  • *******
  • Posts: 7491
  • Age: 40
  • Location: Seattle, WA
    • My blog
1. Your buddy isn't telling you something. You don't make 1.2MM in a year without having a company be acquired or some other contract deal that he was able to leverage.

This is not exactly true at your FAANG-type companies. The friend is "late 40s", which indicates perhaps 20-25 years of experience. Compensation for Facebook engineers with that much experience is around $475k median per levels.fyi. The ones a bit below this median are at the "E5" level, which is your standard senior engineer: solid individual contributor, does a lot of mentorship and leadership at the level of a small team (5-10 people), will often be consulted about larger-scale architectural decisions but usually won't be calling the shots at a broader scale than their smaller team. E6 is a bit higher level of responsibility, will be one of the lead engineers for a larger (15-30 person) team, will actively shape the strategic direction and design for that team, mentor the senior engineers, and usually will still write some code themselves. That's the ~$500k jobs. This is very attainable for someone with that much experience, though it isn't easy to get there by any means, and we can see plenty who are still at E5 and happy enough with their ~$300k compensation and lower level of responsibility.

Compensation ramps up dramatically from E6: looks like the E7s who reported their compensation recently are right in that $1.2 million ballpark. This will often be someone who is a lead engineer for an even larger team (perhaps up to 100 people). As you can imagine there aren't a ton of those jobs to go around, but they do exist, and you don't need to be an acquired startup bigwig to land one. You just need to establish a proven track record of successfully making these higher-impact engineering decisions and convincing the rest of your team to implement them. These big tech companies have engineering organizations large enough that there's room for hundreds of these folks at each company.

Now, it's important to note that these self-reported compensation numbers are heavily tilted toward RSUs at the higher levels. The base salary increases pretty marginally between levels. Recent movement in the stock market may mean that these folks aren't earning quite as much as they said they were months ago when they reported their data to the site.

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
1. Your buddy isn't telling you something. You don't make 1.2MM in a year without having a company be acquired or some other contract deal that he was able to leverage.

This is not exactly true at your FAANG-type companies. The friend is "late 40s", which indicates perhaps 20-25 years of experience. Compensation for Facebook engineers with that much experience is around $475k median per levels.fyi. The ones a bit below this median are at the "E5" level, which is your standard senior engineer: solid individual contributor, does a lot of mentorship and leadership at the level of a small team (5-10 people), will often be consulted about larger-scale architectural decisions but usually won't be calling the shots at a broader scale than their smaller team. E6 is a bit higher level of responsibility, will be one of the lead engineers for a larger (15-30 person) team, will actively shape the strategic direction and design for that team, mentor the senior engineers, and usually will still write some code themselves. That's the ~$500k jobs. This is very attainable for someone with that much experience, though it isn't easy to get there by any means, and we can see plenty who are still at E5 and happy enough with their ~$300k compensation and lower level of responsibility.

Compensation ramps up dramatically from E6: looks like the E7s who reported their compensation recently are right in that $1.2 million ballpark. This will often be someone who is a lead engineer for an even larger team (perhaps up to 100 people). As you can imagine there aren't a ton of those jobs to go around, but they do exist, and you don't need to be an acquired startup bigwig to land one. You just need to establish a proven track record of successfully making these higher-impact engineering decisions and convincing the rest of your team to implement them. These big tech companies have engineering organizations large enough that there's room for hundreds of these folks at each company.

Now, it's important to note that these self-reported compensation numbers are heavily tilted toward RSUs at the higher levels. The base salary increases pretty marginally between levels. Recent movement in the stock market may mean that these folks aren't earning quite as much as they said they were months ago when they reported their data to the site.

Well you cut out the second half of that statement where I said "or by reaching the technical equivalent of the C-suite." No, not anyone can just make that E7 level. There are likely hundreds if not thousands of employees at Google and Meta with 20+ years of experience who will not make that level. I think you're even inflating the number of people who are making E6.

If it's like anywhere else, likely there's a band of promotions that are fairly linear with experience. Probably E3-E5. Once you hit higher levels, the percentage of people in the pool getting promoted shrinks exponentially fast. Everyone wants that jump from 300k to 500k and 500k to 1.2MM. My personal guess is that only 20% of E5's will make it E6, and only 20% of them will ever make it to E7. Meaning that only ~2% of employees (ie, if there are 30k engineers, there will be about 700 E7's. A lot of people making 1MM a year, but the odds of making it are still small because the company is so huge)

A major piece of this is that Google stock did +65% in 2021. Like you said, if 30% of their wage is in RSU's, then a year like 2022 where they are down 20% means that their bonus will be half of what it was last year. And the higher you go the more your income depends on stock price. I'm guessing this guy's salary will be closer to 800-1000k rather than 1.2MM this year.

seattlecyclone

  • Walrus Stache
  • *******
  • Posts: 7491
  • Age: 40
  • Location: Seattle, WA
    • My blog
Well you cut out the second half of that statement where I said "or by reaching the technical equivalent of the C-suite." No, not anyone can just make that E7 level.

I never said just anyone will make it to that level. I sure didn't get anywhere close myself, but that's in large part because a) I was not trying at all to climb the ladder, and b) I accumulated enough money to FIRE well before getting to my late 40s. What I am saying is that it is relatively attainable when we're talking about a 20-year time scale for someone who is sufficiently motivated to learn the skills required.

Quote
There are likely hundreds if not thousands of employees at Google and Meta with 20+ years of experience who will not make that level.

Yes, absolutely true. You can get to senior engineer based on technical skills alone. Very hard to get past there without some level of leadership skills, people skills, and frankly political skills that many engineers are either unable or uninterested to develop, not when they can sit back at their lower-stress job and keep bringing in their $300k L5 comp every year.

Quote
I think you're even inflating the number of people who are making E6.

I don't really think so. My last FAANG team, if you went two levels up the org chart from myself, there were about 50 people under a manager at the senior staff or director level, and something like 6-8 of these were staff+ level at any given time. About half of these were people managers and the other half weren't. This ratio of staff engineers to others was pretty typical in my experience. For this reason I don't think people at that level can be reasonably compared to a C-suite executive at anything other than a small (<100 person) startup.

Paul der Krake

  • Walrus Stache
  • *******
  • Posts: 5891
  • Age: 17
  • Location: UTC-10:00
I'd love to see what happened to the population of people who were E5 at Google in 2010. They were already at the tippy top of where a 30 year old IC could reasonably hope to be at the time.

Where are they now? What do they do?

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
Maybe I'm just dumb for not pursuing a job at Google/Meta/Amazon harder, but the one S&P 500 company I did work for similarly had 6 or 7 technical promotion steps. Most everyone was on track to make the first 3. Anyone particularly bright could make it to 4, but 5 and 6 had multiple applicants trying for them year after year, and for 7 you had to be invited to apply.

And I knew people who were working up the chain getting promoted every couple years, but I was also surrounded by 12 other coworkers who all had 20+ years of experience who were all stuck at 3/4. There were also absolutely special teams that were made completely of 5's and up too. Sometimes you think everyone with more experience is getting paid more than you and all receiving the same promotions, but my boss told me that's rarely true.

I knew one guy who did try to make manager multliple years in a row, was rejected each time. He had ~25 years with the company. Last I looked, he did move on a couple years after I left. He would've made a good manager.

AlanStache

  • Magnum Stache
  • ******
  • Posts: 3268
  • Age: 45
  • Location: South East Virginia
In the late 90's when I was selecting a college major I had similar concerns, ie "everyone is going into software that filed will probably be over saturated."  Turns out I probably would have been fine.  I am somewhat interested in transitioning out of my specialized filed of engineering into the wider world of tech but am so close to FIRE that it is probably not worth it. 

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 42
  • Location: Vancouver, WA, USA
Maybe I'm just dumb for not pursuing a job at Google/Meta/Amazon harder, but the one S&P 500 company I did work for similarly had 6 or 7 technical promotion steps. Most everyone was on track to make the first 3. Anyone particularly bright could make it to 4, but 5 and 6 had multiple applicants trying for them year after year, and for 7 you had to be invited to apply.

Assuming that we are thinking about the same company, I agree. But I think that at that place level 4 was equivalent to L5 at Google. Also, I personally know someone who keeps turning down level 5 at that company because the total comp isn't worth it and he doesn't want the job. But you are correct that a bunch of people there would love the opportunity.

clarkfan1979

  • Magnum Stache
  • ******
  • Posts: 3556
  • Age: 45
  • Location: Pueblo West, CO
I realize that this is a FIRE blog, but what is the typical career trajectory for a SE from age 45-65? I've heard that you are either "up or out" You either get promoted or you get released because they can find someone younger to do your job at lower pay. I think for the average of all careers, W-2 income tends to peak at age 50. When does it peak for SE? 

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 42
  • Location: Vancouver, WA, USA
I realize that this is a FIRE blog, but what is the typical career trajectory for a SE from age 45-65? I've heard that you are either "up or out" You either get promoted or you get released because they can find someone younger to do your job at lower pay. I think for the average of all careers, W-2 income tends to peak at age 50. When does it peak for SE?

That was the premise that I've been working from my entire career. Part of my desire to be FI was that I considered every day past 40 to be on borrowed time.

But now that I've been in the industry longer I no longer believe it (maybe things have changed). If you are good at your job at 40+ you can at the very least find contracting work that pays well. But also, my company would hire you. However, if you are the worst employee that barely hung on until 40 you are probably fucked. It's hard to explain why you've been in the industry for 15+ years and can barely do your job. This of course doesn't apply to people who just got out of school. IDK about them.
« Last Edit: July 07, 2022, 10:27:53 AM by PDXTabs »

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
I realize that this is a FIRE blog, but what is the typical career trajectory for a SE from age 45-65? I've heard that you are either "up or out" You either get promoted or you get released because they can find someone younger to do your job at lower pay. I think for the average of all careers, W-2 income tends to peak at age 50. When does it peak for SE?

That's different for everybody. But yeah, if you aren't moving up beyond a "senior" level you can easily max out at 15 years. For SE's that have been in the industry for 30 years, they have gone through both the 2000 and 2008 bust. So there's a large number of experienced people that had to take whatever they could get. It really zapped their will to job hop and they stay put in lower paying jobs longer for a feeling of security.

I've worked with many people with 30+ years experience that never wanted to do anything more than be a simple IC. It's so easy to get mentally burned out in this line of work which is why you see so many FIRE people who are SE's. Your brain is just constantly exhausted. Some of the happiest people were the 60 year olds that just enjoyed having some work to do that made a good wage. It helps in a job when you know that you can just leave tomorrow and it won't hurt.

ender

  • Walrus Stache
  • *******
  • Posts: 7414
I realize that this is a FIRE blog, but what is the typical career trajectory for a SE from age 45-65? I've heard that you are either "up or out" You either get promoted or you get released because they can find someone younger to do your job at lower pay. I think for the average of all careers, W-2 income tends to peak at age 50. When does it peak for SE?

I think this is largely a misnomer.

First of all, the number of total software folks has continued to grow over time - many/most of those are starting out young, so the demographic breakdown is quite biased towards young folks.

To be 50 in tech today, unless you switched midcareer, you'd have been starting out in the early 90s. What this means is companies will be composed of a ton more 20s/30s somethings, purely because that's all that is available in the workforce. There aren't tons of people in their 40s/50s out there available to hire compared to 20s/30 folks, purely based on the historical trends for the software industry.

This leads to the false conclusion that since no one sees as many 40+ folks working in tech, they must all leave tech. But it's more... there aren't as many older folks who are in tech to begin with.

That being said, I don't think there's a clear answer to your question here around peak earnings for SE. If you aim for senior level at the big companies you probably can get there in your early 30s and while you certainly will be able to jump jobs and get more income, you could say it peaks - but stays peaked - for decades at that point.

If you continue to grow past senior (which normally involves a lot more people work, leading larger projects, etc) then your income trajectory can keep going up pretty much indefinitely.

The types of companies that would fire or manage out experienced and qualified folks to replace them with younger/lower pay folks are normally companies that are going to be mediocre/bad to work for in tech long term anyways from an income perspective.

Gronnie

  • Pencil Stache
  • ****
  • Posts: 630
  • Age: 39
  • Location: MN
This - when you have a good conceptual base, the specific language matters little to nothing (I did once get asked to look at an assembler program - that might be an exception to "just google the syntax. . . "). The specific languages shouldn't matter that much if you know what you want to do.

One thing I'm struggling with right now is trying to get other developers to actually do some useful work on a pretty big project - not even a new language just getting used to a somewhat different architecture within the same basic setup (VB.NET-Webforms / Oracle database). And I'm constantly fighting the urge to just say fuck it, stop waiting on them and do it all myself, but I'm just one person who works about 24 hours per week - everyone is going to be better served if the other developers are involved and learn this approach.
If computer languages lack meaningful differences, why do you get resistence from coworkers?  And here you're not even pushing them to learn full programming languages, but just parts of languages.

You mentioned "assember language"[sic], which I think is mixing up assembly language with the tool which turns text into machine code - an assembler.
https://en.wikipedia.org/wiki/Assembly_language

My strongest objection is this: learning one computer langauge does not make you competant writing all other computer languages.  My closest overlap with your idea is I agree reading computer code is a skill that generalizes - but has limits, as you've experienced with assembly language.

In regards to bolded:

I wouldn't say learning one computer language is what's important. It's the fundamentals such as design patterns, software development lifecycle, data structures, etc. Learning a new language is easy (as evidenced by boot camps churning out coders), learning to code well is not nearly as easy.

ChpBstrd

  • Walrus Stache
  • *******
  • Posts: 8278
  • Location: A poor and backward Southern state known as minimum wage country
Maybe all this talk about languages and big-picture architectural awareness is missing the point. Writing code can be done from anywhere. There are fewer reasons preventing U.S. SE jobs from being outsourced now than there were to prevent U.S. factory jobs from being outsourced in the 1970's and 80's. Compared to relocating manufacturing, companies don't even have to make speculative investments in facilities or equipment, they don't have to commit all their resources to unstable governments, and they don't have to deal with logistics or tariffs either. The assumption that developing countries cannot produce millions of very talented SE's will be proven as false as the old claims that they can't handle the complexities of manufacturing or manage quality.

Maybe if there is "hype" around tech/programming/coding careers, it is around the idea that a freshly graduated SE today won't be competing for wages in a worldwide marketplace before we know it. The wages and social luster of these careers could fall as quickly as they did for factory work.

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
Maybe all this talk about languages and big-picture architectural awareness is missing the point. Writing code can be done from anywhere. There are fewer reasons preventing U.S. SE jobs from being outsourced now than there were to prevent U.S. factory jobs from being outsourced in the 1970's and 80's. Compared to relocating manufacturing, companies don't even have to make speculative investments in facilities or equipment, they don't have to commit all their resources to unstable governments, and they don't have to deal with logistics or tariffs either. The assumption that developing countries cannot produce millions of very talented SE's will be proven as false as the old claims that they can't handle the complexities of manufacturing or manage quality.

Maybe if there is "hype" around tech/programming/coding careers, it is around the idea that a freshly graduated SE today won't be competing for wages in a worldwide marketplace before we know it. The wages and social luster of these careers could fall as quickly as they did for factory work.

They tried this back in the 00's and it more or less failed. Some of the rote stuff has stayed in India, but for the most part engineering has stayed in the US. Why won't SE work go overseas?

1. International universities are getting better, but you take the top 20 CS programs, 15 are in the US.
2. US court systems protect the IP of American companies.
3. American culture pushes creativity and high quality work that ultimately delivers higher value.
4. The US already sucks up top talent from other countries. This makes it harder for other countries to gain a foothold.

Ultimately, for even the largest multi-national companies who might have 1000 SE's on staff. Saving 70MM per year is a huge risk for little reward when their entire business depends on their websites and backend services working.

If you saw Google announce "hey we're going to save 3B a year by outsourcing 20000 SE's to India." You would rightly be abandoning your Google stock. They would be risking their entire business in order to gain an extra .25%. SE's make companies a lot of money, and US SE's continue to prove themselves more stable than overseas firms. This will eventually even out, but it could take another 50 years.

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 42
  • Location: Vancouver, WA, USA
Maybe all this talk about languages and big-picture architectural awareness is missing the point. Writing code can be done from anywhere. There are fewer reasons preventing U.S. SE jobs from being outsourced now than there were to prevent U.S. factory jobs from being outsourced in the 1970's and 80's. Compared to relocating manufacturing, companies don't even have to make speculative investments in facilities or equipment, they don't have to commit all their resources to unstable governments, and they don't have to deal with logistics or tariffs either. The assumption that developing countries cannot produce millions of very talented SE's will be proven as false as the old claims that they can't handle the complexities of manufacturing or manage quality.

Maybe if there is "hype" around tech/programming/coding careers, it is around the idea that a freshly graduated SE today won't be competing for wages in a worldwide marketplace before we know it. The wages and social luster of these careers could fall as quickly as they did for factory work.

They tried this back in the 00's and it more or less failed. Some of the rote stuff has stayed in India, but for the most part engineering has stayed in the US. Why won't SE work go overseas?

That ignores companies like Google who have a reasonably large presence in Canada and Ireland. Are US software engineers really that much better than the Canadian and Irish ones? Or the Ukrainian ones that my company employs that are totally worth it (for their niche).

If Germany ever got their business environment together I think that they would eat our lunch. But they never will because they want you to adopt your employees.

Also there is the huge pile of startup funding in the USA. I think that there are lots of reasons that the US remains dominant, but I don't think that it is because US software engineers are any better than Canadian, Ukrainian, Russian, German, or Irish ones. (that list is not meant to be exhaustive)

ender

  • Walrus Stache
  • *******
  • Posts: 7414
Maybe all this talk about languages and big-picture architectural awareness is missing the point. Writing code can be done from anywhere. There are fewer reasons preventing U.S. SE jobs from being outsourced now than there were to prevent U.S. factory jobs from being outsourced in the 1970's and 80's. Compared to relocating manufacturing, companies don't even have to make speculative investments in facilities or equipment, they don't have to commit all their resources to unstable governments, and they don't have to deal with logistics or tariffs either. The assumption that developing countries cannot produce millions of very talented SE's will be proven as false as the old claims that they can't handle the complexities of manufacturing or manage quality.

Maybe if there is "hype" around tech/programming/coding careers, it is around the idea that a freshly graduated SE today won't be competing for wages in a worldwide marketplace before we know it. The wages and social luster of these careers could fall as quickly as they did for factory work.

This fear has existed for decades now. People have talked about it for a long while. It certainly might happen, eventually.

I suspect a non-trivial portion of F500 at this point has outsourced millions upon millions of dollars to "save money" and then undone those decisions.

Most firms paying tons of money such as the FAANG tier players have huge international presences but still pay large compensation to US based software engineers and continue to hire american software engineers.

One point I'd expand on from @FIPurpose's list is (4). This is a major effect that dilutes the top end talent pool abroad.

There will certainly come a point when all high end engineering (not just software engineering, but all types of high paid knowledge work) from the USA could be outsourced. I am not worried about it impacting my current high paying and lucrative software career and most certainly not in the next 5-10 years, which is all that matters from a FI perspective.

ixtap

  • Magnum Stache
  • ******
  • Posts: 4927
  • Age: 52
  • Location: SoCal
    • Our Sea Story
IMO, the bootcamps and YT channels for learning programming reflect something about the nature of programming.

For a long time, it was assumed one needed to go to a university, preferably a prestigious one, and major in computer science to start a career in IT. This, of course, cost tens of thousands of dollars and four + years of one's life.

Then people realized that self-taught programmers were doing just as well, starting their careers earlier, and skipping the student loans. They realized college dropouts like Bill Gates, Mark Zuckerberg, Steve Jobs, and the founders of Google had been more successful, not less, because they got started coding as soon as they obtained basic skills rather than waiting to finish a bunch of irrelevant electives and get their piece of paper degree. The race was on to find a shortcut to learn C, JavaScript, Python and so on.

Today's online content is the most efficient way to learn programming, and most employers have dropped the assumption that a college degree is required. It has become sort of a high-paying trade school career. Here's the thing this reveals about programming: Building software is more akin to rebuilding a truck engine or constructing roof trusses than it is to "knowledge professions" in medicine, law, science, engineering, or even management. Certainly, skill and knowledge is required, but it's not the sort of integrative, multi-disciplinary mindset four-year degrees and graduate programs are oriented towards.

You have a shitty doctor if they don't know a lot about chemistry, biology, demographics, law, ethics, psychology, physics, research methodologies, math, history, languages, philosophy of logic, etc. However, many an 18 year-old has accomplished great things in programming after teaching themselves to write code.

2 consequences to think about:

    1) The billionaire tech founders who have a disproportionate amount of influence nowadays are the same people who skipped learning about history, civics, philosophy including ethics, science, or much of anything about humans. The same is true for many of the IT folks who get promoted to management. They also tend to not appreciate what they don't know.

     2) Coding careers are currently prestigious because the pay is high and because there is a shortage of the skill. If flocks of young people were to gravitate in this direction to pursue high salaries and skip the student loans, then the skill shortage will be relieved and this career path will become something with a social status like being a mechanic or electrician. Not bad work, but the days of programmers earning more than department directors would be over. Granted, there is no guarantee this would happen.


That's not really been my experience.

I've certainly run into a few people who were capable of high level software development without having a university/college degree . . . but they tended to be the exception.  This isn't always true, but the main problem with self taught programmers that I usually find is that they tend to have large gaps in their skill.  This manifests in limited understanding of data structures/algorithms, poor knowledge of coupling/cohesion, problems designing scalable code, and very limited exposure to design patterns.  I think that they get missed by self-taught people because these things don't matter much if you're coding up a small project on your own . . . but they are massively important in large scale software development.

Online content can be great for efficiently teaching concepts, but the benefit of university and college that I see is the completeness of the education that is received.  I see fewer of these big gaping knowledge gaps with candidates who have had a formal education.

Anyone can go online and learn enough of a programming language to be proficient in doing simple tasks in that language.  But that's not software engineering at all.  It would be like calling someone who can write in complete sentences a novelist.  Learning to do some simple things in a programming language (code) is the very simplest gateway to programming.  I'd expect any developer hired to be able to learn and become proficient in a new programming language in a couple of days*.  The non-language specific skills (related to design and architecture) that they have are far more important than that sort of trivial task.


*Except for C++.  Nobody ever becomes proficient at writing C++.  :P

DH was able to write his own job description  because he is that guy. If they can ever hire a good software engineer on this hardware team, he won't look like quite the superstar he is now. For now,, he just kept everyone else from breaking what he spent years putting together and will mentor anyone for better coding practices Although, he does claim to be proficient at C++, so maybe he really is as good as his manager thinks he is...

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
Maybe all this talk about languages and big-picture architectural awareness is missing the point. Writing code can be done from anywhere. There are fewer reasons preventing U.S. SE jobs from being outsourced now than there were to prevent U.S. factory jobs from being outsourced in the 1970's and 80's. Compared to relocating manufacturing, companies don't even have to make speculative investments in facilities or equipment, they don't have to commit all their resources to unstable governments, and they don't have to deal with logistics or tariffs either. The assumption that developing countries cannot produce millions of very talented SE's will be proven as false as the old claims that they can't handle the complexities of manufacturing or manage quality.

Maybe if there is "hype" around tech/programming/coding careers, it is around the idea that a freshly graduated SE today won't be competing for wages in a worldwide marketplace before we know it. The wages and social luster of these careers could fall as quickly as they did for factory work.

They tried this back in the 00's and it more or less failed. Some of the rote stuff has stayed in India, but for the most part engineering has stayed in the US. Why won't SE work go overseas?

That ignores companies like Google who have a reasonably large presence in Canada and Ireland. Are US software engineers really that much better than the Canadian and Irish ones? Or the Ukrainian ones that my company employs that are totally worth it (for their niche).

If Germany ever got their business environment together I think that they would eat our lunch. But they never will because they want you to adopt your employees.

Also there is the huge pile of startup funding in the USA. I think that there are lots of reasons that the US remains dominant, but I don't think that it is because US software engineers are any better than Canadian, Ukrainian, Russian, German, or Irish ones. (that list is not meant to be exhaustive)

I don't think Europe/ Canada has a skills gap compared to the US. The savings a US company would gain by outsourcing to Europe is so small, and then they'd have to deal with a wide swath of new regulations and risk. Outsourcing for payroll savings would be to SE Asia / Africa / SA.

I think the US / EU differential is based on 2 things:

1. The reason to hire in the EU is for expansion and internationalization, not for savings on payroll.
2. Hiring in a foreign country adds more regulation. Hiring in France requires having an HR that knows how to navigate the country's laws, setup benefits there, etc. Not to mention all the additional taxes and benefits associated with the EU. It adds up to where paying 60% less looks more like 20% less once you add it all up.

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 42
  • Location: Vancouver, WA, USA
I think the US / EU differential is based on 2 things:

1. The reason to hire in the EU is for expansion and internationalization, not for savings on payroll.
2. Hiring in a foreign country adds more regulation. Hiring in France requires having an HR that knows how to navigate the country's laws, setup benefits there, etc. Not to mention all the additional taxes and benefits associated with the EU. It adds up to where paying 60% less looks more like 20% less once you add it all up.

While I half agree, which is why I wrote "if Germany ever got their business environment together I think that they would eat our lunch" (Berlin has a tech scene). But Ireland is known as a tax haven, not being a high tax location. Also, unlike with an H1B, the minimum wage to bring in an immigrant is only €30,000 if the job is on the shortage list, which programmers are.

seattlecyclone

  • Walrus Stache
  • *******
  • Posts: 7491
  • Age: 40
  • Location: Seattle, WA
    • My blog
Yeah outsourcing has been a concern for my whole career. Nevertheless, US-based developers remain in high demand and remain highly compensated. Recent improvements in videoconferencing, plus mass trials of work-from-home during the pandemic, have led to more people working in geographically distributed environments.

Though I was initially skeptical about the move away from offices, after trying it for a while I do think that remote teams are a very viable way to build software. In fact on a recent trip to my startup's HQ to do some in-person meetings I noticed several folks would stay in their hotel for the morning to avoid the distractions of the office so they could get some real work done.

One big barrier still remains: time zones. Software development is a collaborative activity. It's harder to make progress at a reasonable rate when your direct collaborators have minimal overlap in working hours with you. It's easy enough to make this work across coasts in North America with a three-hour gap, but collaborating with folks in Europe where it's nine hours off from Seattle is a bit of a challenge, and there's no possible way to meet with someone in India  (11½ hour difference) without one or both parties hopping on a call at uncomfortable hours. We put up with it because there's a worldwide shortage of good software engineers, so we take what we can get even if that means waiting overnight for someone in Switzerland to review your code, or taking the occasional post-dinner meeting so that your Indian colleague isn't always the one staying up late.

That's not to say a team entirely in Asia or Europe couldn't be just as productive as a team located entirely in the Americas: they certainly could, and such teams do exist. They're simply less numerous due to some of the factors mentioned by others already. Much of the capital behind tech startups has historically been located in the US. The investors have a bias toward working with founders nearby, those founders have a bias toward hiring people nearby, and so on. These biases compound to push demand for US engineers up higher, compensation rises to match, and that incentive pulls in people from abroad.

Corporate finance departments would love to grow engineering teams in other countries because the US (particularly the coastal cities) have by far the highest salaries for software development. There's a marked difference even 150 miles north of me in Vancouver, to say nothing of the difference between here and India or China or Eastern Europe. Still, it's a challenge finding people talented enough to contribute to your team despite time differences and possible language barriers, who haven't already moved to the US for the higher pay we have here.
« Last Edit: July 07, 2022, 06:22:13 PM by seattlecyclone »

Paul der Krake

  • Walrus Stache
  • *******
  • Posts: 5891
  • Age: 17
  • Location: UTC-10:00
Big Tech hires people wherever they can find people who meet the hiring bar. That's it. Literally nothing else matters. They all have dev centers in Chennai, Dublin, Vancouver, London, you name it. Well, except China because the Chinese government doesn't let anybody play.

If there was a sudden influx of talented Nepalese programmers, they'd set up shop at 15,000 ft without missing a beat.


ender

  • Walrus Stache
  • *******
  • Posts: 7414
Compensation for high quality folks in lower cost areas of the world is also going up fast.

In a lot of ways you get what you pay for. Folks in India who are cheap are cheap(er) for a reason too - if you find higher end folks there, you aren't getting remotely as much of a bargain as the cheaper folks.

I've heard from lots of people frustration about how quickly compensation has gone up in cheaper locations in the last few years, Mexico/India/eastern Europe are all much less of a bargain than they used to be.

TheOldestYoungMan

  • Pencil Stache
  • ****
  • Posts: 778
1. Your buddy isn't telling you something. You don't make 1.2MM in a year without having a company be acquired or some other contract deal that he was able to leverage.

This is not exactly true at your FAANG-type companies. The friend is "late 40s", which indicates perhaps 20-25 years of experience. Compensation for Facebook engineers with that much experience is around $475k median per levels.fyi. The ones a bit below this median are at the "E5" level, which is your standard senior engineer: solid individual contributor, does a lot of mentorship and leadership at the level of a small team (5-10 people), will often be consulted about larger-scale architectural decisions but usually won't be calling the shots at a broader scale than their smaller team. E6 is a bit higher level of responsibility, will be one of the lead engineers for a larger (15-30 person) team, will actively shape the strategic direction and design for that team, mentor the senior engineers, and usually will still write some code themselves. That's the ~$500k jobs. This is very attainable for someone with that much experience, though it isn't easy to get there by any means, and we can see plenty who are still at E5 and happy enough with their ~$300k compensation and lower level of responsibility.

Compensation ramps up dramatically from E6: looks like the E7s who reported their compensation recently are right in that $1.2 million ballpark. This will often be someone who is a lead engineer for an even larger team (perhaps up to 100 people). As you can imagine there aren't a ton of those jobs to go around, but they do exist, and you don't need to be an acquired startup bigwig to land one. You just need to establish a proven track record of successfully making these higher-impact engineering decisions and convincing the rest of your team to implement them. These big tech companies have engineering organizations large enough that there's room for hundreds of these folks at each company.

Now, it's important to note that these self-reported compensation numbers are heavily tilted toward RSUs at the higher levels. The base salary increases pretty marginally between levels. Recent movement in the stock market may mean that these folks aren't earning quite as much as they said they were months ago when they reported their data to the site.

Well you cut out the second half of that statement where I said "or by reaching the technical equivalent of the C-suite." No, not anyone can just make that E7 level. There are likely hundreds if not thousands of employees at Google and Meta with 20+ years of experience who will not make that level. I think you're even inflating the number of people who are making E6.

If it's like anywhere else, likely there's a band of promotions that are fairly linear with experience. Probably E3-E5. Once you hit higher levels, the percentage of people in the pool getting promoted shrinks exponentially fast. Everyone wants that jump from 300k to 500k and 500k to 1.2MM. My personal guess is that only 20% of E5's will make it E6, and only 20% of them will ever make it to E7. Meaning that only ~2% of employees (ie, if there are 30k engineers, there will be about 700 E7's. A lot of people making 1MM a year, but the odds of making it are still small because the company is so huge)

A major piece of this is that Google stock did +65% in 2021. Like you said, if 30% of their wage is in RSU's, then a year like 2022 where they are down 20% means that their bonus will be half of what it was last year. And the higher you go the more your income depends on stock price. I'm guessing this guy's salary will be closer to 800-1000k rather than 1.2MM this year.
By all means, everything I have to contribute is anecdotal.  But you do yourself a disservice to believe I would have any reason to mislead you, or that I would be unaware of the details.  With a particular set of friends, I'm all up in their business, and watching this particular friend maneuver through his industry over the last several years has been fascinating.  And his advice and counsel has been invaluable for me in representing myself better in negotiations, which has resulted in a complete overhaul in my mindset and eventual compensation.  Of course you know your situation better than I ever could, and I certainly apologize if my story came off as anything other than "while it's certainly possible to have a lackluster job or toil along making decent money, it's also possible to have these crazy careers that are probably not quite as possible in other fields."

So my point was really just to compare tech/programming/coding careers to other technical professions that had been brought up.  You may very well be correct that there are thousands of people in these industries stuck below a "political" ceiling (more on that in a bit), but compared to other more classical technical fields, the opportunity to advance to that level is much higher, in my estimation.  Within my industry I don't think you get to without leaving the technical space entirely behind and moving in to a role that would be as well served by an entirely different academic background.  It's a data point, that is probably irrelevant to alot of folks, especially here, as you may not be planning/expect to work that long.

I was also trying to demonstrate that in tech in particular, folks not being aware of their value is keeping their wage artificially low to an extent I'm not sure has ever been seen before.  And to some extent it's a "once you know, you know" sort of thing, but.  Damn.  Now that I know, it's crazy frustrating not being able to convince people.  I was literally on the phone with a prospective hire saying "I'm not supposed to tell you this, as you're technically negotiating with me, but if you ask for more money they'll give you more money, I'm just not authorized to offer it."  And then 24 hours he just accepts the original offer.  Like, wtf, dude, it's going to take me 3 YEARS to get you up to what you could have STARTED at *flips table*.  And among management circles I'm seeing more and more folks bringing this up.  We are seeing employees across the board just not ask for any more.  We're not sure if it's generational or what, but the "request for additional compensation" are down something like 95%.  That is, just, I mean, fuck yo.  That number was constant for the entirety of our historical record going back 30 years and then it just tanked.  Nobody at the C-suite level is at all interesting in investigating it either.  Definitionally a non-problem for them.

I think you've done enough to prove my point though.  That social inertia supporting the narrative that "nope, things are shite, but some people are super lucky" is powerful.

On the political thing:

You're representing a general problem with a lot of workplaces as somehow relevant to a comparison between fields.  Most of the issues you describe are a problem everywhere. 

If you are under any illusions that your attitude and how easy it is to work with/near/around you aren't affecting your compensation and opportunities, you live in a fantasyland.  Nobody can be House without a team of writers creating the scenarios and feeding you the lines.  Don't Be An Asshole.  Tell The Truth.  Do Your Best.  Stop believing cynics who conflate failure with conspiracy.  If it's all good luck and timing then part of that is trying again after bad luck and bad timing.  Whether you're a teacher or an engineer or a framing contractor or a long-haul trucker, if a neat opportunity comes up that needs 4 people and you're the 5th asshole, don't be surprised when you don't get picked.  And if you don't get picked and there's genuinely no problem with you, and it happens consistently, that's a mismatch between you and that job, and it's time to move on.  If you want a career.  If all you want is a job, then by all means, soldier on.  If no opportunities are coming up for anyone, again, you have a choice.

It's important that this narrative of faultless mediocrity exists.  Some people need it as a warm blanket to wrap around themselves and keep out whatever their inconvenient truth is, and I say this with absolutely no judgment, it takes all kinds to have a society.  Different people like different things and have different priorities.  And I was there myself, I legit thought I would hate managing people, but I've never been better at anything.  My failure to embrace some messy non-technical human aspects of the workplace was holding me back, until I decided that it wasn't.

I manage a team that includes some far older folks who, for whatever reason, couldn't pass the test (field requires licensure).  I do what I can to make sure they're fulfilled, but that's a hard technical failure that means they can be a crucial part of the team, but probably not meaningfully LEAD the team, even if they are leaders on the team.  The most common cynical failure in my industry is among those that cannot pass the test and cannot reconcile their own personal narrative of I AM AWESOME against all these other people who could pass the test but are NOT AWESOME. They develop a narrative that includes the test being representative of flawed knowledge and an indicator of a lack of competency.  That's objectively absurd and observably false in the quality of work output, but there it is.  Super common, super widespread.  Bit tragic, but the Ven-diagram of those folks is a circle located entirely within the "people nobody likes working with" circle.  It isn't a coincidence that being so unlikable nobody wants to study with you results in you having a harder time passing a test.  It might even be a feature.

Some of the people on the team could pass the test but consistently fail to pay attention to important details (they require additional supervision/support).  That inability to trust in the technical capabilities is not a hurdle they can't overcome, but it slows them down powerfully, which is a shame.  As a manager I have to carefully not provide the additional supervision/support using folks that are cynical about not passing the test.  That situation tends to escalate and rarely ends with either party having a moment of clarity that improves their situation.

Some of the people on the team are ready to advance in spirit, but haven't had the opportunity yet to demonstrate competency in some key area.  They are in the queue and my job as a manager is to help them find opportunities, coach them to look for them themselves, and support them in either.  And console them as best I can if they have the "grey hair problem" of simply being too young for whatever bullshit corpo logic won't trust young people with management.

Some of the people on my team are technically capable, but sort of assholes, so while I will do my job regardless, I'm going to naturally tend to help others first.  And I am honest with them and with others who inquire about them.  "Yea Jon is decent enough at his job but nobody really wants to work with him."

There's no room on my team for people just doing a job, so I don't hire those people.  I do recommend them to some other managers who have plenty of those types of positions, it's just a quirk of my team that we don't.

And it is every person's job on my team to fucking leave if I suck at what I'm doing and they aren't content with what they're getting.

None of us does anything related to software development but I'd wager I just described 90% of workplaces with more than 10 people.

That sort of "politics" is how the world works.

In 20 years of working, I can't count the hundreds of coworkers who were stuck or not advancing because of issues with what's outlined above.  Maybe 3 or 4 were screwed over by actual negative corruption-based "politics."  To the extent that now when I hear "it's all about who you know" I just auto-translate that into "everyone who knows me knows I'm an asshole/incompetent/reachedthelimitsofwhatIcandogivenmypeculiarsocialanxietydisorder."  You choose who you know.

And you know it when you see it.  High value people will own their decisions.  100% of the time.  And it isn't a failure when that happens.  You are ready to move on, you make your play for a higher position, you don't get it, you have a choice.

I have the utmost respect for the members of my team that made the choice to stay where they are, and be happy, and do their role.  I fire the ones that decide to "fuck you" and retire on the job.  I actively coach my best folks to take over for me, as positions like mine do become available and I certainly don't plan to be in my role forever.

One last note on outsourcing concerns:

The company I work at is actively trying to figure out how to perform engineering work overseas, and it is fucking comical the issues we have performing engineering work internationally, nothing at all like what I imagined the problems would be:
1.  Americans are lazy-racist.  So, we want to eat your food and listen to your music, but if you talk funny we can't be bothered.  Be fluent in English or get the fuck off the conference call.  Hilarious watching folks who could be in a position to run a team across 3 time zones, representing 24 hours a day of work, set their own schedule, have an excuse to miss or be late to anything, and make 2x or 3x the money, disengage because they have to concentrate a bit to make out what someone is trying to say with their thick-ass accent.  Too bad, more for me.
2.  Americans are done at the end of the day.  Fucking done.  I'm out, chair spinning, done.  You want to work with me in your 3rd world time zone?  Wake up at 2am, work until midnight, we can't be bothered to stay at work just a little later or come in just a little earlier.  The US is positioned to be the EASIEST place for everyone else to work with, but my calendar is full of 3am meetings because "MeEtInGs ShouLD be At nIne."  Thanks Karen.
3.  The US government is great about requiring design work be performed by US citizens/residents.  And the US government is such a huge customer, globally, there's very little anyone should worry about your job being outsourced.  There will always be a US contingent, and they're so fucking awful for anyone else to work with, they have to be large enough to do the work themselves.

I thought the problem would be finding English-speakers or competent employees.  Nope.  These folks learned a whole other language, many of them got educated at US universities at horrific expense both in dollars and personally, and they still struggle to pull the work out of the US because the coordinating personnel in the US can't be bothered to show up to the meetings unless they're entirely on US terms, and literally back out or pull the work back to the US at the slightest miscommunication or technical disagreement.  "These foreigners just don't get it".  It's this glorious American entitlement that serves as a sort of backdoor protectionism.  Also the units.  The units are a problem also.  As long as there are places in the US that require plans be submitted in scales of "fathoms per league" your job is safe...

Really wild to observe.

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2073
  • Location: ME
    • FI With Purpose
1. Your buddy isn't telling you something. You don't make 1.2MM in a year without having a company be acquired or some other contract deal that he was able to leverage.

This is not exactly true at your FAANG-type companies. The friend is "late 40s", which indicates perhaps 20-25 years of experience. Compensation for Facebook engineers with that much experience is around $475k median per levels.fyi. The ones a bit below this median are at the "E5" level, which is your standard senior engineer: solid individual contributor, does a lot of mentorship and leadership at the level of a small team (5-10 people), will often be consulted about larger-scale architectural decisions but usually won't be calling the shots at a broader scale than their smaller team. E6 is a bit higher level of responsibility, will be one of the lead engineers for a larger (15-30 person) team, will actively shape the strategic direction and design for that team, mentor the senior engineers, and usually will still write some code themselves. That's the ~$500k jobs. This is very attainable for someone with that much experience, though it isn't easy to get there by any means, and we can see plenty who are still at E5 and happy enough with their ~$300k compensation and lower level of responsibility.

Compensation ramps up dramatically from E6: looks like the E7s who reported their compensation recently are right in that $1.2 million ballpark. This will often be someone who is a lead engineer for an even larger team (perhaps up to 100 people). As you can imagine there aren't a ton of those jobs to go around, but they do exist, and you don't need to be an acquired startup bigwig to land one. You just need to establish a proven track record of successfully making these higher-impact engineering decisions and convincing the rest of your team to implement them. These big tech companies have engineering organizations large enough that there's room for hundreds of these folks at each company.

Now, it's important to note that these self-reported compensation numbers are heavily tilted toward RSUs at the higher levels. The base salary increases pretty marginally between levels. Recent movement in the stock market may mean that these folks aren't earning quite as much as they said they were months ago when they reported their data to the site.

Well you cut out the second half of that statement where I said "or by reaching the technical equivalent of the C-suite." No, not anyone can just make that E7 level. There are likely hundreds if not thousands of employees at Google and Meta with 20+ years of experience who will not make that level. I think you're even inflating the number of people who are making E6.

If it's like anywhere else, likely there's a band of promotions that are fairly linear with experience. Probably E3-E5. Once you hit higher levels, the percentage of people in the pool getting promoted shrinks exponentially fast. Everyone wants that jump from 300k to 500k and 500k to 1.2MM. My personal guess is that only 20% of E5's will make it E6, and only 20% of them will ever make it to E7. Meaning that only ~2% of employees (ie, if there are 30k engineers, there will be about 700 E7's. A lot of people making 1MM a year, but the odds of making it are still small because the company is so huge)

A major piece of this is that Google stock did +65% in 2021. Like you said, if 30% of their wage is in RSU's, then a year like 2022 where they are down 20% means that their bonus will be half of what it was last year. And the higher you go the more your income depends on stock price. I'm guessing this guy's salary will be closer to 800-1000k rather than 1.2MM this year.


...

I appreciate the push back. You guys have pushed me to apply to some new jobs. I'll be done with my MS in a month, so it'll be a good time to transition to something new.

I applied to Google and have a HR call set up in a couple weeks, and I've applied to a couple other positions. I'm going to insist on 200k base pay minimum. We'll see if I can get traction on it.

I saw pay going up quite a bit last year. I saw emails coming in at 120 - 140, then early this year I see more emails in the 180 range. So perhaps 200 is possible, maybe I'm under selling myself. I'll see how the HR reps respond.

AccidentialMustache

  • Handlebar Stache
  • *****
  • Posts: 1080
I'd have to guess if that's more than just a "senior" position you're underselling yourself, particularly if you're in the bay or redmond areas, although from what I know of google they love to go heavy in stock, so the cold hard cash quits ramping up pretty quick.

I've never applied because (in the past) they (FAANG) were always like, "move to CA" and I was like, "no" and found other gigs.