Hacker News new | past | comments | ask | show | jobs | submit login
[flagged] I'm a ex-Google SWE that's coached 300 through the FAANG interview process. AMA
13 points by coachdarek 7 months ago | hide | past | favorite | 29 comments
My name's Darek Johnson and I run a company that's helped mentor over 300 to get FAANG-level SWE jobs for no upfront payment. I also used to work at Google.

Thought I'd reach out and answer any questions you have about software engineering in general, preparing for software engineering interviews, how to get a big-tech job, working at Google, or anything else interesting.

If you're interested you can check out my program - https://www.coachable.dev/


FAQ: Since this has been asked frequently in the past. There is no age, location, or CS background restriction for Coachable. We're fully remote and all ages/backgrounds are welcome and encouraged.

Hi Darek!

Maybe you can clarify my situation a bit with your experience. I've passed the Google interviews according to my recruiter, and have been waiting for a team matching interview for about 2 months now. Even though I passed, I have a feeling I didn't do particularly strongly in the interviews, since I made some mistakes, needed a few crucial hints and didn't have time for a second question in one interview. Also my CV is likely not as strong as many other applicants, since I didn't graduate from a top tier university.

My theory is that my file is going around from a hiring manager to another, and since the economy seems to be tightening, probably they have less openings than a few months ago. So they've become more picky about who to interview from the pool of possible candidates.

I've been pinging my recruiter regularly, and they keep telling me all is fine and they'll let me know when they have news. It's been rather frustrating to wait without knowing what's the process like and what to expect. I've read about people waiting for a team match for months, but also I know from following appropriate forums that someone was hired in this location on a much more hurried schedule.

So I guess I'd like to hear your thoughts about what happens after you pass the interviews and how likely it is that a "mediocre" hire goes through the interviews, but raises no interest of hiring managers.

Hi TreasonStar, so I actually went through a pretty painful team matching process myself. I had to wait 4 months getting turned down by hiring managers in favor of internal transfers.

Did your recruiters say that you had passed the hiring committee? If so, then your interview feedback is probably very strong. Even with the hints, Google decided you met the bar. I can't comment on what actually happened in the interview, but I suspect the delay on the team matching is not because of your interview performance.

Unfortunately all I can say now is that it takes time waiting. I was pretty picky with location so I had to wait longer. If you're concerned about the job market or looking to get a job soon then you can express to your recruiter you're open to more locations and also remote options (this would help if you originally said I need to be in X city).

Another thing you can do is look on LinkedIn for Google engineering managers that explicitly say they are hiring. You can reach out to them directly, inform them of your level and that you made it through hiring committee and ask if they'd like to connect. The recruiters don't know ALL of the managers hiring so this can help expedite the process.

Thanks for the reply!

I don't know if I've passed the HC, so I'm assuming no. My only feedback is that I did "great" in the interviews and I've moved on to the team matching phase.

I'm actually very picky about my location due to personal reasons, but it's good to know that will likely make the process longer.

Thanks for the tip of contacting the engineering managers directly. I might just do that when the frustration grows too large (even though I don't know if I've passed the HC).

Oh this is good to know. I would recommend asking the recruiter directly if you passed HC.

For borderline candidates what they do is wait until a hiring manager is interested in your profile before moving to HC. They do this because if a hiring manager already wants you on their team, then your chance of passing HC increases.

In any case I think the plan would be the same to reach out to hiring managers and see who shows interest. I'd also ask any friends you have at Google if there are teams hiring at your level. It will be easier if you're experienced hire (L4 or higher)

Ok this is very helpful, thank you!

I feel an insane hesitation to try for/jump to FAANG. Its not about any ideological reasons: I just feel inadequate, even with a PhD. My research was on applied ML. I feel I haven't 'made the cut' with solving theory or optimization problems in ML. Nor am I in seriously good shape to tackle core CS topics - because that was not the focus during PhD.

What would you advise for someone like me who would want to make the jump in future?

Honestly, you're probably overqualified for an entry-level position at a FAANG. Go to an academic CS conference with FAANG employees, find some that are talking about interesting stuff, and give them your resume.

