For the HN crowd, it's probably worthwhile to split "STEM" into "high-end engineering" and "normal engineering". The former is suffering from a labor shortage which is why FAANGs and similar companies are willing to pay $300k-600k for engineers with 5-10 years of experience. But for normal SWEs and other engineering fields, there is a glut of talent (https://danluu.com/bimodal-compensation/) so it can be harder to find an engineering job that pays enough to justify the college tuition. This article is about the latter group.
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.”
> The former is suffering from a labor shortage which is why FAANGs and similar companies are willing to pay $300k-600k for engineers with 5-10 years of experience.
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 ).
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.
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.
> $300k-600k for "high-end" mid-level engineers is because they stand to recoup many times than per employee.
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.
> 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.
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".
They recoup many times $500k per every employee, not just mid-level engineers, but only the engineers are able to command that much because there's more demand than supply.
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.
> 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.
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".
> 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.
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.
exactly. facebook generate among the highest profit margins of any company. Multi-illion dollar ad budgets by fortune 500 companies, plus tons of small business adverstiing, is jsut pure profit for instagram and facebook. Mobile ads are very expensive, too. More expensive than desktop.
I tend to agree here. There must be top performers in pool B willing to invest time and effort to move to pool A given how lucrative it is.
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?
DevOps / GitOps. Good lord, DevOps / GitOps. Do the things nobody wants to do:
* 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.
It's nice compared to many other industries because the interview process is pretty open and well-discussed and it's more rare to be blocked entirely just because you don't have the right names on your resume.
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.
do you think your productivity or output or skill level increased 60% alongside the 60% raise or do you think your skill level increase / change in 'worth' was less?
Or in other words once you got in, did things get way more difficult / stressful?
My skill set and abilities increased the most rapidly in the job before the 60% raise. It then increased further in that job, but because it was a bigger, more established company, it took longer to get exposed to different things, and because my skill set was already larger, fewer of those things were as brand new.
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 graduated from a very respectable but not elite university, with a respectable but not noteworthy GPA and internship. (I do feel I took to algorithms and data structures somewhat better than most of my classmates, which helped with interviewing years later.)
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.
It's really not impossible. The main difference is in LC practice and system design experience. The latter of which is likely covered by any reasonably scaled startup.
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.
This was codified by Charles Simonyi in his dissertation on Metaprogramming, which he implemented at Microsoft.
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.
We want software engineers who understand compilers and query optimizers and systems.
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 don't know that your example is a fair one. I'm not a huge fan of java, but I have run it in anger (and specifically abused the crap out of hadoop).
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!)
Money isn't everything though. I've passed up many higher-paying cookie-cutter jobs for lower-paying but more-fulfilling and interesting problem-solving jobs.
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.
What is the work you are doing that requires this sort of fundamental knowledge? Just curious, as it seems like most of the business (read: monetary) value is in working much higher in the stack, leveraging the bedrock software already out there. Is there present moving and shaking happening at that level?
It's because schools teach to the market. How many schools teach COBOL? There are still companies that want to hire COBOL resources, but most schools aren't going to teaching because the market is too small. It's the same for query optimizers and compilers, only even more pronounced by their very nature - these are things that a very small number of people create because you want a standard or consistent experience with this level of tool. It's like my cryptography course - I'll never use it because the best practice is to use the industry standards.
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.
All my experience is with the job market in Seattle. A decade ago I took a job at 80k (via craigslist), against competing offers around 95k, because it involved NLP and Hadoop. A year later I got a 40% raise to a Series E startup that ultimately flamed out, working on ML-adjacent big data stuff. I slowly bumped along until, with an average job tenure of ~2 years, until in the past four years I went from ~160k to slightly over 300k. Technologies have been Hadoop/Spark/Kubernetes ecosystems. First two job hops were via LinkedIn, next two were personal referrals.
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.
It is certainly not impossible. Every "high-end" engineer started out as a junior at some point in their career/life. And I don't think it requires working at a FAANG either.
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.
> It is certainly not impossible. Every "high-end" engineer started out as a junior at some point in their career/life. And I don't think it requires working at a FAANG either.
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.
For sure, it's a lot easier for people who did undergrad at Standord/MIT/CM to get the internship (and the FTE role). But we shouldn't confuse "Stanford CS grads are overrepresented in high-end engineering roles" with "most high-end engineering roles are done by Stanford CS grads". Most people doing this kind of work went to a college you never heard of and maybe didn't even study CS.
Oh, I think the pool is a lot larger than that. I've seen pretty good industry hiring representation at a bunch of first-and-second-tier non-Ivies, includes UCSD, Washington, Waterloo, Purdue, Chicago, UTexas, UCLA, and a lot of others. (And similarly, the company base is a lot broader than just FAANG.)
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.
> I tend to agree here. There must be top performers in pool B willing to invest time and effort to move to pool A given how lucrative it is.
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.
I posted something similar to you. I think the jump is not doable because it requires massive investment in a lottery ticket. Not only are FANG interviews leetcode level hard, I have heard friends at such orgs talk about the anti-loop. Even if you got to the point of solving most leetcode problems, the anti-loop can reject you. I know plenty of brilliant engineers not getting paid the value they create, because they have kids or work a tough job or volunteer or whatever, that makes it so they will never get a FANG offer.
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.
It's a yegge-coined term for getting a set of ~five interviewers who won't pass anyone. That is for any candidate who passes interviewer X's idea of a good candidate, you won't pass Y.
I don't think you see it much anymore, but I wouldn't be surprised if it does still happen from time to time.
I think there's a possibility for a SW-developer, but I wonder whether that's even possible for other branches. If you don't have the required background (sufficiently advanced university degree) then you just don't have the knowledge. I can imagine that if you really work on high-tech engineering, you need a solid background of physics, engineering, math etc. You can't just learn that on the job, or better, expect people to learn it on the job.
>> However, there is still a significant shortage of talented engineers in non-SWE roles.
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 you can, you just sell it as it vests. Which is the commonly-recommended thing to do.
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.
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.
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.
>> 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.
>>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.
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.
> 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.
Wall Street. Management Consulting. Commercial Real Estate. The job doesnt have to pay a lot, but the pay needs to cover housing for the region where the job is located.
Another problem is that just because a person graduates with a degree in X, doesn't mean they are any use at X. I know a bunch of CS degreed people who got out of virtually every coding course in university.
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.
> Another problem is that just because a person graduates with a degree in X, doesn’t mean they are any use at X
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?
ABET accreditation (not as important in CS as engineering, but still very common) requires a CS program to teach software development and strong programming skills.
Training for professional roles (like engineering) is essentially vocational training. There is an industry need that drives the curriculum requirements.
If one succeeds in a CS program, then "programming" should be straightforward. I have a CS degree. We never learned any computer languages in college; you were expected to 'pick up' them well-enough to succeed in the course. (These languages were APL, Maclisp, and PL/I). A CS degree can be a proxy for 'this person proved they can learn computer-related stuff'.
You raise an interesting point. I think most non-FANG engineers would say that that the leetcode culture is getting out of hand, and the FANG's quest for the 10x engineer leads to both (a) rocket high salaries+competition from the people who can pass leetcode, and (b) passing on lots of smart engineers who could not or did not want to run the interviewing gauntlet. What is the economic sense to not lowering the bar rather than constantly attempting to raise it?
There are a lot of new grad and junior developers who can follow instructions. There are surprisingly few who can solve problems that they haven't seen before and are able to pattern match against.
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."
Great example. Leetcode absolutely does not test for this. Frankly, no FANG interview question I have ever personally seen tests for this. This sort of deep experience comes out when you actually talk to a candidate about their technical work, what was a really subtle bug you tracked down, etc.
Its really hard to test for that as part of an interview question. FANG is able to resolve that by hiring lots of people that pass a sufficiently high bar and then figuring it out as they go... and even when the people don't have the appropriate problem solving skills, there's likely still work for them to do.
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 made the point in another comment that one of the reasons other industries kind of suck is because of the heavy gate-keeping. You want to be an investment banker? There is no path but to have gone to an Ivy League school. Stuff like this is a tragedy. Industries that are cordoned off in this way are extremely selfish.
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.
That's very dependent on whether the definition of “good” can be yanked around by what the rest of the industry does, for example by ease of compatibility with other software APIs or by UI and behavior models that are familiar to lower friction for people who have already used something popular.
> You want to be an investment banker? There is no path but to have gone to an Ivy League school
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.
> 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.
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.
There’s coordination costs that scale super-linearly with people and many of the FAANGs have such high leverage from a slightly higher output of a software engineer that the costs aren’t a barrier for them.
In other words, if they don’t have to lower their standards for financial reasons, they just don’t.
> For the HN crowd, it’s probably worthwhile to split “STEM” into “high-end engineering” and “normal engineering”.
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.)
There is certainly a perceived difference between tech workers at, what I would categorize into T1/T2/T3 companies.
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.
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.
Not the OP but I agree with their comment. I think the distinction is mostly around experience. Specifically, experience designing large systems (understanding tradeoffs, resource requirements, etc.) based on product/business requirements. If I can come to you and say "I need a system to manage documents" and you can take it from their (eliciting more details from non/semi-technical collaborators along the way) then you are probably a high-end SWE.
No, you're describing the system architect anti-pattern.
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.
I agree completely, apologies if I was unclear. My point was only that you shouldn't be ONLY doing "task work" (eg implement this interface that someone has already defined for you). You need to understand how to design the system as well as do in-the-weeds implementation work.
Right. And need to have the good ability to notice a problem while doing the coding work, which causes you to back up to the higher level and solve it at the right level.
If you want to "apply", then have a friend who works at a FAANG, and they'll connect you.
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.
A high-end SWE is one who is willing to endure a hiring process spanning months full of pointless trivia with the final prize being a slim chance at getting a job. A normal SWE is one who finds a job at a business that wants to actually hire people, not play games.
>> The former is suffering from a labor shortage which is why FAANGs and similar companies are willing to pay $300k-600k for engineers with 5-10 years of experience
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.
What you're describing are the people making $1M+, you basically need to have had amazing luck of being in the right place at the right time and being involved in projects that turned out to be massively successful and grew quickly. That's how you get those Director or Sr Staff/Principal titles at FAANG.
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.
I think this was true 5-10 years ago but having worked at FANGISH companies for over a decade I am starting see older devs come into the company, and also diversity in ethnicity and background which is great. I know my current company which has about as difficult an interview as google doesn't really care about your degree, if you can pass the interview and are not a total a*hole you are hired.
This is not a surprise. same reasons why the armed forces, west point, and police academies seek younger people: there are many benefits, some of those being:
more malleable
faster learning (studies show working memory falls with age)
Talk to anyone military who has to deal with young cadets/recruits. They all come with baggage. They all have family commitments. I've know of helicopter parents phoning, even appearing at military bases. Beyond the near-normal prescriptions, young people now have health "preferences" to accommodate. Their definition of "flexible hours" is totally one-sided. Tell them to work through a long weekend and they might cry. As for learning, I have read those studies. It may be true but I also see a trend of young people who cannot read and write properly: university graduates who have trouble reading more than a dozen pages without drifting. Any drill sergeant at West Point would rather train a platoon of 40yos than yet anther crop of phone-addicted teenagers.
Anyone have realistic or actual job postings that pay 300-600k vs. something off of levels.fi? I've been in this field for 15 years and have had some good gigs on my resume, not currently looking around but this pay rate is way outside what seems to be the norm.
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.
I just recently hit the 140k mark after 8 years of experience as a data scientist, and I already feel bafflingly overpaid for what I actually accomplish. I suppose things are different at FAANG companies, but not even my coworkers working out of more expensive locations get paid anywhere near $300k.
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.
I'm sure you already know this, but most consultants take home 30-60% of their bill-out rate (depending on their experience, supervision/regulatory requirements, and overhead expenses).
Business development is almost more important than actually doing the work, and overhead/ancillary costs are higher than many expect.
I'm a guy with an undergrad degree, no graduate degrees, and no formal training in big data nor ML (just good old fashioned systems programming) and I'm in/above that range.
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.
Seems like about 5 years ago things took off, but if you stick to small job pool areas you will probably see jobs near the same rate as they were back then. I took a SV-based job to get leveraged up, now work remote for same rate, which is like 50% more than I was making 1.5 years ago. Friend of mine just went to another company full remote, I think he 2x'd his total previous income from a job he'd worked at for years (and it was a company that could afford to pay him way more than they did, but advancing without changing jobs is hard).
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.
It seems like a lot of these pay sources use total compensation as their metric, although I'm not 100% certain of that.
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.
> Also, if you work for FAANG, you get RSUs which don't vest until some time, but do count towards total compensation before then.
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.
Most places I've seen use a 4 year vesting schedule, andd 50% of the RSU's vest in the last two years. So you get maybe 10-15% of your RSU's year one, 20% more the next year, then the rest in the last two years. This forces people to stick with the company likely longer than they would normally would.
Your experience is a complete outlier. The only company that really does that is Amazon. All others in FAANG are 25% per year, paid either monthly or quarterly. Most have even removed the 1 year cliff, meaning you might be vesting stock 30 days in.
I have just over 6 years in the industry and in my current job, my initial total comp was $500+k start. That was 190k salary, 60k signing, $300k stock with a 4-year vesting schedule, 25/25/25/25. My actual take home per year is constantly growing and is well in excess of $300k every year I've been with the company.
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.
> I've been in this field for 15 years and have had some good gigs on my resume, not currently looking around but this pay rate is way outside what seems to be the norm.
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.
I worked at AWS years ago and we weren't getting paid anywhere near this, total compensation included. AWS is pretty known for being for being "thrifty", but you only got a relatively small amount of RSU's (back even before they were worth thousands of dollars like they are now), and you had to wait most of the 4 years for them to vest, since it was heavily weighted to the back-end of that time period, to entice you to stay with the company.
Agreed on the backloaded RSU schedule, but my understanding is that the signing bonus is supposed to help cover for that.
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.
You’re not underpaid but you could make more by switching companies. Some companies simply pay more than others for the same role, level, and responsibilities because they’re engineering driven or better funded or more successful or operate at greater scale/profitability.
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.
Job postings never show the pay, don't let that be the holdup keeping you from applying to top companies, that you are in disbelief of levels.fyi. In my experience it's absolutely accurate.
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.
> “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.”
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.
Tangential but it make me think, given the network effects and associated monopoly position of some FAANGs like Google or Facebook, it seems they could hire engineer to do nothing and still be vastly profitable. In fact, it would have the benefit or preventing top talents joining or creating a competitor. Therefore, how much is a "real" labor shortage vs a perverse side-effect of monopolies or a capital intensive hack of preventing competition? It's just an intuition from their monetized output from their profit centers compared to their workforce, maybe a dumb idea but I'm curious of what people than know more than me think of it.
> The former is suffering from a labor shortage which is why FAANGs and similar companies are willing to pay $300k-600k for engineers with 5-10 years of experience.
I thought it was because they generate >$1 million per employee.
It only matters how much revenue they generate per employee when that revenue dips below salary. If the supply for epic superstar 10x devs greatly exceeded demand, they could make $100M per employee and they still wouldn't pay as much as $300-600k. (Unless they were forced to by, say, unionization.)
It was stupid to put all our manufacturing eggs in one basket, not just for nation state politics but species security against regional war, acts of god…
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…
Also see the "S" of STEM. Many people going into science at the graduate level believe the hype that there is a huge shortage of scientists and that they'll have no trouble getting a tenure-track job in the end. This isn't the case. The system is set up to generate many more Ph.D's than faculty positions because grad students and postdocs are useful sources of labor for faculty. That doesn't mean that you shouldn't go into science (there are jobs in industry and government for example), but realize that getting a faculty job is statistically unlikely.
What I've observed is that virtually every science grad student is aware of the academic job situation, unless they are deluding themselves or have their heads in the sand. In fact, my dad (chemistry PhD) told me this was already common knowledge in the 1950s.
When I was in my 20s, I was aware of the situation anecdotally from other grad students. However, I wanted to shoot my shot and by the time I hit my late 20s and 30 all of those weekend hours in the office and the low pay made those software jobs very alluring. So I jumped ship.
I miss research in academia quite a bit, I still read papers and review articles if I'm contacted. However, I don't think I'll go back with the work-life balance and higher salaries in industry.
That saying doesn't seem to be true at all if you sort by age. If you have your nobel prize by 30 you are an outlier.
There are similar sayings for mathematics that don't hold up. I don't really understand where the perception comes from when it is easily fact checked?
I think the phrasing is a little off; the way I’ve heard it is that most Nobel winners had done the majority of their research before they were 30. It just takes a few decades for their contributions to the field to become apparent.
And PhDs and tenure track aside, many undergrad science degrees are probably not much more useful as a credential than liberal arts degrees that many here like to mock. There's nothing wrong with majoring in biology if that's your thing. But unless you're pre-med or plan to get a PhD, it's probably not a more useful major than history or English--and may be less useful depending upon what sort of job you're looking for.
In my view, the undergrad degrees that are useful as credentials are exceptions: The licensed engineering and medical fields. Even the vaunted computer science degree is not a meal ticket: You still have to prove that you can code, and are competing with people who are self taught.
Now there are some things that, while not formal credentials, are still hard to avoid for certain occupations. People with math and physics degree can be quite competitive for certain kinds of quantitative work. Oddly enough a music performance degree is almost unavoidable if you want to be a working classical musician. Those are areas where it's possible to be self trained, but almost prohibitively difficult.
You can both be aware of the situation and delusional.
Many people I’ve spoken to with tenure track aspirations genuinely believe they’re in the top 1% of their field, and thus have a good shot at making it. I’d wager that far more than 1% of graduate students/postdocs believe this about themselves. In general, the vast majority of people will rate themselves as above average for any given ability, even though that’s by definition impossible.
> the vast majority of people will rate themselves as above average for any given ability, even though that’s by definition impossible.
Not "by definition". It's easy to build a probability distribution such that an arbitrarily large majority of samples are above average (e.g. if it has a long tail to the left).
Very true. When I was doing PhD in pure maths I had random people explain to me that a PhD would not necessarily give me an advantage in the job market. Like I would come to do a PhD without figuring that out.
Not specifically in pure maths, but agree I also found that a math PhD is good to have for jobs in AI, finance etc. But an equivalent industry experience might be worth the same at least.
For me, data science, quantitative finance, software engineering jobs. A large part of software development is about identifying and building abstractions to solve problems, which is also what mathematicians do. A common sentiment I've seen expressed by hiring managers is that someone with a strong math background can become very competent in a wide variety of technical fields.
Any industry “shortage” or “crisis” is only from the perspective of the investment class. It is always a “crisis” when the supply of labor isn’t high enough for accountants to name their price, and in this state you will see businesses try to either reduce their own demand (typically via automation or overworking) or increase the supply rather than enter a labor market where they do not have the upper hand.
Overnight you will see huge media campaigns about these shortages, depicted as some national crisis. This will be used to justify government expenses on programs that simultaneously subsidize training costs for businesses while increasing their labor supply.
At least, that’s how it used to work. Now every company I’ve worked for just backfills American jobs with overseas contracts.
So only the "investment class" can be "greedy"? If anything you're proving the parent poster's point, ie. "when market conditions are are in my favor (or against my adversary), it's just supply and demand. when they're not in my favor (or in favor of my adversary), it's a 'shortage' (or whatever sympathy-inducing phrase you can come up with".
8 years later and it's still correct. If there truly was such a demand companies would be on their knees for new grads, they would take on more junior engineers to learn from their current superior engineers. In software a degree doesn't even get you a call back in job applications.
This entire discussion seems to be very US-centric. In the Netherlands, the situation is exactly like you describe how it'd look like if the proposition in the title were correct.
Possibly because Dutch companies simply refuse to increase salaries, and 60k per year is still somehow considered good.
The author seems to think students go to a school, get a degree that says "Bachelor of STEM", "Masters of STEM", or "Ph.D in STEM", then carry on to apply to job postings that say "STEM degree required".
This is so very obviously not the case I have to wonder what the author's motives for not diving even the slightest bit deeper are (for instance, splitting S/T/E/M and showing stats for each).
Indeed, this is a 2013 article, largely based on a favorable/credulous reading of some 2012 & 2013 analyses from the EPI, a left/organized-labor/economic-protectionist/anti-immigration think tank.
Those analyses were being marshalled by the EPI, early in Obama's 2nd term, to support their anti-immigration lobbying goals. One of the analyses declares their goal: "Conclusion: Now is not the time to increase the number of H-1B visas and STEM green cards".
EPI's obliviousness to variety within the STEM category, including with regard to age cohorts & the dynamism of people moving to- and from- "STEM" jobs no matter their formal degree, was obvious when their writeups were new.
EPI somehow manages to spin both the large number of "STEM" grads outside "STEM" industries, and the large number of "non-STEM" grads in "STEM" careers, as simultaneously being bad, instead of a sign of people & businesses dynamically adjusting based on real-world experience, preferences, and changes.
EPI's ideal would seem to be: "Stay in the exact field your Motherland trained you for, comrade - or you might mess up the 5-year-plan."
I was just having several conversations about this with a mixed group of tech people. Several agreed and one who missed the original convo volunteered essentially the same sentiment.
It’s like traffic management. More capacity means more cars and traffic stays as bad or gets worse. In many fields, but especially software, there’s a lot of redundant work being done because there are enough developers that companies think they can almost afford (and exploit people to make up the gap) to do it themselves instead of using something that exists.
If there were just not enough devs to make your bespoke CMS or enough materials scientists to invent a new shade of pink, we would just deal, and more people would work on things that actually matter. Not a larger fraction of people. More people.
Might be as a way to differentiate between page views and people reading the article. I think Quora does this. You get a separate counter for people who expand your post.
People who study STEM know a bunch of stuff about science and technology. There may be science and tech firms out there that feel that's what they need, but what they actually need is people who can learn how to do the work in their businesses.
The connection is that the kid who takes his time to learn how transistors work is more likely than most candidates to be able to figure out how your swaption contracts work. He's more likely to be interested, and he's more likely to be motivated than say the kid who studied French poetry. Or so we think, naturally there are type-O people who just love learning all sorts of things. But neither of those kids knows enough to actually do the job out of college. There's a small head start if you've studied CS and you want to be a coder, or if you studied finance and you want to be a swap trader. But it's actually quite small, and more of an indication of interest than actual competence.
The problem is we're now creating a narrative that STEM degrees cause competence in technical fields. It's not true, it's a correlation caused by people who like taking shit apart going to take-shit-apart classes so that they can indulge their curiosity for a bit. That metaskill is then used to get into whatever comes next. Software, solar cell manufacturing, whatever.
Look back at your degree. How much if it was actually useful, directly? How much was just exam cramming wastage (formulas, derivations)? I think the only time anything ever happened that I found useful, it was implementing a Bessel function in an option pricing library. So basically a few minutes saved, because everything else in that project (compiling the C lib, studying the option theory, calculating the model params) was of the "I'm gonna learn that now" type.
The danger here is we tell a generation of kids that if you study organic chemistry or quantum physics, you'll find a job. What they really need is that get-to-the-bottom attitude that will lead them to more satisfaction both intellectually and professionally. And just so we don't forget, that attitude is just as useful in non-STEM fields. Being able to thoroughly learn something is a universal skill.
I'm truly curious, for folks here that don't like the FANG (leetcode + system design) interview approach. What would you prefer:
- (framework x, language y, ....) trivia questions?
- take home type of assessments?
- make an app with X tech stack while someone else is looking over your shoulders?
- "tell me about what you are working on, and the tech stack you are using" type of conversation?
I have been in all this types of interview, and I find them to be all flawed, but I would prefer the system design type if I have to choose.
My last interview where I accepted the gig was two qa interviews in a conversational style format, I much prefer that over leetcode type questions. I'm DevOps rather than a software engineer though so YMMV.
I would prefer a take home assignment to the typical leetcode questions or a review of my work and code samples.
Interestingly I spoke with a former Microsoft Product Manager earlier this year and he told me "the most senior engineers give the worst interviews because you have to use parts of your brain that you haven't used in 20 years".
I live in Los Angeles and years ago (and for most companies where I work) algo interviews are not a thing but this year I've been getting contacted non-stop by recruiters including several FAANG so I've been cramming leetcode and it's not fun.
I've come to realize that by cramming leetcode I'm also missing out on important topics such as security, real-world performance, and other things that I used to actively study.
But at the price Silicon Valley companies pay it can be worth it I guess.
It's a myth because the demand ended up being in other areas - construction really. Construction will remain massively in demand, especially now that labor pool for that is drying up.
When at the onset of the pandemic the Trump administration decided that foreign students couldn't stay in the U.S. if they weren't attending classes in person, I was surprised to learn how much of the STEM students they represent. Thankfully this was reversed (after strong pushback from universities and many more stakeholders), but it still highlighted how dependent the STEM field is on foreign students.
Some numbers[1] from 2017: 81% of Electrical Engineering, 79% of Computer Science, 62% of Mechanical Engineering and 59% of Civil Engineering students are foreigners, to list just the top 4 (the top 2 have by far the largest enrollment).
Isn't this a crisis too? To be clear, I'm not suggesting they shouldn't be in the country; they are incredibly valuable. But doesn't it show that American students are just not going into these fields in sufficient numbers? The U.S. has amazing engineers and scientists, but it needs to import 3/4 of them. And there's no guarantee that they will even stay in the country once they graduate, it's not that easy. Are American students not interested? Just imagine what they could achieve if the same number of American students went into these careers as do foreign students.
A crisis like this pandemic shows just how badly the country would be affected if these foreign students weren't there. Just like for any other resource, a country that has to import most of what it finds valuable is always a serious problem.
Important to note that these numbers are for graduate level students. Still wild that well over 50% of masters, docs and postdocs in the US are are not US citizens.
International students make up around 5% [1] of the undergraduate student body. Can't find the number specifically for STEM but I imagine its still < 20%.
The US is over represented on most "top N" rankings of best STEM universities. I'd guess that this leads to a lot of foreign students wanting to go to US grad schools, and that this is why engineering programs have so many foreign students rather than it being due to some shortage of US students wanting to go into those fields.
This article seems to treat "stem workers" as exactly interchangeable cogs. Like not even programmers are interchangeable but it seems like a biologist would be interchangeable with a civil engineer here.
It's hard to find anyone. Desktop support techs? Can't find them. Cabling/wiring installers? Nowhere to be found. PHP CRUD programmers? Nope. CNC machinists? Haven't seen one either.
The software industry does a very good job on-boarding people into this career. I don’t know if the same kind of support exists in hardware, for example. If there’s a glut of graduates and a shortage in industry, it could be argued that those industries have archaic processes that don’t build up entry level into those positions (zero training, you are either top of your class, or not, good luck).
Even though we are edging towards serious gatekeeping with Leetcode, overall, we are still one of the most generous industries in society.
Does anyone know what the process for interviewing for a highly technical spot at Nvidia looks like? I mean like where you are building specialized scientific computing frameworks for accelerating ML (but also accelerating computations for physics). Assume it’s the sort of role that basically requires a PhD in computational mechanics or optimization. Phd in one/experience in the other or both maybe.
The overwhelming view on HN is that labor shortages cannot exist but chip shortages can. The only difference between the two is whether HN users are buying or selling.
Care to explain what you mean? Of course you can switch jobs for a higher offer _if you can find it_ (and if you can "always" do it, it could mean there's a labor shortage), the same way with chips to buy.
Assuming there is an offer, nothing stops you from taking it. You can offer to pay more for chips, but your competitors aren't necessarily going to sell.
"assuming there's an offer" = "assuming there's someone willing to sell". Why can you assume it in one case but not in the other? If there's no offer, maybe you're asking for too much? As the top level comment said, the difference is your role in a transaction (when you're seeking employment, you're selling, when you're seeking chips, you're buying).
Because an employer doesn't need to agree to "sell" its employee, the employee is free to leave for a better offer.
The employee has no direct stake in which company employs it (bar stocks or something) other that compensation so is likely to take a high enough offer.
The "seller" in the case of chips might be some kind of broker holding out for a better offer - but during a shortage it's likely other companies that actually use those chips holding stock. Since the chips have value for them, and they might actually be your competitor, it's possible they might not sell to you for any price.
> The "seller" in the case of chips might be some kind of broker holding out for a better offer - but during a shortage it's likely other companies that actually use those chips holding stock. Since the chips have value for them, and they might actually be your competitor, it's possible they might not sell to you for any price.
I find it hard to believe that they will not send you chips for _any_ price - as long as you're able to cover what they'd have earned because of that chip, they would be losing money by not selling to you. Now, that may be hard to calculate (maybe market share has value in itself?), or more than you're willing to pay, but that's not really their problem.
Shortage is when demand exceeds supply. The way to control the demand would be to increase the price. So, there are no shortages, there are just mis-priced goods. The companies that supply chips should increase their prices as they're leaving money on the table, so I guess there must be some contractual obligations that come into play. Related: https://www.npr.org/2021/04/30/992528310/shortages-inflation....
Back to what I think was the original point of the top-level reply:
Declaring that there's a shortage in one market but not in another, especially if we have vested interest to prefer one thing ("I want to buy a GPU but cannot find one for the price I'm willing to pay, so there's GPU shortage"; "I'm switching jobs and employers are fighting over me & increasing wages, but there's no labor shortage") comes through as hypocritical to me. Let's not do that.
> Alan Greenspan, former chairman of the Federal Reserve, said as much when in 2007 he advocated boosting the number of skilled immigrants entering the United States so as to "suppress" the wages of their U.S. counterparts, which he considered too high.
We vote for these people and pay their salaries. Who exactly is it that is supposed to be looking out for us?
"Yes, there are options to combat that decline, but contrary to what many people believe, we do very poorly in opening up our borders to skilled immigrants. Our H1-B visa restrictions are a disgrace. Most high-income people in our country do not realize that their incomes are being subsidized by their protection from competition from highly skilled people who are prevented from immigrating to the United States. But we need such skills in order to staff our productive economy, so that the standard of living for Americans as a whole can grow."
The standard of living for Americans doesn't depend on the pay rate of software engineers. The profit margins of software companies are already astonishingly high. No tech firm is buckling under the weight of their payroll, they are making bank.
Google's 2nd quarter financials show a 64% operating profit. Arguably there isn't enough money from these companies going back to the people who actually did the work to generate that success. They could start paying everybody double and still be making more money than any other market sector could dream of.
Depressing the wages of software engineers doesn't mean increased standard of living for Americans, it can only mean increased profit margins for stockholders.
The point is that by allowing more highly-skilled immigrants into the country, it enables many other companies to make use of that high-skill labor and increase productivity (which would increase our standard of living, in theory). The lowering of wages is only a side effect of that.
Why do the companies have to be in the US? Why can't they be in Mexico or India or Brazil - and US investors just invest in those companies and get the resulting dividends?
Why does the company have to exist in the US for us to get any benefits of increased productivity?
Immigration restrictions are economically like any other kind of import barrier. It will boost the money to be made in the sector in question, while being bad for the US economy as a whole. In the long run we are all better off from free markets, no matter who is impacted by the short-term disruption.
If Google's profit margin could be 80% instead of 67% because it had no US engineers and only engineers in developing countries - this is only good for Google's shareholders.
Whereas Google employs >100k US citizens paying on average >$200k - plus close to as many contractors (it doesn't pay particularly well).
It's hard to argue that enriching mainly a handful of High Net-worth shareholders is better for the US economy "as a whole". High Net-worth Individuals have a low propensity to spend on the "real" US economy.
We already tax capital gains at a low rate - and because of that companies do share-buybacks to reduce the tax burden on their shareholders.
There would be far less tax dollars and far less spending in the "real" economy.
This certainly seems like only a win for the high net-worth individual.
Sure - if you want to do that and then socialize the benefits - I guess that could be better. It wouldn't happen. And also, instead of your population being productive and gaining skills and getting smarter - they're doing what? Just living off welfare? Doing the same work for less pay?
Your belief that I'm making any such assumption is a mistake on your part.
I'm saying that it is good for Americans in general to allow Google to bring good people into our labor market, so that their spending goes into our economy. Which circulates money that goes where? Mostly to Americans! Instead we force Google to create those jobs where those people happen to be.
Now the USA actually allows a lot of immigration. In fact nationwide a bit over 10% of the population is foreign born. But when you look at productivity growth, it is no accident that California is both one of the top states for long-term productivity growth, AND has over 1/4 of its population born elsewhere.
My belief, based on well-established economic theory, is that allowing more immigration of smart people would increase California's productivity even more. Which, long-term, will result in more money for all of us.
I agree, but the H1B really isn't a general immigration category, or even a general skilled immigration category.
In a free labor market, workers are free to choose a field in response to market conditions and their own personal preferences. Job Factors may include salary, flexibility, job stability, long-term career stability, up front investments, probability of success, prestige, the opportunity to do good and work with people (or not have to work with people).
If people with the freedom of choice prefer to be a lawyer in NY city over becoming a software developer in silicon valley, that's the market's answer. If tech companies want people to make decisions differently, they need to change the incentives.
...or, they could have the government ask the market on their behalf. The H1B visa is immensely restrictive, essentially allowing employers in a few narrow segments of the economy to decide who is allowed to live and work in the US and the circumstances under which they are allowed to remain. If the would-be immigrant doesn't like it and quits and can't find a new corporate "sponsor", they have to leave and may lose their spot in a long wait for a green card.
It's nearly impossible to reconcile the H1B visa with the concept of free labor markets. It didn't lead to freer and more efficient markets, it created market distortions that decreased the desirability of software engineering and a few other fields relative to other fields.
To be clear, I'm cool with skilled and general immigration. But once you start talking about corporate "sponsors" who control a would-be immigrant's right to live and work here in a few narrow fields, you're a long, long way from anything even faintly resembling a free labor market.
The H1B is a way for someone who lives elsewhere to wind up living and working in the USA. By definition that's immigration.
As you note, it is a really sucky form of immigration. And Greenspan agrees, he said we should just let high skill individuals come in and become part of our workforce without the weird restrictions.
Instead we have a complicated system that is broken at many levels.
I agree, but I still think this misses the point about the specific impact of the H1B on STEM workers - the focus of the ieee article. The H1B isn't really about generalized high skilled immigration, it's a more narrowly tailored program specially designed to increase the number of STEM workers (among a few other sectors) in the US. I think a lot of people who object to this would not object to a more general immigration system.
For an example - suppose all produce imported to the US faces 100% tarries. Then one day, congress declares a shortage of lemons and decides that there will be no import tax on lemons.
Lemon growers object, and the answer is: free trade makes everyone better off.
Well... ok. But we don't have free trade, we have a situation where almost all produce other than lemons is subject to extreme import restrictions. Under this circumstance, you'd expect overseas farmers who would like to export to the US to increase lemon production, and you'd expect US based farmers to shift production away from lemons.
I think this is very much what we created with decades of the H1B. We left most professions and trades restricted, but created special visas specifically designed to expose US citizens and permanent residents in STEM to augmented competition in the grounds that there is a "shortage". Even without the employer control over the visa, you would expect an action like this to cause more people who would like to access the US job market to study STEM, and cause people who already have that access to study something else. And I think there's strong evidence that exactly this has happened.
In the absence of these restrictions, would immigrants to the US study STEM or engineering? I'm sure many would. And while some would settle in the valley, many would work elsewhere. many would also choose to become coffee shop owners, surfboard shapers, brick layers, hod carriers, mortgage brokers, tax lawyers, itinerant musicians, nurses, dishwasher repair technicians, and so forth. In fact, the 1.2 million immigrants who enter the US legally without these restrictions every year do just that. They don't seem to think that becoming a STEM worker in a place where a small rundown ranch house by the freeway costs 1.5 million sounds any better than many people who were born with US citizenship do.
That is exactly why the tech companies don't really like freedom-based immigration. Free people can choose not to be developers in the valley. That's actually how free markets work, the whole freedom thing, and in the end, it's hard not to conclude that corporations just don't really like it very much. So the lobbied for - and got - control over who is allowed to live and work in the US and the circumstances under which they are allowed to remain.
The amazing thing is that they somehow managed to position themselves as "pro-immigrant", and label people who think that immigrants should be free to determine the circumstances of their own lives as the "anti-immigration people".
Most voters - and donors - aren't highly skilled engineers. But politicians are judged on their overall stewardship of the economy. Anyway, the US voter is weird; they think all sorts of professions are overpaid. Why should a bunch of nerds sitting at a desk make six figures?
With that said, that might be changing - it might be shifting more towards overall worker outcomes over just the stock market.
Yup. 15-20 years ago, factory floor, troubleshooting a problem that only showed up in production. I overheard a couple of guys saying that I was overpaid for being able to type fast, especially as I spent most of my time just standing there.
Are you really going to label Head Coaches of major sports programs as PE teachers?
The reason they are paid highly is because they carry the majority of responsibility in the success of sports teams, which generate revenue (in the hundreds of millions in the case of Football and Basketball) for the athletic departments of these universities. That revenue is used to fund literally every other collegiate sport, and provide scholarships to tens of thousands of students nationally. These positions are unique because they are simultaneously extremely competitive (most coaches are fired within 5 years) and tied (loosely) to a public entity.
To call them PE teachers is a ridiculous presumption, no matter how overpaid you believe they are (and rightly so).
But were they well-compensated in the beginning and middle days, too? It seems unlikely that sports and games are only popular during the end days. (Unless you're just saying that their compensation should decrease.)
Don't be disingenuous. PE teachers and football coaches are not the same at all and you know it.
Football coaches bring in literal millions in revenue, your Alabama example costs 8MM/year in salary but returns around 150MM in sponsorship/ad revenue/donations/etc.
And those are the best of the best. Go look at a middling D2/D3 school's football coach salary. Guarantee it won't be as impressive. And then remember that they also have a staff of position coaches and whatnot under them.
> And then remember that they also have a staff of position coaches and whatnot under them.
And people wonder why there's a STEM crisis. When your society had decided it's more important to employ multiple full time extra curricular activity coaches for a high school while cutting STEM investment (and thus outsourcing the function) you're on the fast track to the bottom of the pile.
> There's large swaths of Republicans that think public teachers are overpaid...it's mind-boggling.
About that. Some of the best funded school systems and best paid teachers are in wealthy (republican) areas. Why? Wealth drives tax revenue, quality of teachers drives quality of school system, and quality of school ultimately causes that suburban McMansion to go up in value faster. In wealthy areas in my state (Indiana), charter and private schools flourish in impoverished, urban areas and public schools are extremely good in wealthy area.
Of course they are overpaid as they are producing something of almost no value. You need patriotism, not education. Education leads to liberal thought, it's a bad thing!
120k per year is not unreasonable for teachers if you start counting benefits as wages. The pension plans of most public school teachers are generous, special tax breaks are effectively a form of salary. In California the school teachers are exempt from social security. These don’t show up in the nominal salary, but it is still money paid to them (some of it indirectly).
Around here a PhD holder who's nearing retirement might reach about $120,000 total comp as a teacher, sure, salary around $80-85k. Not $180k (the claimed $1k/day napkin-mathed for 9 months of work, which is actually a bit low on the days-worked-by-teachers-per-year side), but maybe $120k. A starting teacher is closer to, perhaps, $55k-$60k total comp (~$35,000 salary), and someone now around $120k total would have started way lower than that (because it would have been 20+ years ago).
Also, in lots of districts, teachers receive gradual pay cuts if they don't work toward at least a master's (it used to be easy to find districts that'd at least partially pay for education, too, but that's gotten much harder now) because you top out on the years-in scale for a bachelor's really early, the annual "CoL" increases outside that scale are under the rate of inflation (yes, seriously, it's outrageous) plus they freeze wages not-infrequently, then pretty much never make up for those "lost" years of growth.
> In California the school teachers are exempt from social security.
They are in my state, too, because the state pension plan opted out of social security (back when that was still possible) and the money goes there, instead. They don't also get to count that toward social security contributions, though, for calculating their eventual social security payments.
I would love to see exactly how many public school teachers are actually getting 120k. I'm very certain they are at the very high end and very few in number. Most are getting slightly above the national median income.
Depends on your area. Teachers where I'm from (greater Cincinnati) don't get anywhere near 120k even with many years of experience. My brother in northern Kentucky gets $55k after 15 years.
In New York state average pay shoots up to highest-in-the-nation $85k (source: https://worldpopulationreview.com/state-rankings/teacher-pay...). Maybe someone with a lot of experience in certain specific areas could make $120k, but it's not going to be common.
In New York, the trick for teachers is to start out in the city and accumulate years. Then the boss move is to get into a high-property tax area in Long Island and teach there. After a decade or so, you make serious money out in those high property tax (way better school districts) suburbs. That’s sort of like their FAANG path. Everyone’s got a game they need to play.
The game changer for teachers is that you really can’t beat their vacation time and pension package, there’s no ageism, and there is no shortage of work. You are good until you retire. There’s no teacher trying to retire at 40 from burnout.
From the above link:
The average elementary school teacher in Nassau and Suffolk counties earned $90,560
90k to teach 5th graders, think about that for a second.
> The game changer for teachers is that you really can’t beat their vacation time and pension package, there’s no ageism, and there is no shortage of work. You are good until you retire.
One of the big deals with teaching is that it's one of the only careers you can have in the US that's really parenthood-friendly—I specify the US because in, say, the EU, most or all jobs are far more parenthood-friendly than the average job in the US, so teaching's advantage isn't nearly so strong. I think that's an under-appreciated factor in why people choose it.
As for the Summers, lots of teachers work then to make ends meet. Financial comfort as a teacher may mean marrying someone who's not a teacher, or having a second job or successful side-hustle—even min-maxing your teaching career to optimize comp, you aren't making anything like those end-of-career figures for your whole career, and at times you're shelling out a lot of money (and spending a lot of time) for advanced degrees to get those final-years numbers so high.
> There’s no teacher trying to retire at 40 from burnout.
No, but only because they don't make enough to retire at 40. They leave before retirement all the time for tons of reasons, though, including, not at all infrequently, burnout. Abusive management, abusive co-workers, abusive parents, abusive students(!), not being able to handle year after year of watching kids with mental health issues hurt themselves and sometimes commit suicide, learning about horrible family situations (there's... so much abuse going on), actually giving-a-shit leading to workaholism for little to no reward or appreciation, and all kinds of other causes. This totally separate from people who decide they just fundamentally don't like teaching at all.
"The average elementary school teacher in Nassau and Suffolk counties earned $90,560, while middle school teachers earned $90,650 and high school teachers earned slightly less on average at $88,390."
But if you think you can apply for and get one of those jobs, that's not how it works! Most openings are filled though nepotism. They'll have a few candidates come in for interviews, but they already know who is getting the job. And it's the niece of a school board member or something like that.
For context, Nassau and Suffolk are the highest paid area in New York at ~100k mean salary. That's below the median household income in Nassau ($115k) and Suffolk ($101k) [0], which are among the richest in the US. NYC and the US are both at ~$63k median income.
For comparison, NYC is ~$80k mean salary, which will include both new hires and tenured teachers. If you read the salary schedule[10] for NYC, you have to have 6-8 years of experience to make $80k (depends on your education level [11]). To reach $120k, they must have 20 years of tenure in the NYC school district.
I made $90k in salary alone as a new CS grad, and $120k in total comp (excl. benefits). This doesn't seem like a huge overpayment to me. It makes sense to me that wealthier areas pay teachers more, and I don't think that teachers getting well paid in one county should demand wage cuts in other counties.
IMO school boards & school district admin generally are a badly under-appreciated source of corruption of many kinds. I'm pretty damn sure it's rampant.
Seriously, my spouse is a teacher, we need to move wherever this is yesterday.
... of course, I'm sure that both of: 1) they'll need to attain a PhD first, to have a shot at those numbers, and 2) this'll turn out to be somewhere with double or more the cost-of-living of where we are now, and probably 5x or more like-for-like housing costs.
> Who exactly is it that is supposed to be looking out for us?
I mean... if Greenspan has been the chairman of the Federal Reserve then almost his entire career has been focused on disempowering you and keeping you in your place.
Why would helping and empowering tax payers be something anyone in government would ever want, you'd lose your slave class if they could actually build wealth and be in control of their own destiny.
Much better keeping them living paycheck to paycheck and scooping off the cream then chip away at their savings while you're at it to keep those from stacking too high too.
Funny how they never talk about doing this with medical doctors, or expanding the number of medical schools. I guess their wages aren't considered too high, despite the insane costs of medical treatment in the US. Engineers need a stronger lobby, see the AMA for an example apparently.
Counterpoint: the ridiculous cost of medical care in the US is (in part) BECAUSE of the AMA and it is bad for the vast majority of Americans who are not Doctors. We should be looking to make medicine more like SWE, not the other way around.
We actually don't vote for the chair of the Federal Reserve (currently Jerome Powell) and that's a problem. These people have an outsized influence in our lives and they're not publicly elected.
Even if you accept the premise that the only responsibility a government has is to its citizens (which I do not), the interests of citizens are usually often in conflict with one another.
They are looking out for the collective us not for any subgroup. If you think about it, there’s lots of ways to make subgroups wealthier at the expense of America herself.
Subsidies are one such tool. Tariffs are another. He was right, you know, and fortunately the H1B helped with the growth of the American tech economy - which benefited all Americans far more than if it had been delayed (or worse, taken from us by others).
There is a ride in the affairs of men, and they managed to take it at its flood.
How exactly do you know that it helped? What evidence can you point to that says the whole tech boom would have gone to Trans-Dniester otherwise?
Doctor salaries are massively inflated by limiting supply even within the country. That must mean that the entire medical industry has already moved to India.
Well, far away doctors don’t compete with local doctors. But far away search engines sure compete with local search engines.
And yes, the doctor supply limit is costing the country substantially. It’s a tax on everyone else that is then distributed to a certain professional class.
It is no surprise that that professional class lobbies for it. But it’s bad for the rest of us.
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.”