Ask HN: Do I have a chance to get into FAANG as a slow thinker?

52 points by aristofun ↗ HN
I have 15+ years of software engineering experience. As an IC in real world scenarios on average I tend to outperform many of my peers in delivering features, both in dev velocity and the quality of code.

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?

34 comments

[ 3.1 ms ] story [ 84.2 ms ] thread
How much have you practiced solving those puzzles?

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.

You do software engineering the way it’s supposed to be done. FAANG glorifies useless BS. People like you get into a FAANG buy beating it and buying it out.
(comment deleted)
The implication you are making here is that quick thinking is mutually exclusive with deep thinking. Practicing deep thinking repeatedly (i.e with a good practice regimen with leetcode) in a non interview setting will allow you to naturally come to intuitive solutions on your own time, and this will implicitly make you think quicker as well. I agree with @p1esk in that you either need to change the way you approach practicing, and if you can't do that (either with unwillingness or lack of learning flexibility), it will be an uphill battle to get into FAANG and FAANG like companies. Unfortunately this is how the interview process works and there isn't much you can do about it.

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.

> quick thinking is mutually exclusive with deep thinking

It obviously is. Less time you invest diving, less depth you reach.

I do all of my best thinking in the shower. If I'm in an office, and encounter a hard problem, I immediately resent not being able to get in the shower to think about it. I get anxiety about jumping into a solution that hasn't been signed off on by my shower brain.

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.

Makes me think of “To Rome With Love” where one of the characters can only sing opera if they are having a shower. So they put a shower on stage.

Showers do nothing for my thinking but walking alone in a park or countryside (no people and not even a dog) does.

TL;DR: specialize in a niche field such as advanced web development or production engineering; you'd be able to be interviewed for your skillset outside of the crowded leetcode funnel.

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.

> you'd be able to be interviewed for your skillset outside of the crowded leetcode funnel

Could you elaborate how this process looks like? You just skip leetcode part?

In the non-US site that I was a part of, there was a separate category of positions whose job descriptions included a very specific "advanced" skillset intersection, for example, resource profiling + React, or OS internals + DevOps.

Internally, they had been earmarked for specific teams in a dire need for these specific competencies, and it was apparent that the circuit was very heavy on that and little else - a lot of the people selected were good at what they did but did not have an academic degree and very obviously did not "speak LeetCode". I consider the fact that they still made it though as a tacit acknowledgment that no candidates were obtainable who would both pass LC and have the crucial specific skills.

This might have been a local talent pool phenomenon, but I would be surprised if the corporate had granted an exception only to a single "colony", however important.

How much prep have you done?

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.

As a person who’s done this many times, I’d say the trick is practicing a lot. Before thinking about strategies, measure how much you actually practice interviewing (solving algo problems, system design, etc.), and increase that as much as possible. From my experience, the amount of interview prep one is willing to do is the most important and you don’t necessarily need to be “smart or quick thinking” to make it into any of the companies.
I have no real advice to give you except to say that I have the same problem. I'm respected where I worked and can deliver features fast and with quality, but I'm very slow and methodical when gathering requirements. I also have a hard time memorizing stuff. So I suck at leetcode. To top it all, I tend to panic during interviews.

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 find these leetcode memorizing extremely counter productive and having nothing to do with real engineering job.

But unfortunately Im alone in a new country and i have a family to feed and capital to grow.

> It looks impossible to me to deliver a quality (or even just working correctly) code for rather complex puzzle in 40 minutes.

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.

Very true. Practice for 3 months and you’ll know 90% of the solutions cold.

For a salary of $700k - staff - it’s easily worth it

He’s not getting a staff position at any tech company with no previous experience at a large tech company by “grinding leetCode”
$400k for an senior software engineer.

There is a market for leetCode - unforutnately or not - you have to accept it.

He’s probably not going to get a senior software engineer position just by “grinding leetCode” if all he has done is pull tickets off the board in enterprise dev shops without showing “scope” and “impact” and without any system design know how.

That’s not meant to be an insult and from all indications from his question that’s what he has done - which is the same thing most of the 2.7 million devs in the US do. In fact that’s what I did for most of my career until 2 years ago.