The resume funnels on websites of most large companies go straight to /dev/null. (University recruitment is another story; those usually get put toward the top of hiring managers' piles.)

Thank you for the kind words. But I don't seem to have good SWE knowhow. ML area is moving fast on rollers built by cloud enterprises, so I feel actual CS skills get overlooked by folks like us. I already graduated 2 yrs ago (University of Tokyo - FAANG presence is lesser in Japan). I will be mostly leaning on mailing people I know via PhD/LinkedIn/Twitter.

+1 to the comment on the resume funnels being a black hole.

The best option is to directly interface with recruiters. Recruiting is a numbers game at the end of the day. There are pseudo-infinite recruiters and a few applications for each company.

Hi I totally understand the sentiment and this is a very common thought that I've seen people have about making the jump to FAANG. Just a heads up, my advice is in the context of getting SWE roles at FAANG companies.

First off, you definitely can make the jump to FAANG. You've gone through a PhD in applied ML. That's really challenging and at least in my opinion much challenging and impressive than getting an entry-level FAANG SWE job. Even if you don't know the core CS topics now, I doubt it will be that hard for you to pick them up. It will take some time to ramp up on them, but not too long.

To give more reference, if you were to go into FAANG with a PhD you would usually start as an SDE2 and earn 300k+ per year as a starting all-in compensation.

If you want to make a go into a FAANG SWE role, then here's what I'd recommend. My guess is the whole process would take ~300 hours so maybe 2-3 months if you do it 40 hours per week or ~5 months at 20 hours per week.

1. Learn to code in Python. You probably know a coding language (if not Python) by doing ML. Otherwise there are tons of free resources to get up to speed on Python (https://introcs.cs.princeton.edu/python/home/ is an example)

2. Data Structures / Algorithms. With your math background this should come quickly. You'll need to learn the bread-butter algorithms, the ones covered in every undergrad course on DS/A. Again there are tons of free resources online. Here's MIT's open source one (https://ocw.mit.edu/courses/6-006-introduction-to-algorithms...)

3. Practicing Interview Problems. Complete all the problems on here - https://neetcode.io/. If you don't understand a problem, study the solutions and google around until you do.

4. Mock Interviews. If you have friends in FAANG ask them to do a few mocks for you - this is what I did. Alternatively you can use pramp.com and interviewing.io to schedule some mocks. If none of these work, can DM me on hackernews and I can try and help set something up.

5. Recruiting / Getting Interviews. I've made several posts on reddit about this (https://www.reddit.com/user/coachdarek) but with a PhD all you need to do is ping 25 recruiters on LinkedIn per day saying you're interested in SWE roles. You'll get at least a few interviews lined up with 2 weeks. PhDs are hot commodities by big-tech. 6. Interview. This is the easy part, once you've got the interview skills and interviews setup, you just show up and do them. Make sure to have at least 6 interviews scheduled because there's a lot of variance in each interview.

If you have more questions, happy to answer and follow ups.

EDITED: To make the bullets on separate lines.

Thank you so so much! I guess #3-5 is what I need to work on. Let me go over a plan & if I still need some advice, I will shoot you an email. Thanks genuinely

If I was looking for a junior / student / internship position at a FAANG (most likely Google), what should I focus on? Personal projects on my resume? Open source personal projects on my Github? Contributions to big and established OSS projects? If so, should I dive deeply into a single project, or would smaller contributions to a few projects be more advantageous? Are there any specific projects / subject areas that I should focus on? What about commercial work experience (or the lack thereof)? How does all that compare to actual leetcode knowledge / algorithmic problem-solving skills? Any great resources for acquiring those?

If the goal is to get a FAANG-level internship, then there's 2 parts.

1. Get the Interview 2. Pass the Interview

My opinion is getting the interview takes ~10% of the time and passing the interview is ~90% of the work. With this in mind, I'll

Passing the Interview.

To make life easier, you should use Python for coding interviews. It's a high-level programming language, meaning that the code looks more like English that others like C/Java. When you start Leetcoding, focus on doing the problems in Python.

For most FAANG internship interviews, you'll be asked Leetcode-style quesitons. This means to prepare for the interview you should spend most of your time solving problems on Leetcode and then once you've completed ~150 medium level problems (https://neetcode.io/ is a good place to start) then you should try and find ways to do mock interview. You can DM me when you get that point if you need help setting up mocks.

Before diving into LC, I would recommend studying the equivalent of a data structures / algorithms course. If you've already taken one, then I recommend reviewing all the concepts before diving into Leetcode.

When doing Leetcode, make sure to really understand each problem before moving onto the next one. It's ok to look at solutiosn or hints the first 1-2 times you solve a problem, but you should really digest what the key ideas are so you can solve a new problem that uses the same technique/

Getting The Interview.

If you've done any programming projects for your university coursework or on your own, make sure they are advertised on your GitHub and link them in your resume. Either way put them as "Open Source Programming" on your resume and list as many bullets and keywords as possible (e.g. Python, Machine Learning, AWS, GitHub, Testing, etc...). You might think it's cringe to add all the keywords, but recruiters scan resumes like a computer, looking for keywords. University internship recruiters will think this is really good, even though they don't know what you're doing. Put the same projects as experience on your LinkedIn as Open Source.

Once these are ready, directly reach out to 25 university recruiters at the companies you're looking to work at every day. Ask them to set up a phone call for you to learn about open role. Once you get on the phone learn about the company and ask how you can get started with the process. Even if only 1% respond, that means you'll get a phone call every 4 days. Keep doing this over 1 month and you'll get several interviews.

Answering your Questions

what should I focus on? Personal projects on my resume? Open source personal projects on my Github? You should take any projects you've already done for school or personally and put them on GitHub. Make it look professional with README and everything, but then focus on Leetcoding. Contributions to big and established OSS projects? This is nice but not needed. If so, should I dive deeply into a single project, or would smaller contributions to a few projects be more advantageous? Are there any specific projects / subject areas that I should focus on? What about commercial work experience (or the lack thereof)? It's not needed for FAANG internship interviews. How does all that compare to actual leetcode knowledge / algorithmic problem-solving skills? You just need to know Leetcode. Start by reviewing DS/A and then Leetcode until you've done 150 mediums. Any great resources for acquiring those? Leetcode.com, Neetcode.io, https://ocw.mit.edu/courses/6-006-introduction-to-algorithms..., https://coachable.dev are all great places to start :)

Did you notice any interview differences between the US and Europe?

Specifically for big tech companies there wasn't much difference. But then again, most of the companies are American companies so I imagine a lot of the same interview culture was brought with.

Most final round interviews would have 4 rounds with 3 technical and 1 behavioral. The behavioral seems very similar in that you would discuss past experience and how you handled challenging situations, etc etc.

The technical rounds are where I noticed some divergence. In the US, I think there is a stronger focus on doing Leetcode and doing the LC problems quickly (FB asks 2 medium level questions in their interviews).

However for the EU interviews, I've noticed that typically 1-2 of the interviews will be more practical based with debugging, code review, design classes rather than just straight Leetcode. In a 5 round interview you may expect 1 less LC question and 1 more "general coding" for lack of a better term. It almost feels like the EU companies were interviewing like slightly smaller tech companies do in the states and have a slight preference toward practical coding skills.

That being said, there are still 2-3 LC-style interviews so it's a lot of overlap nonetheless.

Should I be willing to relocate to US for FAANG internship or it would be fully remote? If need to relocate, will I be responsible for paying flight tickets and lodging?

Also, what is the best way to get accepted for FAANG interview for someone with no work experience? Submit resume directly to company website? Connect with FAANG recruiters on LinkedIn and direct message them? Maybe try to get some experience in other tech company before applying to FAANG to maximize chances?

Should I be willing to relocate to US for FAANG internship or it would be fully remote? If need to relocate, will I be responsible for paying flight tickets and lodging? > If companies have given you an offer to work in the US for an in-office internship, then will pay for any flights/relocation for you to get there. They will not explicitly pay for housing, but often will have some stipend to help with the housing costs. With any FAANG internship, you would be paid more than plenty to live comfortably. This way if you want to splurge on a nicer place you can choose to, and similarly you can choose cheaper options if you prefer. I think most companies will be doing internships in-office but it depends on the company. Are you thinking for this year or next year?

Submit resume directly to company website? > I would say never do this unless a recruiter said to do this after you set up a phone call AND they told you'd they set up an interview. Online applications are basically black holes so don't apply. Often times if you get filtered out automatically here, you can't apply again even through a recruiter directly.

Also, what is the best way to get accepted for FAANG interview for someone with no work experience? Connect with FAANG recruiters on LinkedIn and direct message them? > You'll want to add some experience to your resume. As a college student you don't need much. If you have any programming projects from coursework, you can put them on your GitHub (clean up the READMEs to make it look professional) and then put on your resume as "Open Source Programming". When you put "Coursework" recruiters don't take it seriously, so make sure it doesn't have "school project" written anywhere on it. They will never actually read the code so spend a good amount of time cleaning up the readme. Then update LinkedIn profiles to show the same thing. Once you've done this, then directly reach out to 25 recruiters per day. Recruiting is a numbers game so just keep reaching out. Even a 1% success rate means you get a phone call with recruiter every 4 days.

Maybe try to get some experience in other tech company before applying to FAANG to maximize chances? > If your goal is to go straight to FAANG, I think it makes sense to just start going for FAANG internships as a junior.

One thing that was not discussed here is actually preparing for the interview. Once you get the interview, you need to actually be able to pass. I'd say 90% of the time spent should be on grinding LC and studying technical concepts and only 10% recruiting after you're able to solve interview questions reliable (150 LC-mediums completed).

Not strictly FAANG related. How do I get my resume past HR or even noticed a little bit? I'm self taught, from a third world country. In the US knowing HTML/CSS/JS Framework gets you a job, so its not skill that holds me down. I'm working on my portfolio right now to make it more professionnal, but apart fom that? Any input would be appreciated. What would you suggest if I'm looking for a US/EU job?

Are you looking for positions in US/EU? OR are you looking to work at US/EU companies where you live now?

The main barrier would be the work sponsorship. If you've coding background it's likely that it'll be easier to get interviews than you think.

What is your current recruiting process like now? How are you applying to jobs and reaching out to recruiters?

I've talked a bit about this in other posts (https://www.reddit.com/r/IAmA/comments/vfzejn/comment/icysbk...)

I'm looking to work for a US/EU company, from where I live. I'll take a look at the reddit thread, thanks. For now, I target small companies from AngelList + the who is hiring thread from HN. What do you mean by coding background?

What's the hire/no-hire balance between soft-skills and leetcode performance in the interview rounds?

Just clarifying the question here. Are you asking what percentage of applicants are rejected for soft-skills compared to Leetcode performance?

To give my best shot at this, I think I read that the behavioral interview at most big-tech companies had a pass rate of 90%+. This has given me the impression that if there aren't any blatant red flags (explicitly disrespectful, lied on resume, etc) then the majority of the decision will be placed on Leetcode performance. Most companies have an interview slot dedicated to behavioral questions, however Amazon has every interviewer do 10 minutes of behavioral questions which increases the chance of one of them finding something they don't like (with 4 more chances)

That being said, I would say that there is a component of soft-skills in Leetcode performance. This is less about "tell me when you were a leader" but more on a communications side of things. It's important as engineers to be able to effectively communicate ideas. This means that even if you can code the craziest Leetcode hard problems, if you can't convince the interviewer it works or they don't understand the solution, they would view that as a negative signal in a Leetcode interview. If I had to put a percentage on it, I would say 20% of the interview would be on how you communicate it. However learning the algorithms and problem solving is the majority of the challenge.

One caveat, I'm giving this opinion on the SDE1/SDE2 level. I imagine it's different for more senior and manager roles.

Hi Darek thanks for doing this AMA. If you had to pick 3 leetcode problems that are most representative of those seen in google interviews, which would they be (can just be topics too if you feel google tests for certain data structures etc)

Oh wow that's a really good question. I would pick the following but keep in mind it's important to go through all the different solutions.

1. Unique Paths 2. https://leetcode.com/problems/unique-paths-ii/. This problem can be solved with dynamic programming, graph traversal, and recursion.

2. Max Product of K Integers. Not exactly on Leetcode, but this one I really like. https://leetcode.com/problems/maximum-product-of-three-numbe.... It's essentially finding the maximum product obtained by selecting k numbers from a list of N integers (1 <= k <= N). This problem can be solved with a greedy algorithm, two pointer with sorting, using heap, and dynamic programming.

3. Word Ladder (https://leetcode.com/problems/word-ladder/) I think it would be wrong not to include a string problem. I think there are a lot of different ways to solve this one. You could use a trie or treat the strings as a graph. There are also a lot of optimizations you can make depending on the length of words vs number of words.

Honorable Mention. LRU Cache (https://leetcode.com/problems/lru-cache/). This may be the most common interview question asked at one point. Being able to execute a doubly ended linked list, leverage a dictionary, and implementing them all in a class with object oriented principles.

These don't cover everything, but give pretty good coverage of all the topics.

Hopefully that answers your question!

Thanks for taking the time for this! 1, 3, and the honorable mention are among my all time favorites. I haven’t seen either variation of 2 before — Going to do it right now

In your experience, have you ever seen somebody get hired without doing well on the typical leetcode problems? Are FAANG companies completely married to the leetcode interview idea or do they make exceptions?

While it can happen, I'd say it's very rare that if a candidate does poorly on the LC interview that they would get hired at FAANG companies in the current hiring environment.

FAANG companies don't really have another better alternative to Leetcode interviews so that's what they go with.

So yes, most FAANG are married to leetcode interviews especially for SDE1/SDE2 roles.

Great concept! What's your conversion rate?

90%+ of students that go through our program get a job paying at least $100k within 6 months.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact