Source: interviewed with 3 FANGs a few months ago without any significant open-source contributions, got L6 or equivalent offers from all 3. I also don't have a CS degree, for anyone who would feel discouraged by that.
Edit: I don't want to minimize the effort involved, though—I did spend a lot of time learning algorithms and data structures over the years, but I enjoy learning this stuff and find it far more relevant in practice than most people here appear to think.
The hiring bar at these places is pretty astronomical. Realistically it’s going to be well out of reach for a majority of even the very best programmers in the world.
Don't read too much into it. As an entry level applicant you're only getting a small fraction of anyone's attention and will need to apply Hanlon's razor to interpret most of your interactions.
(I'm sure they are some toxic interviewers and dysfunctional companies where that's not the case, but you don't want to work there anyway so it doesn't matter.)
A lot of good things flow from there.
First, you should feel a little more relaxed. This generally helps think more clearly, talk more naturally, avoid panicking, etc.
Second, you should shift your mindset to view your relationship with the interviewer as based on cooperation, not antagonism. This generally helps act more friendly and less defensive.
Third, if you were at home cooperating with a friend to solve a difficult problem, would you stay silent, or would you run your ideas off each other? Probably the latter. The same applies here. Unlike your friend, the interviewer is limited in how much information they can give. But again unlike your friend, the interviewer already knows exactly how to solve the problem! So leverage that. Ask them whether your proposed solution makes sense. Ask them whether the time and space complexities of your proposed solution are good enough or if you should keep digging. By the time you start implementing the solution in code, you should be fairly confident that you're going in the right direction. (Sometimes the interviewer won't give much away. Don't panic, it happens—in that case just go for it and hope for the best.)
where can one (I) test to find his position on it ?
I was super lucky to work with a gem of a recruiter at one of the FANGs who spontaneously pushed for 6 after my feedback from 5 came back positive. The other FANG was more reactive and didn't invite me back until I told them of the competing offer. So perhaps try pushing for it yourself if your recruiter is not as proactive and you feel you have a shot. Worst case they'll say no. (Or they'll say yes and you'll bomb the next round. That's not supposed to reflect negatively on your first round, although it would likely have affected me psychologically and made me less confident during the comp negotiation.)
I ended up joining a company without levels, so I'm afraid I don't have any more useful information for you than what I gleaned as a candidate.
How many years have you been working in SW industry ?
I've done 200+ problems on leetcode, all of ctci, and lots more. Hundreds of hours of prep over the last 5 years. Never received an offer from FAANG after 10+ on-sites with them. Know others with similar experience. People I know who get offers are even more aggressive with prep but also get lucky. (As they sometimes get rejected even when they've received an offer from the company before...)
Generally, if you can finish any random medium difficulty leetcode question in 30 minutes, you are at the algo bar. But there's still systems, behavioral, communication, etc.
I'm kind of convinced there is something else happening where the person writes down technical performance instead of, "didn't like his shoes" or whatever.
They keep pinging me every six months to re-interview too. They don't like to share why they declined though - so I don't get why they ask for me to reinterview like something magical will change without feedback.
My $0.02:
Try to press harder for feedback. I've generally had no difficulty extracting feedback on rejections, especially ones where I could be re-invited back ("well, without understanding what reasons I was passed on last time, it doesn't make much sense for either of us to invest in another round where the same issues may very well exist").
All else fails, consider mock interviews. There's paid services out there that will do this -- and you'll get detailed feedback.
It’s nice to glamourize it a bit but you guys make it sound downright mythical.
Leetcode questions are not enough for 'seniors', even as a interviewer, it brings the same good problem solvers, but not enough applying this into practise such as open-source projects / contributions, which is faster to review than these Leetcode questions.
> It’s nice to glamourize it a bit but you guys make it sound downright mythical.
Perhaps not in 2012-2014 but in 2019 it is the reality of many candidates getting a FAANMG level role that have to face a competition of thousands of applications every week.
I wish it were easier than this, but when I look at the following real world open-source projects:
* FB creating the Hermes JS Engine.
* Netflix submitting patches to the Linux Kernel.
* Googlers working on Fuchsia OS.
* Apple hiring dynamic linker engineers for dyld3.
* Amazon writing the firecracker virtual machine.
* Microsoft hiring engineers for Typescript and Chromium.
I think that justifies utilising the data structures and algorithms resources listed above. And now if one told me that they have some contributions to at least one of them, I'd tell them to send a link to the code-review / patch and I'd just bring them onsite and ask more questions about it.
For sure there is interesting work to be had, but don’t pretend that everyone is toiling away on what you see on GH and HN.
In my case I find prepping really dry and like to work on personal projects and veer off to different technical things that I am curious in.
When I try to solve problems I hate to look at answers and I spend a lot of time sometimes days trying to solve it. What is your approach to solve problems?
Could you please elaborate on how you prepared to a person like me who is aspiring to take a FAANG interview?
I'd suggest always working on paper or whiteboard - never use a computer. (You have to emulate the environment) Set a timer for every problem. (1 hour max - aim for 45 minutes on medium/hard when starting out; lower it as you familiarize yourself with a subject) Start throwing data structures and algorithms at the problem (pattern matching them, basically). Solve it or don't. Learn something to take away from it. If you don't solve it, learn how to solve it, and where you were lacking. If you did solve it, be sure to check other solutions because sometimes yours is crap. Practice that thing you were lacking. (Needed to know BFS? Implement BFS from scratch 10 times using spaced repetition) If you're planning on 8 hour study sessions then focus on one type of problem at a time. (BFS, DFS, graph problems, tree problems, binary search, dynamic programming, etc.) Only do those kinds of problems in that session. Set it up like you would for a math class. You do one chapter in that session/day/week/whatever and proceed to do a few chapters (say a BFS chapter, a DFS chapter, and a binary search chapter)... Once you've done a few, give yourself a midterm covering the topics you learned. So give yourself like 2 DFS, 2 BFS, and 2 binary search problems and see if you can solve them in a timed environment. If you rocked the midterm then proceed on to do more chapters and more midterms. If you didn't then relearn those subjects before moving on. Finally, when you feel like you've learned everything then give yourself a final exam to see if you remember everything and can still do it right.
Basically - treat it like a math class. It's not just memorization (you need to memorize the strategies, that's for sure - you need to be really fast at implementing BFS, DFS, binary search, etc. That should be wrote memorization but with a deep understanding).
When I try to solve a problem I generally see the output needed and construct code to get the pattern with a lot of trail and error. I am not sure if I can scale with this. If I am fresh and in flow I can come up with good solutions. If not and I am nervous then I will have trouble solving something as simple as fibonacci.
I sometimes have trouble doing pattern matching where I get confused if the problem is changed slightly and is made tricky. I think this is because I am trying to be too specific with the match and not seeing a generic picture.
Can you suggest how a person with a job can practice so thoroughly? 8 hour sessions everyday is tough maybe on weekends but still is sometimes difficult.