The only reason I ended up in $BigTech was because I did have “system design”, project management, requirements gathering, and other soft skills that allowed me to get into the cloud consulting department (yes full time with the same 2 year signing bonus 5/15/40/40 vesting scheduling that all employees get).

I know there is a market for leetCode and I encourage my younger relatives who are graduating in CS to “grind leetCode”. I am pushing back on the thought process that 15 years of enterprise Dev experience means much of anything, at most he can get an SWE II position just by studying a few months.

(comment deleted)
> 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?

At my FAANG, all publicly available interview questions (published on leetcode, interview prep groups, or anywhere else) are prohibited. So yes, people do come up with original questions, and then get those questions reviewed by their peers.

The benefit of leetcode is to re-familiarize yourself with algorithms that you might not have seen since university days, and to practice staying cool and coding under time pressure. Not with practicing the answer to specific questions you will be asked.

> all publicly available interview questions (published on leetcode, interview prep groups, or anywhere else) are prohibited.

And how thoroughly is that prohibition enforced? Do you scrape libgen, for instance? Coursework on university websites? Mathoverflow? I'm guessing not.

Personally, I have asked people old "folklore" questions in interviews, and probably will again. They're not on leetcode, but anyone who paid attention in a sufficiently good CS program has seen them before - and honestly, I don't really care to filter those people out, given the overall state of the candidate pool.

> And how thoroughly is that prohibition enforced? Do you scrape libgen, for instance? Coursework on university websites? Mathoverflow?

No idea, I'm not involved with that effort. I did see a question I wanted to ask get banned because it was leaked in a private interview prep group. And I saw questions get banned for being, at their core, too similar to leetcode ones (despite not having the same problem statement).

I wouldn't approach it with this attitude. Preparation is good, but really the most important thing to do is be able to look at a problem and identify what approach is correct.

Coding rounds are fairly predictable and are a great equalizer, which is why companies use them. Focus on being able to identify what data structure and which algorithm to use and you're already halfway there!

> 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?

This is a bit absurd! Interviewers are trained and constantly calibrated so that all candidates have as much of a fair chance as possible. Questions come from a common bank, engineers are not expected to come up with their own.

Anyways to the original question - try studying something like leetcodes explore section and get familiar with each concept one at a time. Then read problems and just try to identify the approach, then read the solution.

If you still struggle with this type of interview, then just focus on companies which have take home projects. There are tons of great companies out there outside of big tech!

Fellow "slow thinker" here. Yes, you can! In fact, I recently got a staff engineering role at FAANG. I also have really bad performance anxiety and don't sleep at all before interviews. Yes, it felt like everything was stacked against me and I thought I'd never be able to pass these interviews.

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.

This probably won’t be helpful. But I suspect that if you have spent 15 years in software development without having to do the leetCode/DS&A monkey dance, you were probably doing enterprise/corporate dev.

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.

My question is, besides more money, would you be happy working at a FAANG company? By all means, do fulfill your ambition but keep in mind you may not be happy there though you’re going to bump up your resume for sure
I have no one to count on in a new country, and no capital, and a family to feed.

So I don’t give a … about “happy”, i just want to maximize my profit doing what i can do extremely well.

Sounds like you’re to get best buck for your bang. Best of luck and fortune to you!
(comment deleted)
That begs the question, why do you want to work at a FAANG? Money? Supposed “prestige”, new challenges?

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.

FAANG is a big place. You can get in to a low tier team yet still get paid just as well. At any top tier team, this skill level will not cut it. You might squeak by for a year or two, but it will be painful.
I disagree with the last half of your comment. I (like to think?) I work for a top tier organization, and plenty of times when I have a thorny problem, I have to spend a few days just thinking about it to get my head around all aspects of it. Then everything suddenly clicks, and I can implement extremely rapidly, but doing the cogitation is sometimes a prerequisite.

I agree that at the interview stage, that’s not an ideal thought process, but there are other ways to make a good impression in the interview.

Practice more. Speed comes with experience.