Ive been reasoning about tech jobs and interviews, and came to the fucked up conclusion that getting a $300k FAANG job literally boils down to solving a few leetcode questions on a whiteboard. Isn’t that mind blowing? How fucked up is that? And why are we okay with this? Your comp should be derived from past accomplishments. Not a random coding question you could memorize.
TC 150k. YOE 1
- Facebook public2That's why it only gets you a 300k job; you have to do a lot more to get a high paying gig.
- PTC Googler19Solve 300 of them.. then analyze how hard it was to do that . And how hard it was to keep yourself motivated to do that with a full time job.
Then ask yourself if solving those 300 lc medium and hard taught you more about algorithms or a 4 yr college degree.
Then put yourself in the hiring managers' shoe and think if you would hire a 10 yoe Dev who can't solve a simple dfs question or a 2 yoe guy who can. The answer is not always easy.
- Don't you know "reversing a linked list in linear time & constant space == he/she can write a service which scales and serves millions of requests per second"?
- Bloomberg bbgWhen you have achieved the position of a hiring manager you can change the rules... until then play the game.
- New 🍔 🍟moreInterviewers these days don't care abt your accomplishments. Assumption is you're lying/exaggerating. Notice most of them barely even looked at your resume beforehand?
- Apple woodoHopefully in a couple of years companies will realize how fucked up was their hiring based on leetcode and will return to other meaningful hiring practices.
- New NcEf26There’s no other good way to fight off bias and nepotism in hiring. Tons of companies are ruined by nepotism. They need an objective way to measure competence. Which is basically impossible at scale. So they standardize, but any standardized test can be gamed.
- Google come2daddy“Past earnings are not a reflection of future performance “ - every mutual fund.
1) Same applies for people. There is no guarantee that a person who did good in past will continue doing good in future.
2) There is no way in hell to quantify one ‘s performance. Until you are Geoffrey Hinton, Jeff dean or Doug Cutting, there is no way that a company can evaluate your past work. Relying on this is opening up extra 1000 layers of lies in resume.
3) Smart companies hire people not for one thing. They hire smart people who can easily move around and pick up things.
Leetcode is a way to judge if you are ready to put effort in preparation. What matters is your ability to learn things which you have never done before and ability to show that you can go far enough to do what is required.
People who believe that there is a better way but are not ready to do something agreed on, are the people who crib the most and are much less productive.
- Good companies ask scalable system design questions which you an answer competently only if you've had experience. That's in addition to leetcode type questions. And even for those codinu questions, the places worth joining evaluate you ok how you progressed through the problem. Not on how fast you coded it on the whiteboard.
I think the ideal would be a 3 or 6 month paid work commitment and a hire/no-hire decision after that. But thats impractical, so tech interviews are the way they are.
- 1. GitHub.com/donnemartin/system-design-primer
2. Grokking the system design interview (a bit simplistic)
With both, you have to dig deeper by yourself. Just reading them or skimming won't do.
With scalability, you cannot fake it unless the interviewer is clueless, so be honest. Learn to confidently and clearly say "I don't know, I've never seen this in practice, but maybe I can make an educated guess". That's a very valuable trait.
- I don't think it is as bad as some people make it to be.
If you are a great programmer, you should have some good accomplishments on Google code jam or top coder.
And you'll be able to get a job without Leetcode.