Isn't it more that they match the reality, but the reality only for a relatively small section of a bimodal (or more) distribution?
Who are we? Which salaries?
Starting salaries for lawyers are one of the most famous examples of a bimodal distribution you can find. Salaries across the country generally are less bimodal than that. But salaries shouldn't be modeled as a normal distribution in any event. They skew high very easily, and they can never skew low.
Well, I'm sorry you have to go through the same ropes that we peasants do, you highness.
If I was hiring for a tech position and had to choose between an engineer with a few years of experience and strong analytical skills proven through coding & system design interviews, and a person who prides themselves on 10 years as a CTO at a company I've never heard of and two book authorships, I'd strongly lean towards the former.
So assuming Levels.fyi is accurate (their numbers are $20k more than salary.com which is more accurate in my opinion): my point was that I am average, right in the middle. But this article is telling me (and by extension, since I am at the mean, 50% of software engineers) are extremely underpaid.
And maybe on a nation wide scale that includes non-Boston metros, I am. But for Boston... I'm not over or under. I'm right in the middle.
Basically based on my research I think this article is for a very niche group at the top 25% of pay ranges and is not accurate or relevant to 75%+ of software developers (numbers are ballpark).
Leetcode is relevant to getting the money though. It may be the case that inexperienced new hires with Leetcode proficiency make significantly more money than CTOs in the positions you're considering.
But the jobs you'd get with leetcode would pay twice your current expected liquid compensation at least (assuming 0 stock growth) for your experience level. If you don't want those then fine, but then you can't complain about threads like this either.
Google has jobs in Boston, I bet there are many other tech companies paying similar as well. Pay at these varies by location, but not more than around 10% within USA, so it isn't like it is your locations fault, if you worked at these companies you'd be earning very close to the same you'd earn in silicon valley.
Not everyone works for FAANG.
Also, leet code is not relevant because the questions asked at that level are typically not algorithms. I passed the leet code stage in my career 10 years ago. Questions I get asked are typically around architecture, distributed systems, scaling, etc.
So what you are saying is someone who can answer the leet code questions easily (and has been able to for a decade) AND is an expert architect, should get paid less than someone who can only do leet code?
Top companies still ask algorithms at these levels and fail people at these levels if they don't perform at least as well as juniors. If you are L6 at Google you are looking at liquid compensation around $500k a year, and they still require mostly leetcode questions. Of course you wont get considered for those positions without a ton of experience, but to get them you have to do your algorithm homework.
> should get paid less
Not should, will. I didn't make any claims to what things should look like, I am talking about what the market looks like now. Your ability to do algorithms is more important for your compensation than your ability as an architect or as a leader except for extreme cases where you start to get into higher management positions at big companies.
Edit: And if you are great at algorithms as you say, but doesn't leverage that skill to get higher pay then that has the same effect on your compensation as not knowing algorithms. It is simple. So your insistence on only looking for jobs that doesn't test algorithms is probably the reason your salary didn't balloon as you'd expect.
Saying questions asked at that level are not about algorithms was based on my non-FAANG experience. I shouldn't have been so absolute.
But with that said, to back up and restate where I was trying to get. What I was trying to say is that algorithms are table stakes, you should absolutely know them at a senior level but the actually questions you should be being asked should be more advanced than that.
In all SV companies coding interviews are strictly required at interviews at M1/M2 level (up to 60-80 reports) and required at some companies at D1 level (150 reports). CTO at start up with 20-30 reports is M1 and will have to do coding 100% and failing coding interview is automatic no hire.
>>..someone who can answer the leet code questions easily (and has been able to for a decade)...
If you are a CTO chances are you have not been practicing LC. Even if you were able to do LC style questions a decade ago, without practice you are very likely to struggle with them. So don't assume just because you are CTO / architect you can do LC style questions. The questions have been becoming progressively harder each year. It is a sad reality, our industry does not decide compensation based on experience, knowledge and actual skill used on the job. If you want to maximize your compensation you have to do LC style questions. Even non FAANG companies ask LC style questions these days.
Though, with that said, I have been on the interviewer side a lot and need to know some of them well enough to know if the candidate knows their stuff. So I'm not completely rusty. And as CTO I would often read through what other companies are asking in interviews to make sure what I'm asking is in line.
My objection was the implication that not crunching Leet Code problems was the sole reason for the low compensation.
But you are right. I should not assume because at one point I knew all those algorithms that I can still explain them under pressure of an interview.
It's true that at the staff interviews i just did, LC was not required but at the staff interviews i'm about to do they will be.
As an interviewer (granted not at FAANG) I see no value in you just proving you did an algorithm on Leet Code. You could just be passing it through rote learning. I want to make sure you understand it. Otherwise I'm just wasting your time. But that's just my interview style, I know bigger companies may be different.
OK, I agree that's definitely something the candidate should be able to do. I'm just trying to point out to anyone reading that it won't be sufficient to explain an algorithm. You have to actually write code to solve a given problem. That's not the same as regurgitating code you remember from leetcode, so please don't think that. You have to apply techniques that you've learned. It's not easy, and it's not intellectually shallow.
This comment and those further down (particularly doubting the data) suggest that you're experiencing strong cognitive dissonance. There are, I'm sure, hundreds of engineers on HN that can testify to exactly how much FAANG pays and in which metro and how little experience they had (not including LC) before they started.
The claim that hiring is broken has been constantly repeated since ~2010 and yet all of these companies somehow, despite hiring all of the wrong non-CTO people, are still alive and are in fact thriving. Like I said: given how consistently these mantras are chanted I'm just curious what you're expecting to have changed since the last time a post like this was made (you did say "every time I see..." so you've certainly seen many). It's a little like that episode of parks and rec with the reasonabilists where they keep predicting and amending the date of the end of the world.
Don't take this the wrong way, but, having helped several people through the interview loop at FAANG, my experience is that it is frequently the ones that see themselves as above grinding LC, that have the hardest time making it all the way through. And I don't mean wrt wrestling with how tricky some LC problems are (most everyone struggles with eg DP) but with marshalling the discipline and patience to actually do enough to do well during the interview.
It has been said before but my personal experience reflects this: it is of absolutely no surprise to absolutely anyone that those that can grind LC fare much better once on the inside and facing the sheer abyss of complexity of FAANG systems.
My comment was not that I don't need to know algorithms it was that at a senior level the questions should be far more advanced than what leet code has.
I'm a little amazed that so many people in these comments assume I don't know algorithms.
Seniors (>=L5) go through a "pirate" round that's system design/arch in addition to the "ninja" round. But you're a CTO so you should be able to ace that (after handily passing ninja since you know all the algorithms). So what exactly are you waiting for? I mean like do you want a referral? I'd be glad to make a quick 5k for referring you since you're so confident that you're good enough.
I probably will start applying if my new company doesn't make it.
Though a lot of me wonders why I am working for no pay at my own company when it sounds like I can make enough to retire being an individual contributor. I do believe in my idea though and want to see it through.
I have friends at just about every one of the FAANG companies so a refferal's not the issue.
Edit: When I say way too long... I mean 10+ years.
Edit 2 because I just realized how it could have sounded: I didn't start a company then give myself the CTO title. I was CTO at my previous job (the one I was at 10+ years).
- I graduated college right before the great recession and that effected my career starting rates
- I stayed at a company I knew was under paying me for far too long (because I had a lot of stock options and I valued them too highly)
If either of those two things were different I'd probably be making a lot more. But my point was, regardless, I am making the mean salary for my region and that mean is not what is represented in this article.
So yes, actually... in hind sight I should have gotten my Masters degree instead of entering the workforce.
Edit: That job I stayed at too long... only reason I took it in the first place was because the recession left me almost no choices. No one was hiring in Boston. The job boards were empty for someone right out of college.
the article didn't say it was representing the mean salary though, probably the salary they are representing is the average - so there are a few high earning outliers pulling that number way up.
Hey just a theory. I am probably wrong.
You're wrong. A previous team built a simple data processing pipeline for a big customer. The throughput is single digit per second. The customer was furious as they would have wait for days to get their data in. The reason is the team was not aware that their graph building and traversal algorithms are O(n^2), and they didn't understand how to distribute their processing logic. My team came in, fixed the algorithms with merely dozens of lines, and improved the throughput by more than 200 times in a matter of days. If you build large backend for data intensive systems, which pretty much every tech company needs, you will need algorithms and data structures. Probabilistic data structures? Check. Manually optimizing popular machine learning algorithms? Check. Rolling out our own implementation of graphs, trees, vector similarity search algorithms and indices, parallelization algorithms, cache oblivious data structures? Check, check, and check. You don't have to use those techniques, but your value to your projects will increase exponentially if you push the boundary.
I said algorithms are table stakes (a poker term for something you need to know just to play at the table). To continue the analogy, sounds like whoever designed that system didn't have enough to buy into the table.
> If you build large backend for data intensive systems
I have. Many.
Depends on how extensive your processing is of course.
Another thing about these threads is that the hundreds of people making the big bucks are always the ones happy to confirm these numbers, and the (hundreds? thousands? who knows?) making small bucks just silently lurk and think to themselves, "I'm doing something wrong." So you get selection bias. Then one person actually has the gall to post "I'm making less, clearly doing something wrong" and he gets tons of responses like "You're underpaid, brah, go get another job!" It's just not a helpful response.
I say this as one of the lurkers who is tired of pointing out that many of us don't make these so-called average salaries, because the response is always the same: "Dude, it's data--can't argue with that. Leetcode and/or try a different company" (as if we haven't done that already).
I have literally zero idea what are you're trying to express. There's no selection bias if everyone is FAANG is very well payed and everyone outside is not.
But if you really want to see something vaguely like that then go on blind and look for posts like "I'm making 650 as an E6 where should I go from here", the idea of which I'm sure just further confounds you but I'm sorry the data is very accurate (eg inside FB/Google/AMZN there's a group that openly discusses return offers for interns and it's always within a few percent of what is on the public side).
I don't see how there couldn't be sampling bias. Salary is a sensitive topic, and people who are making on the high range (within FAANG or outside of it) are going to be more likely to want to post about it and answer surveys about it than people in the low range. HN and Blind are obviously not random sampling. levels.fyi claims to use self-reported offer letters AND reach out directly to compensation folks at companies, which is better. But are these individual companies sharing unbiased data?
When one encounters average numbers that are a little higher than their reality, it's disappointing but believable. When one encounters average numbers that just look just crazy, one begins to ask "am I really this much of an outlier or should I suspect methodology/bias?"
There is little correlation between the quality of your tech stack and profitability.
You could say that means hiring isn’t broken, but only from the perspective of the company.
Hire me inflated ego without any tests, of course. God forbids I have to do anything to get a job that will put me in a bracket of earning more than 99.99% people in this world.
Just the fact "grind Leet Code" is a recommendation to someone who's most recent job title was CTO and has written two books may be a sign these interviews are broken.
But point taken, I'm sure if I studied specifically for interviews I could get those jobs. But the fact remains, a vast majority of people don't work for FAANG and even the "person unwilling to work for FAANG" example is higher salary than I have ever seen.
My point was actually that the article and ones like this seem well research but don't match the reality. For example, I recently interviewed at a fortune 100 company for a Director position and it was what this article says is "non-FAANG staff engineer" salary.