Everytime this topic is mentioned in HN it always garnered so many comments more than any other topic.

And so many people have rehashed over and over their positions. I did, and I will do it again today.

Tech booming just happened pretty recently. People are going from law and finance and medicine to software in droves. Though it is arguably that those people better stick with law, finance or medicine than software, the fact is that software field has lower barrier of entry, from socio-economic/financial point of view and artificial gatekeeping point of view. Majority of people just don't have the resources to study law, finance or medicine.

We have a gold rush, and majority of people want to improve their life, with the least amount of effort/barrier possible.

This result in new supplies of software engineers, whether from graduating bootcamp or graduating CS degree. All of these engineers are of varying quality. Let's not talk about the older experienced software engineers, because I think it is safe to point out the fact that older more experienced software engineers are of better quality in general.

So now, we have massive influx of newbie/junior software engineering candidates. How do companies realistically interview all of them? Knowing that these people graduated with varying degree of skills/quality.

If the majority of the workforce are older experienced software engineers of good quality, then companies won't have this filtering problem. They can just give interviews by talking from previous projects/referral and call it a day.

But now we have this DS&A and take home test as well, because interviewing is hard, and the more candidates out there the harder it becomes.

I am about 5 years into my career in this, and did interviews at a few companies and also FAANG. I experienced take home tests, work for a day, and DS&A. And I choose DS&A every single time because the other two sucks.

I don't have that many projects, or even side projects that I can be proud of. I love doing hard tutorial such as learning how to do compilers rather than doing some projects. All my github is filled with trash/throwaway code. And for some reason I always got involved with projects that ended up being throwaways in my previous companies, because those projects were generally hard problems.

Work for a day, take home tests, those two are a waste of time in my opinion. I can't do multiple of them and get competing offers. But with DS&A I can just learn once and do it multiple times and get multiple competing offers. Not to mention that I won't have to compete with more senior engineers that are obviously more capable than me. By doing this DS&A game I already filtered myself up for better.

Besides, I hate learning about framework this, framework that, technology this, technology that, multiple times. It gets old quick. Don't get me wrong, I love learning new stuffs, but too many of those and I just spin around in circles learning the next Javascript framework flavor of the month. I'd rather be interviewed about how to do recursion than being interviewed about the nitty gritty of React vs Angular, Express vs Koa, etc etc etc.

In general I favor DS&A interviews. For those of you who are more senior than me. Please don't do DS&A. Please stick with what works for you. If competent people like you start doing DS&A and be good at it, then what are the chances of people like me, or other non senior engineers for getting a job. If you think I'm being sarcastic, believe me, I am not. I truly believe there are people out there that can code in circles around me despite me knowing how to recursively generate a permutation.

In general I have success in interviewing at non FAANG/Unicorn companies. I usually finished those coding challenges in 10-15 mins, and the rest 30 mins I just talk to them about random stuff and they ask me about previous project, culture, etc.

However, I still haven't found success in FAANG companies. I still got rejected, despite having solved 300+ Leetcode questions. And yes I know people who solved 500+ and still got rejected.

Now that brings me to the things that bother me the most. I've seen, as many of the commenters here, that there are people who got in despite not doing any preparation at all. I thought at first those were lies, until I saw it myself, and not just once, but twice, three, and now four times. Everytime I heard these stories it demoralized me.

I've seen people who got into L3, L4, E4, without knowing how to reverse a binary tree or do a simple BFS/DFS.

Why? What am I doing wrong? What are they doing right?

p.s. Don't ask me why I want to work for FAANG. I need (not just want) the money. I have people that I support.