But. My mind is quite slow in the initial phase of analyzing the problem, gathering the requirements, figuring out the best solution, trials and errors edge cases etc.
This feature failed few faang interviews for me already.
It looks impossible to me to deliver a quality (or even just working correctly) code for rather complex puzzle in 40 minutes.
Even if it’s the puzzle I’ve already solved on leetcode. I have hard time memorizing stuff, it’s much easier for me to rebuild solution from scratch, once I understand the core idea. But it takes time.
So how do I get to faang or other company with comparable benefits if their all interviews seem to be heavily biased towards quick, rather than deep thinkers?
FAANG interviews have been gamified to death at this point. Trying to solve the question at the spot is a losing battle. Your best bet for FAANG coding interviews is to just practice leetcode and after a point you'll be able to find patterns and reproduce solutions in reasonable time.
To get a perspective on this: think from the perspective of a FAANG interviewer. Say, they are 3 years out of college and have been asked to take an interview. Do you really think they'll be cooking up fresh new interview questions or just going on leetcode and picking their fav question so that they can get done with the interview and get back to their sprint deadline?
> So how do I get to faang or other company with comparable benefits if their all interviews seem to be heavily biased towards quick
Their interviews are biased towards prep and not much thinking imo.
But trying to make this post a bit more constructive, like other people said, I think it's a matter of practice. I believe that anyone can be good at anything (within reasonable limits), it's just a matter of how much time and effort you're willing to put into it. Personally I like working where I'm working now, despite the relatively low salary and the tons of support I have to do. And having worked at a MAMAA company in the past I don't think I'd want to go there again, for various reasons.
If I'd really want to go work there again, what I'd do is double down on leetcode questions, there are lots of websites for that.
I'd also try doing Advent Of Code and get all stars, preferably in real-time, during December. This isn't exactly leetcode but doing it helped me a lot with my self confidence for solving problems fast. I sort of felt like my brain was forced to stop dawdling and thinking of the problem from all aspects and instead just go ahead and solve it. It wasn't easy and it was very tiring but it helped a lot.
Also: I fully agree with what @YouWhy said, having worked in BigTech myself.
I won't touch on handling the anxiety since you don't mention it, but for "slow thinking", what you need to do is train the pattern matching part of your brain that doesn't require deep thought to answer questions. The way to do that has been covered extensively for FAANG - you just need to grind and spend a stupid number of hours preparing until you can pattern match the broad categories. This is for both LC and system design.
Then, a lot of it is luck and you may simply need to keep trying until you get in. I have a close friend who didn't prepare much, but passed an L5 interview - he didn't get any DP, graph, backtracking problems, they were just greedy/array problems which is incidentally about all he prepared for. The interviews I passed happened to also be in my strongest areas (backtracking, graphs), which was pretty lucky.
Feel free to DM me (email on my profile) if you'd like.
People have a wide range of reactions to FAANG interviews. One of my friends has panic attacks when thinking about interviews. I actually find LeetCode questions to be fun way to spend the evening and I like being interviewed, but I know I'm in the minority.
I consider myself a deep thinker too. And I've been slower at solving interview questions before and got faster over time.
The key about doing these problems is not memorization. I haven't memorized binary search. That's not why I'm fast. But I know the concepts and I can reproduce it at will, maybe with a bug or two which I can iron out while walking through it.
Solving problems in 40 minutes is actually the very last step in the learning process. So not being able to do that just means you haven't completed your training yet.
The process of practicing different problems over and over helps you see the patterns across different types of problems. Similar problems will have similar code structure, data structures, and algorithmic choices.
If I hear a new song on the radio I can guess what band it is before the singing starts because bands often have the same style of songs. It's the same thing when I see a coding problem and choose how to solve the problem. It's an impulse I learned from training, it has nothing to do with me being a quick thinker.
Some people on Blind mention that they do 100's of questions on LeetCode before doing FAANG interviews. Some still fail. I've failed plenty.
Interviews are basically the opposite of showers. That being said, I don't think I've ever failed an interview, but I sure do come up with horribly sub-shower solutions to questions. I do wish there was a little more diversity in the way interviews are conducted, although I have gotten the impression that companies have moved away from the dynamic-programming code challenge style gauntlets, at least a little bit.
I spent 25 years doing enterprise/corp dev at unknown companies before I got my first BigTech job and it wasn’t as a “software engineer” it was in the Professional Services department as a cloud consultant (yes it’s a full time role) specializing in “application modernization” - meaning the same type of enterprise dev work using cloud technologies along with a shit ton of yaml, HCL, PowerPoint slides, diagrams, etc. It requires a combination of people skills, project management skills, writing, presenting and technical.
Three of the Big 5 tech companies have similar divisions. I was personally looking at both AWS and Microsoft because while my short at the time “cloud” background was AWS. My development background was in Microsoft technologies.
There are a lot of “older” former pure “software engineers” who pivoted toward consulting and Solution Architects.
My interview was all behavioral except the initial screening was AWS techno trivia.
In an alternate universe where I was rejected from the big three, I might have been greedy enough to “grind leetCode”. It definitely would have been for the money. I never had any desire to be software engineer at a large company. At least now my projects are ones where I can take ownership of the entire project or at least my part from pre-sales to conclusion.
More pragmatically, even on the job you won't have the luxury of having infinite time to ponder the most optimal, clean solution to a problem, especially at some of the FAANGs. The things you described that you are "slow" at are pretty important skills to have at the level of a FAANG company. A dev that figures out requirements, delivers products, has good code quality, knows edge cases, _and_ does it fast is objectively better than a dev that does all of those except slower. Top companies are looking for the former types of devs.
All this applies if you are trying to get in via the traditional route of applying and interviewing.
If you want to solve tough business problems, outside of the cloud consulting departments - Google, Microsoft, and Amazon all have them - you may not like it, It is a completely different culture. I work with service teams (the developers who build services) at AWS all of the time advocating for features/enhancements that would help customers based on my interactions with the customers. I’m also a contributor to a couple of popular open source projects sponsored by the company.
I have never been tempted to try to transfer over. But I’m at the point in my life/career that the marginal value of another dollar means less than it did a few years ago.
Proper disclosure: worked for BigTech (hated it). The above is based on my cohort members and peers who were selected as specialists, rather than generalists.
A major thing to consider is - if you excel in the leetcode game, your prize will be peers that are fellow leetcode winners, which is a high grade type of corporate cannon fodder; however people selected by that principle are not expected to be and are not allowed to become the big-picture/high-trust problem solvers that many of us aspire to be.
Either you don’t want to practice, or your mind is not flexible enough to learn a new skill. In any case seems like you’re not a good fit for them.