The reason FAANGs/etc are willing to pay $300k-600k for "high-end" mid-level engineers is because they stand to recoup many times than per employee. Nothing to do with shortage of high end mid-level talent.
Facebook, Google, etc are some of the most profitable companies in the world ( outside of finance of course ).
https://www.foxbusiness.com/technology/tech-companies-highes...
> there is a glut of talent
If there is a glut of "low-level" engineers it's impossible for there to be a shortage of high-end mid-level engineers as those mid-level come from the low-end engineers.
Besides, the tech industry historically prefers to hire young people and push out older ones.
https://www.techrepublic.com/article/tech-companies-admit-to...
So if there is a lack of "high-end" mid level employees, they aren't doing a good job of developing their younger "low-end" employees.
Or it's all just bullshit used by the tech industry to offshore more jobs, import more employees and create downward wage pressure on "high-end" mid level salaries. Just like with every supposed "shortage" of "talent" we've ever had.
Why would a company pay more than they need to? I would pay 4x the price for grapes if required. I don't as I would prefer to spend less on grapes.
> it's impossible for there to be a shortage of high-end mid-level engineers as those mid-level come from the low-end engineers.
Unless there is something that prevents from from becoming mid-level engineers. Like companies that don't hire junior level engineers at all and have mid-level be the entry level.
I think it's because they could still use more engineers to do what they want to do, and they believe that great talent is way, way better than good talent. They want pretty much everyone to think "working at FAANG is the best financial option for me" and to apply, so they get their pick of the talent pool.
There is the prestige factor. And of course pressure from the employees. If you are making $600K per employee and it's public, they'll demand more.
> I would pay 4x the price for grapes if required. I don't as I would prefer to spend less on grapes.
But you do. That's the point. If you make $600K and another person makes $100K, you are far more likely to buy grapes whenever you want/need rather than waiting for the grapes to be on sale.
> Unless there is something that prevents from from becoming mid-level engineers. Like companies that don't hire junior level engineers at all and have mid-level be the entry level.
But the tech industry favor junior/younger employees. Ageism is a thing in the tech industry.
Remember BlackBerry? Local comp, prevailing wages, "competitive offer" from the "local market". Good relationships with local colleges. No stocks.
A competitor (Apple) paying much more got pretty much all the kids from the schools around Blackberry to apply there first and then go to BlackBerry if they didn't qualify.
Blackberry didn't get acquired. It just got crushed.
But the company was right, it didn't need to pay more to attract local "talent".
i.e. 1-2 promotions from new grad level you can get to 300k total compensation (including salary, stock, and bonus) from most FAANG.
So, yes.
HR, marketing, sales, etc. - while still paid well - are not compensated at the same level as engineers, especially when comparing by years of experience on the job.
I was going to point out several reasons why this statement is false, but you went ahead and falsified it later in your own comment.
> So if there is a lack of "high-end" mid level employees, they aren't doing a good job of developing their younger "low-end" employees.
Seems like by "impossible" you mean "avoidable if you allocate enough time and resources".
That is a faulty assumption that cannot be true if in conflict with a bias. For example what is your data driven definition for a high-end versus low-end engineer? The answer to that question is almost certainly subjective.
In my experience employers optimize for hiring and onboarding first. Everything else is a secondary consideration that impacts tools, delivery, quality, and so forth. Employers could optimize for faster delivery and higher quality code, but that would mean fewer frameworks and abstraction layers which harms speed of hiring and speed of project onboarding.
From a purely numbers perspective that is absurd. Hiring and onboarding are one time problems per employee and are prioritized over concerns which cost the company significantly for the life of that employment. It isn’t about numbers. This isn’t about numbers explains the high pay rates for developers.
It’s about having employed developers already available.
So can other companies that don't pay anywhere near as much.
Anyone working on high-end engineering, could you please give some color here? Is it very hard or impossible to make a move from let's say a web developer to a high end engineering role?
What are the some examples of those roles?
If the jump is doable, there should be some training available for anyone wanting to make that investment. Are there any?
* Build out systems from scratch
* Maintain those systems (using the most arduous-but-verifiable methods)
* Maintain security of those systems
* Scale those systems
It means dealing with the nuances that app developers don't love. The jobs that used to be relegated to the "IT Guys" in the organization running the datacenter. With infrastructure-as-code, K8s, etc. it's not unlikely (in fact arguably the best idea) to maintain the "deploy" logic alongside your app as much as the app code itself.
Most app developers don't like doing this. It means tweaking, tinkering, testing, re-testing, re-re-testing and edge cases that break main usage cases. It means checking your app works in Internet Explorer as much as it does in Chrome and that every layer of your SSL configurations are right. It means pouring through five generations of AWS documents that may or may not be valid any longer (I'm looking at you, Launch Configurations!).
But it also means ease. It means your app developers can get their code to production safely, securely and capable of scaling effortlessly. It means your business team doesn't have to "wait" because something needs to be deployed in the middle of the night because your work has built in health checks, canaries, etc. that prevent a shitty deployment.
A friend once said "DevOps means automate all-the-things" and I agree but it's just the start of that role (and the exact reason that role can get paid the way it does). A truly great DevOp will have a near-infinite level of understanding of "how" the systems work from top to bottom but ALSO they are willing to step into anyone ELSE's code in the organization to learn and help optimize it for the steps outlined above.
Cloud certs help but honestly I think most folks I've seen doing it are just people that got fed up with a broken deployment one too many times and took it upon themselves to find an alternative.
One part is pure numbers game: apply everywhere that pays well until you get some interviews. This may take a while.
The other part is practice: can you figure out the sort of questions that those companies ask? If not, can you do so if you practice enough?
Personally, I did the jump in two steps. This was ten years ago, but I've seen people do similar more recently. First I found a company with interesting work but still not a lot of prestige (after getting rejected, mostly silently, by dozens of others on LinkedIn). This gave me a lot of hands-on experience with the non-pure-algorithmic sorts of questions that I'd be asked in future interviews (like "what happens when you visit google.com" or say, around how internet networking and web service stacks work). This didn't increase my pay, though - but it was a place with a more conversational interview style plus a smaller pool of candidates, so my desire to learn came through and counted for more.
Second, I continued applying and bugging recruiters (thought not quite as frequently, since I was busier at work now!) until I got some interviews at higher paying places. Failed a couple, succeeded at one, got a 60% raise. It got easier from there since recruiters use company history as a big heuristic.
Or in other words once you got in, did things get way more difficult / stressful?
Stress level was about the same as a result: on one hand, I had more to lose - my other jobs hadn't paid nearly as well. On the other hand, I found I had a broad enough base of skills to be useful immediately plus was becoming more confident in my ability to learn things.
I worked some jobs in "low engineering" as described here, for several years. I got into this new Android thing, and published some relatively successful apps on the side, before convincing my employer to let me build their Android app, which was also reasonably successful. (I also broke into some light algorithmy stuff to improve ad serving/ad sales for that employer, though it was entirely trivial compared to what "elite" shops were doing.)
I believe that skill was the key to getting contacted by a Google sourcer - there just wasn't much of an external talent pool for it at the time. I failed one interview after insufficient prep, a delayed flight, and very short sleep. They called me again a year later and I prepped some, got in early, and went in fresh.
I imagine ML is maybe the closest thing to an analogous "door-opener skill" over the last few years, but I'm not confident about that. Research roles may really emphasize the sterling academic credentials, and for applied ML roles, Kaggles don't give experience crafting a data set and productionizing a model.
The barrier to the former is practice and knowledge of fundamental algorithms. There are a lot of algorithms that come up in practice, and it can be intimidating to learn the first time.
As the parent mentioned part of the problem is that engineering productivity as measured by dollars/engineer is proportional to the profitability of the firm more so than the skills of the engineer. High end engineering firms are highly profitable and select the best engineers. There are diminishing returns to hiring more engineers so companies prefer to hire the number they need at the maximum competency they can pay for.
IIRC 2 decades ago engineering was more evenly distributed in salary expectations as there weren't as many mega cap companies, and the ones that did exist had the philosophy that they should hire more engineers rather than better engineers.
The idea was there would be one software architect called the Metaprogrammer who would write the design and specification for the program. All the other programmers would implement this specification in as straightforward a way as possible without making any design decisions. If a design decision comes up, they refer it to the Metaprogrammer. This way you can hire large numbers of cheap low-level programmers, leveraging the skills and experience of a few experts. The idea was ultimately that the mundane code should be auto-generated.
It took Microsoft a long time to recover, if it ever really did.
This requires good theoretical foundations with solid engineering skills.
It is extremely hard to get these. Most CS majors don’t know much CS - top grads from top US schools undergrads are clueless usually.
That’s why you get projects like Hadoop- a large scale systems project written in Java instead of systems languages - because the engineers are poor quality in top companies as well.
I do not think that being written in C++ would have solved any of the problems we had with it. The biggest issue was the thread replication problem on writes (each write is replicated 3x, and each operation is done synchronously with a thread. Lots of parallel writes will mean tens of thousands of threads). Async was known and possible at the time, and I think even fixed upstream.
Java doesn't share machines well (at the time it never returned memory to the operating system, this is fixed now), but your hadoop machines shouldn't be shared. If you want to run a monolithic server, java will do just fine. The garbage collector will work fine unless you do dumb things (which I've also done!)
I worked in that space once. You get paid more doing web development.
Of course, web development can be interesting and problem-solving for some, depending on the job and the person. I just mean to say that money isn't the only criteria that some use to evaluate jobs.
Another reason you don't find many people with this experience is that there aren't many jobs for it. Going back to my cryptography class example, if I don't have the need to use the info after taking the class, then I'm not going to remember it.
That said, there should be plenty of candidates who are willing and capable to learn this stuff if companies would actually train people.
What defines a high performance engineer? If we are talking about 10x engineers, then I would argue that level of performance isn't likely to be reachable by most people and teaching plays less of a role.
I mean, I would love to be a 10x dev, but I don't think any amount of training will make that happen. I'm just a shitty mid-level and have to live with that.
Start at the 45:00 minute mark.
That's a 10x engineer to me.
But maybe that's related to this:
"That's a 10x engineer to me."
The definition changes from person to person.
The two books I think had the most impact were Mining Massive Datasets by Ullman et al, and Data-Intensive Text Processing by Lin & Dyer, but neither is very cutting-edge now.
I've never worked at a FAANG, but I've had a ~40% interview success rate with them.
My advice would be:
- If you're early in your career or want to switch subspecialties for higher potential remuneration, be willing to take a slight pay cut or work for a slightly shady/low-prestige company for the right experience.
- Actively maintain a detailed profile on LinkedIn. It's a shitty site/company, but that's where the recruiters are. Another tip I've used to get interviews is to do a search for recruiters at a company of interest, and just visit all their profiles. They'll get the notification, and if your profile has the right keyword bait, they'll reach out. Probably more effective than cold submitting a resume through their website.
- Be really lucky. There seems to be a huge amount of variability in terms of how well interview questions match your experience/competencies, as well as being lucky in picking sub-specialties in technologies that end up booming. Also I'd say my personal productivity across all my jobs had probably a 3x variation, so be lucky in that wherever you end up working happens to match your personal strengths and weaknesses. Productivity (and promotions/experience to showcase in interviews) is not just a function of the developer, it's a function of the developer plus the working environment.
A final comment I'll make is that I have a STEM BS, but it's not in CS. Instead I gave myself a virtual CS degree by working through textbooks over 3-4 years, covering the entire course curriculum of a CS undergrad. I'm probably lucky in being temperamentally suited to completing that sort of project.
I don't think there is a clear, unambiguous process but the gist of it is that to get there you need to continually take on larger and more complex tasks. In particular try and find your way onto greenfield projects where you can meaningfully contribute to system design (or at least observe "high-end" engineers engaging with these tasks so you can see how the process looks from "the inside"). If you can't find those opportunities in your day job, either try and find a new day job or try working on OSS projects.
There's a significant group of people who follow a path like: "get an internship at a company with a known brand, then get more and better-known full time interviews as a result, then get one of those well-known jobs and as a result get EVEN MORE interest from recruiters" which must be nice.
If you aren't at one of the schools those companies hire interns from, it's definitely a lot harder, but still far from impossible.
I bet there's a set of 20 or so schools, though, that make up a disproportionate amount of those high-paying jobs, though certainly the long tail is very long.
You are putting schools of vastly different calibers in the same bucket there.
One thing to remember is that pay might be bi or multi-modal but that doesn't mean the work is actually likewise shared out by "performance". There are lots of reasons other than merit why people might end up in a lower or higher paying position. You'll also find people going up or down between these positions over their careers. A normal one from my experience is people taking big paycuts to work in Europe.
If the set of people who are interviewing you by luck happen to prefer interview questions that match your strengths, you get the job; if they instead happen by luck to prefer interview questions that match your weaknesses, you don't get the job. The latter is an anti-loop.
I don't think you see it much anymore, but I wouldn't be surprised if it does still happen from time to time.
Depends. What was your major? Where did you study?
Not sure I agree. Seems more there is a shortage of housing in SWE-heavy metro regions. I have so many friends from college who graduated with computer science degrees and ended up in non-engineering roles -- because of a total mis-match between SWE pay and housing costs, especially in the Bay Area where the jobs used to be.
Now, before anyone cites FAANG L6+ salaries, note you dont get into those after graduation, and not everyone gets into those roles. Also note, for the majority of non-public SWE roles with "high" total comp, you cant pay rent with total comp stock/equity, you pay rent with cash comp.
Also, before anyone cites the cost of a studio apartment in California, note not everyone is single and not everyone wants to stuff a family into a studio apartment.
All this may well change with WFH and remote-work, which will open up talent pools across the US and the world.
Sure you can, you just sell it as it vests. Which is the commonly-recommended thing to do.
At a public company RSUs are so liquid they are damn near as good as cash. Once you're on the vesting treadmill they're hitting every quarter, or even every month. That's not much different from a paycheck.
Yeah there's market risk that dictates the actual value, but when you're getting your salary again as RSUs it's still a boatload of cash regardless of market performance. Cash that you can pay for things with. Like rent.
Sure. Anyone want to purchase my vested Series A company RSUs?
Lets be fair -- FAANG isnt complaining about lack of talent -- mostly smaller pre-IPO or early stage firms are complaining, which is why my original comment noted "non-public companies". Your view is correct only for public companies and a handful of private companies which have an active market to liquidate stock and options.
Including the private companies trying to spin it as compensation. They are lottery tickets, barely worth anything.
Also, before anyone cites the cost of a studio apartment in California, note not everyone is single and not everyone wants to stuff a family into a studio apartment.
I think ppl way overestimate living expenses relative to wages when making this argument. http://greyenlightenment.com/2019/01/02/the-sam-vimes-boots-...
just break down the numbers:
If you make $210k/year, after taxes you are still taking home $135k/year. In Silicon Valley, the median rent for a one-bedroom apartment is $2,300 a month. So you are still left with $107k. Not bad. Add $1,500/month for other misc. expenses such as food and health insurance and internet access and phone plan and car payment for a crappy car (no need to splurge). Still have $89k. This is not even counting stock compensation or sign-on bonuses or other perks. Of course, if you add children to the equation, expenses rise dramatically, but this can be offset to some degree by having a double income family.
$210k is the lowish end of FAANG. Most people are not expecting to have kids until later in life . You can also borrow from equity. The notion that stocks is not cash is wrong. If you are fully vested and deep in the money, it is effectively cash.
OK -- I call the bluff. Anyone want to purchase my fully vested, in the money stock from my Series A company? Please contact me offline, contact info in profile. I'll post later how many cents-on-the-dollar people quote for the stock. This alone is worth a whole HN post, and should be an interesting experiment.
He's responding to a discussion about private stock. Also, public companies arent the ones complaining about lack of talent as much as private ones trying to pay people in private stock mismatching market rents.
What did they do instead?
Unsurprisingly, they don't work as software engineers at the moment.
They are technically part of the group of potential employees for technical work, but they are arguably worse than someone who skimmed Python for Dummies.
Perhaps true, but this:
> I know a bunch of CS degreed people who got out of virtually every coding course in university.
is arguably a different problem, because CS isn’t Software Engineering, though the right focus within CS study can be a good preparation for work in software engineering.
> They are technically part of the group of potential employees for technical work,
If they aren’t working as software engineers and aren’t seeking jobs as software engineers, are they really?
Practically, no, but for the purposes of surveys and government reports, yes.
Training for professional roles (like engineering) is essentially vocational training. There is an industry need that drives the curriculum requirements.
The issue isn't lowering the bar. For a new grad/junior the bar is often lowered to the point of "can you do FizzBuzz in the language we use?" (and there are a lot who can't do that).
Rather, the issue is the "we need to solve problem XYZ" and have the developer figure out how to solve it.
For example, I just finished debugging a problem of an application that would run fine in the IDE, but fail when run on the command line when packaged into a jar. It turned out that the cause was that you can't open up a File inside a .jar (but you can open up an InputStream).
It got passed to me when the developer failed to get it working and gave up on the problem. The happy path failed.
That isn't a "lower the bar" thing - the developer who wrote it can write reasonably complex code. It's a lack of problem solving of the unknown problems.
This sort of problem isn't something that is easily tested by adjusting the bar. Its a "we're graduating people who don't have problem solving skills and are finding that those skills are rare."
Smaller shops that don't have the luxury of hiring many developers may find that only 5-10% of their devs have the necessary problem solving skills... and that's a hard pill to swallow.
Those skills can be cultivated. Some get there through shear grit, but it takes time. But this is where jumping from one job to another gets problematic - it takes time. If someone is switching jobs each year its harder to know if they've gotten to the point where they can solve problems.
I understand the need for the elite to be brain surgeons, but for a vast majority of professions, the filtering for elite is not conducive to a healthy village.
Leetcode is fine, but the trend I’m hearing is that it is getting more and more absurd and somewhat becoming our version of the same gate-keeping that makes finance, law, politics, etc bad.
I’m hopeful overall since you can’t bullshit good software. Over time, the less elite can make better products and make the gatekeeping look stupid when it’s all said and done.
This is mostly, but not completely true. There are other paths. I was recruited by a large bank to come interview for an IB position from a recruiter that specifically looks for talent outside of the Ivy's. What made me stand out from my peers was the fact that I served 7 years in a Special Operations military unit, had a perfect GPA, and multiple high recognition internships all while a dual major.
I turned down the offer as I had friends that went that route and either burned out or simply hated their jobs and I didn't want that, but the point is that there are other paths into IB then going to an Ivy.
Filtering for surgeons really is:
- Who can afford a completely unrelated undergrad before even applying to med school
- Who can afford to fly and meet with hospitals for residency spots
- Who can be the most sleep deprived during residency (completely useless)
> Leetcode is fine, but the trend I’m hearing is that it is getting more and more absurd and somewhat becoming our version of the same gate-keeping that makes finance, law, politics, etc bad.
Really, it's possible to bypass leetcoding by just taking a good algorithm and data structure class.
In other words, if they don’t have to lower their standards for financial reasons, they just don’t.
Shouldn't that term be reserved for things like quantum computing, particle physics and fusion reactors and stuff?
Isn’t that just splitting the “E” in STEM? STEM ⊃ Engineering
(EDIT: since you are really talking about SWE and not “classical” engineering, maybe its more splitting the “T” than the “E”; still, leaving out a lot of STEM.)
Could you clarify what qualifies someone as a high-end SWE, and what would relegate someone to being a normal SWE? Is it just dependent on employer?
If your employer feels that it is competing with FAANGMWSTXblah, they consider you a high-end SWE.
If your employer feels that software development is a cost of doing business, you are a normal SWE.
If your employer feels that everything can be outsourced, you are the cheap glue that holds things together.
If your employer is in the business of providing the outsourcing, you are probably a digital sweatshop employee.
If you recognize yourself in any category other than that, it's time to move.
T1 companies invest in their reputation, tend to have long and capricious interviews, and pay obscenely.
T2 companies cannot afford to play that game against T1 companies and so try specifically to hire on different merits - they have a flexible vacation policy, they look for people passed over by the T1 interviews, etc. They are hiring looking for bang-for-buck.
T3 companies generally don't have either the technical expertise or bureaucratic structure to properly hire tech workers. They are nearly rolling dice.
There are many more T1 companies than FAANG, and interestingly, the company does not even have to be big or successful. It requires fat stacks of cash, but this could come from VC.
Devs with a few years experience at T1 companies are "marked"; interviews at other companies are easier, and you're paid better than coworkers if you go to work at a T2 company.
So, yes, it's kinda dependent on employers.
There's another level of people who are the sort with a reputation that means the leetcode-hazing employers wouldn't dare force them through the usual gauntlet (as they'd refuse), but that's a vanishingly small set of folks. And anyway, I think a lot of them (but not all!) end up doing more "soft" work than banging out code, by the time they're in that phase of their career.
People who see their job as designing large systems will, over time, lose contact with coding. After that they will lose a critical feedback loop that informs their architectures, and you'll get architectures that work on paper but not in reality.
Back when I was at Google they made it clear that it is important that interviewers identify such people in the interview process, and not hire them if their willingness and ability to code were not up to snuff. It was OK if they had a string of architect jobs.
What is actually needed is the ability to be down in the weeds, working at a low-level, while keeping an eye on high level concerns and an awareness of how what you're working on will evolve over time. So yes, you design the large system, but have to be a major part of building the prototype. Then make sure that, as more developers are brought in, they learn the tribal knowledge needed to both maintain coding standards and the high level design.
Otherwise, you don't apply, you just have a resume online that looks like that of someone who would have that experience, and FAANG recruiters will already be reaching out and shepherd you through the process till you get to an interview.
But while the recruiter sets a relatively low bar for what you should look like, the interview will then set a relatively high bar for what you should look like (and probably overly specific bar). So you need to make sure you have the ability to pass such interviews with flying colors, which itself requires a different skillset/training (maybe 50% overlap with your day-to-day skills).
Again, remember during this whole process, what is most important is "do i look like someone who has these skills", which is slightly different from "i am someone who has these skills" or "i am someone who could develop these skills if needed". The latter only matters once you start at your new job.
They want the golden childs. They want 5-10 years experience but still balk at anyone aged over 40. You have to have an "upper level degree" but then again they don't want someone who spent too long in school. You need a breath of multi-disciplinary experience but also know absolutely everything needed to "hit the ground running" in their very narrow field. And of course they must be a good "culture fit". At anyone one moment there are perhaps ten such people on the planet.
I have met some of these people. They do exist. They are essentially walking professional resumes. They look great on the corporate website but rarely accomplish much practical work before they are off to live on a different website at an even higher salary.
To make $250k+, honestly you just need to be able to ace a random assortment of Leetcode level Hard problems under pressure. Which is actually a very tangible and unbiased skill. To get in the door of that interview in the first place, now that can be a challenge without the right kind of experience. But it's not impossible to gather that right kind of experience, without an Ivy League education or advanced degree, by gaining experience on the job for several years at a lower tier tech company or startup.
And then for some lucky few, a $200-$300k mid-level engineer salary can grow into a $1M+ salary without any promotions, e.g. every mid-level and above engineer who joined Snapchat two years ago. That's the real holy grail.
more malleable
faster learning (studies show working memory falls with age)
not weighed down by family and other obligations
flexible hours due to fewer obligations
no 'baggage'
no old, ingrained habits
Unless you're some kind of expert in "big data" / Tensorflow / PyTorch / statistical wizard that is the current hotness, it seems a bit crazy to be making this kind of money for high end cloud / IT work. Or maybe I'm just really underpaid.
That said, the contracting company I work for is getting paid around $330k annualized for me, so maybe when the option to hire me comes up in a few months all I need to do is ask ... aw, who'm I kidding. I don't know what I'd do with $300k a year. Put away half of it and retire early, I guess.
My girlfriend works a lot harder than I do for $45k. There but for the grace of God go I.
Business development is almost more important than actually doing the work, and overhead/ancillary costs are higher than many expect.
The key is to know how to negotiate - and also realizing that half of the negotiation is done before you get to the table. Nobody is going to volunteer paying a SWE $600K, but they can be compelled to do so if you know how.
Happy to share knowledge here - I'm firmly of the opinion that you should be paid the absolute maximum of what your employer will bear. They aren't leaving money on the table in their deals, so neither should you.
I think basically any tech company that you've heard of will be willing to pay close to 300k for experience, although remember half of that will generally be stock, and the higher the compensation, the higher percentage will be stock-based.
If you have more than 5 years experience and make less than 200k/year, I suggest you start interviewing.
If that's the case, though, things start to get real fuzzy talking about salary. If you're at a startup with X stock options, you can start talking about total compensation when the company IPOs. Also, if you work for FAANG, you get RSUs which don't vest until some time, but do count towards total compensation before then.
Take a lot of those numbers in that context and they make more sense.
I think the most common vesting cliff is 1 year, which isn't really that long so it's reasonable to count towards total compensation.
It gets fuzzier if the vesting schedule is backloaded (amazon is notorious for this: something like 5% vesting after the first year, and then high turnover as the kicker), but from my understanding you'll often see signing bonuses to make up for this.
Everywhere else I’ve ever worked or had friends work it’s linear.
It looks like there's an email address in your profile now, so I'll try sending a repost invite that way.
So if I understand your point, I agree that the total comp numbers are a bit weird considering how the compensation is structured and a lot of refresh grants do not ever equal your initial grant, but the ability to bring home over $300k, $400k, $500k is not that difficult if you work at Amazon, Microsoft, Google, Facebook, Netflix, etc.
The key to this is to change companies every so often and in doing so, seek higher positions (promote in transition). These 2 things combined easily push your salary up.
That said, I'm at a point in my compensation that I don't really care about extra money (it's nice, don't get me wrong, but outside of spending some additional money on my hobby's, it mostly will just get saved) and this is really empowering because now I am looking for positions that I feel will be rewarding in terms of the project instead of just looking to grow my compensation further.
To be clear, I'm not talking about the norm, I'm talking specifically about FAANG (including bonuses and RSUs, not base pay rate). Also you have to work at the headquarters or maybe NYC to make these comps.
In any case, I know one person who accepted an offer with an AWS team recently making roughly what levels.fyi suggests (and not a 'golden child' either, someone coming in to learn a new skillset). My understanding is that Amazon is absolutely desperate for engineers right now.
Any hot tech startup or FANG company or newish enterprise SaaS (Snowflake) or previous unicorn (AirBnB, Lyft) can pay those numbers total compensation for a SWE with 4+ years experience. Apply to all of them and see what you can get.
I don't know anything about the ML world, I understand that can go even higher. But a sr software engineer doing backend, full stack, or mobile can indeed make $300-$500k at FAANG.
Then perhaps Apple needs to start training some tooling engineers?
Companies like Apple outsourced everything and killed domestic manufacturing in the pursuit of a couple pennies are now complaining that domestic manufacturing is dead?
I'm currently listening to the world's tiniest violin.
"Tech" companies like IBM used to own such prosaic things as low radioactivity lead mines in order maintain access to the resources required.
Vertical integration got sacrificed to the financial gods in favor of Always Late Inventory(tm). And, now, everybody is finding that it's really hard to reverse.
Suck it up and do it yourself, or bend over for China, Tim.
> And that requires heavy investment by the government in our engineering ecosystem so that junior engineers can find good jobs and learn more.
We'll just outsource them again next quarter. It's a losing game. You need a willing participant to play.
I thought it was because they generate >$1 million per employee.
In the end our decisions were guided by elder concepts of correctness, that coincidentally enriched them at our expense.
Paraphrasing Thomas Jefferson - “the earth belongs to the living and not to the dead.”
We’re due for a rethink of our social obligations, not just this attacking fiscal margins, and coddling the business elite of yesterday.
Who were enriched in an era of higher taxation and much lower costs. But they are obviously owed big returns on their decades old effort. Our reverence for them is of course etched into the physics of the universe. Hmmm…
However, there is still a significant shortage of talented engineers in non-SWE roles. We've outsourced engineering jobs such as semiconductor manufacturing and other tech production to other countries which makes it hard for junior engineers to find jobs and learn enough to become highly talented engineers. And that requires heavy investment by the government in our engineering ecosystem so that junior engineers can find good jobs and learn more. Tim Cook explained this well in the context of iPhone screws: https://www.nytimes.com/2019/01/28/technology/iphones-apple-...
> “In the U.S., you could have a meeting of tooling engineers and I’m not sure we could fill the room,” he said. “In China, you could fill multiple football fields.”