Time to give back to the community! During my prep and interview process, blind has been a very helpful companion, so thank you very much everyone! Heads up though, this will be quite long! The point of this post is to share insights into my interview prep and learnings from my interview experience in hopes it helps those going through the process. I will share the offers I received along with the TC, but I will not provide a breakdown or detailed analysis of these offers just because it’s not the point of this post and to remain anonymous. I will structure this post into the following sections: 1. The Offers 2. Applying 3. Interview Prep 4. Interview Experience Per Company 5. Negotiation Strategy 6. Decision TC: 120K YoE: 1.5 (at no-name startup) + MSc from top CS university 1. The Offers Update: I have updated these numbers to be the average over 4 years including sign-on + base + RSU + bonus (previously I was taking the average over 2 years only because that's what I cared about in my decision). I hope this helps settle everyone's "fishiness" speculations. Meta E4 TC $325K (Bay Area) Google L4 TC $350K (Bay Area) Amazon SDE2 TC $400K (Bay Area) Citadel L4 TC $500K (NY) 2. Applying The only reason this is a section is because of how demoralizing and demotivating it is to get ghosted and rejected constantly when applying. It’s disgusting. Why even have an application process if you’re just going to constantly reject everyone? That said, I did not apply to any of these 4 companies, they all reached out to me via LinkedIn. Honestly, if I had applied, they would have all rejected me. I did, however, apply to companies like Snap, Slack, Stripe, Apple, LinkedIn, and a few more. Guess what? They all rejected my application. Also, I reached out to a few of their recruiters on LinkedIn, and, ghosted. What’s the point? That said, I now believe it’s critical to have the shiniest LinkedIn profile to really get those recruiters reaching out to you. It seems like the easiest way. 3. Interview Prep I want to start by saying that I did not need to pay a single penny for interview prep. There are so many free resources out there. The only thing you can’t get for free are mock interviews, but I did not feel I needed those (I still think those can be helpful and it might be something for you). I will give references to some prep material I used as I go along this section. I also want to say that it was my first time EVER doing Leetcode or system design prep, so it was quite the learning experience! Honestly, the way I prepped was not based on any premeditated strategy, I just winged it and kinda listened to my weaknesses and worked on the skills that I felt needed most sharpening. It seems to have worked for me. My prep time was about 50 days (mid-March to end of April), so about 7 weeks. My prep consisted of 60% Leetcode, 25% System Design, and 15% Behavioral. I also did them in that specific order. The First 3 weeks were mostly leetcode (Leetcode’s top interview Q’s): Week 1: started with easies, ended with struggling through mediums very bad Week 2: working hard on mediums, struggling with some and getting the hang of some Week 3: I noticed a large improvement because I started noticing a lot of the patterns in the problems Week 4: I started mixing it up with leetcode & some system design prep (mostly watching youtube and taking notes). At this point, I was comfortable with a lot of mediums, and I found company-specific lists and I started doing the mediums on those lists. Week 5: I was doing 50% leetcode, 50% system design. For leetcode I had started incorporating some hards, the most common ones at least. For system design, my note-taking was decreasing, and now I was focusing more on practicing actual problems on my own (mostly example questions I found online through search). Week 6: This is when I started doing behavioral questions on the daily. At this point I felt I really nailed down the system design concepts, practice was OK. Leetcode, I was very comfortable with mediums but struggling with hards, and the hard hards were impossible for me. Week 7: At this point, I was waiting for my interviews to start, so I was in KTLO mode, doing 1-2 leetcode mediums to stay in shape and reviewing my behavioral & system design notes. Leetcode strategy: I had never done leetcode before, but I did take DS & Algo classes in my Bachelors (5-6 years prior) so I wasn’t totally oblivious. From what you noticed in the timeline above, I started off doing easies to brush up on the basics and kept trying to tackle some mediums (while googling the concepts I was missing as I go) until I had my DS & Algo’s nailed down. From there, I was really just on auto-pilot practice mode, grinding mediums like solving for exams. I didn’t focus too much on hards until the last 2 weeks, honestly, and this was a decision I took to save time. I did at least do the mainstream hards (e.g., rectangle in a histogram, trapping rainwater, etc.). I understand it was a bit risky, but I felt the probability of getting many hards for L4 interviews wasn’t that high, and mastering mediums was a better time spent. Looking back, I felt like this was a wise decision in my case. All in all, I did ~200 LC questions. (I tried to upload a picture of my dashboard but failed, I'll try again later) I mostly found random lists online, these are the primary ones: https://leetcode.com/discuss/interview-question/1376426/Google-or-Facebook-or-Interview-questions-or-July-2020-July-2021 https://www.reddit.com/r/leetcode/comments/hnpt5d/here_is_a_resourceful_list_of_problems_that_i/ System Design Strategy I started by watching youtube videos while cooking, having lunch, going for walks, driving, etc. This was to get a sense of how the interview structure was and what kind of material was covered. Then, once I got a good idea of the breadth of topics, I started taking structured notes while watching these videos. I mostly used these two channels: https://www.youtube.com/c/GauravSensei https://www.youtube.com/c/ExponentTV Then I came across the system design primer resource which helped fast track completing my notes and getting into practicing. This is the link https://github.com/donnemartin/system-design-primer. For more practice, I did a few from Grokking (what I could get for free), youtube (listening to problem statements and trying to do them myself), and this website http://highscalability.com/blog/category/example. Behavioral Strategy Since I was interviewing for Amazon, I had heard about their LPs. So that’s where I essentially started. I read up on them and looked up questions about them online. I learned about the STAR method and listened to a few sample QnAs on youtube to get a feel for how to answer these questions (also did this while cooking, eating, etc.). Once I had a good idea of the type of questions there are and how to answer them, I realized a pattern. I realized that if you have a set of projects/achievements, then you can build stories around these to answer any question on the fly. So what I did was I identified the key projects I had worked on in the past 2 years (which was essentially my whole post-MSc career at this point), my role in them, my contributions in detail, and all the in and outs of those projects. I sat down to think about what I did well, what I could have done better, where I had failed. Just really contemplating my existence in those projects. From here it was easy. I got a set of random questions online, put them in a doc, and just answered them based on these sets of projects. I didn’t memorize any of these answers. Even in the interviews my answers would change just because I knew my experience so well that I can come up with a genuine answer on the fly to most questions. It also felt very natural in the interviews, and my stories were so real and they held up very well with follow up questions. The key thing was to really flush out every single little detail and experience you had in every project/achievement you could think of, and make sure you are aware of it in your mind. Mock practice here really helped, I didn’t have to pay for it though. I would just hand a list of questions to my partner, they would ask them to me and I would just ramble on till the next question! 4. Interview Experience Per Company The interview with each company was a different experience, it’s quite interesting. I am going to talk about them in no particular order. Before I do, I want to say that aside from the Amazon interview I really came out of most of the rounds feeling uncertain about my performance just because of how many mistakes I made while coding (missing an edge case, totally bombing my cycle detection code, etc.) and without hints it would have been a complete failure. Although I was able to solve most problems by the end, I did need quite the number of hints, and I think it was just because I was really nervous. The Amazon interviews were by far the easiest. The interviewers were very friendly actually (I did not expect this given their reputation). For the LPs, they just read the questions off a doc to really just get them out of the way, and the interview questions were textbook leetcode mediums (probably even Amazon tagged). I was so overprepared for the LP though, the interviewers were very engaged with what I had to say and it became more like a casual conversation than an interview. The Meta interviews were not easy, but they were not difficult. I would say 1 medium-hard and 2 mediums. They were also textbook leetcode style questions. The interviewers are very friendly, it really felt like a pair programming exercise than an interview. Their hints were very involved and obvious, as opposed to being vague and being a test themselves. I really really enjoyed these interviews, and I got a very positive impression of the culture. In the behavioral interview, I could tell the interviewer was trying very hard to disarm me and seem very casual. I don’t know if this was a strategy of some kind, or if that was his style, but I stayed on top of things and kept my answers professional. The Google interviews were definitely not easy, but they were the most interesting. I would say 1 hard, 1 medium-hard, and 1 medium. The medium was typical LC problem, but the other 2 were not at all. They were real situational problems with very long and elaborative problem statements. The hard one was actually an open-ended problem, and it was a lot like a brainstorming session with a lot of PoC code. Something you’d end up writing a research paper worthy heuristic about. The medium-hard was also very interesting, it involved optimizing my algorithm by taking advantage of parallel programming constructs (simplified by the interviewer). I felt the problems were very practical, and I felt that no matter how much LC you grind, these problems really needed you to find that “gotcha” idea in them. They assumed you already have nailed down your LC skills, and added a layer of ambiguity/complexity over them (not in a bad way). So you had to be either smart, lucky, or experienced, I don’t know, but they were not questions you could just practice. As for the behavioral interview, the guy was a pleasure to talk to, so it was like someone picking your brain or being curious about who you are as a person and you just casually answering the questions. I still stuck to my strategy and kept it professional, but it was very light and easy to do, it was not at all fake. The Citadel interviews were by far the worst. The interviewers were just cocky and pushy. They wanted to tell you why you are stupid and why they are smart. Their body language and demeanor told you that they were forced to be there. They give you LC hards or super complex system problems that you have to write like 3-4 big classes to build, and they bullshit talk so much that you only end up with like 20 minutes to code. Honestly, I bombed 2 out of 3 of the coding interviews. However, I did very well on the 2 behavioral interviews, they really liked me. One of the interviews was with a senior senior senior person, and we hit it off very well from an intellectual standpoint. He was very intrigued with what I had to say, and he was a delight to speak with. The rest of his team, not so much. I don’t know if being obnoxious assholes was a strategy, but there is a chance those people were going to be colleagues. One common theme I realized across all interviews was that we went overtime talking about my experiences, projects, and answering questions I had asked them. Some interviews had 15-30 minute breaks after them, and I would consume most of that time with just chatting with the interviewer and asking genuine questions that were just a natural product of talking to the interviewer (not prepared, although that would have been a better idea). Coming into this, I had totally underestimated the behavioral interview and how important it is. I think this was a product of the lack of emphasis on it in the community. Prepping for it might not be too difficult if you do it right, BUT I felt that prepping for it is SO important because it can really help you stand out from all the leetcode grinders out there. At least that’s how I felt in my case. 5. Salary Negotiation I had no idea what I was going into this. I learned what to do going through it. The biggest and most important aspect of this is having competing offers. If you don’t have competing offers, I don’t know the answer to how to negotiate. If you do having competing offers, then it is actually easy, but I think if you want to push boundaries then the recruiter has to be willing to do it. They have to like you, or at least the hiring manager does. The main strategy for me was to follow a scatter-gather approach as much as I can. Time permitting, I would gather as many of the offers I had within a period of time and distribute email screenshots. The limitations were that the offers didn’t come in all at once. Soft skill wise, I think it’s mainly showing appreciation to the recruiter and to the company. You have to show you appreciate what they are doing and how much they are helping you, and you have to show that this company is the company you want to work for if the right dollar amount is presented. It’s really not a big deal, it’s just they wouldn’t want to waste time on you if you’re hard to work with, unappreciative, or don’t really want to work for that company (or think you are too good for them). 6. Decision Culture wise, it was a no brainer for me to skip on Citadel and Amazon, the money wasn’t worth the risk and the burnout. Also, I didn’t feel comfortable going to quant instead of big tech, I don’t know what my exit strategy would be and what the road back to big tech would look like. What do you guys think? It was a very hard decision between Google & Meta, but at the end I chose the road of more money for less uncertainty. With the hiring freeze at Meta and this economy, I felt Google was the safer option in the short term, and if all goes well then it’s an equal option in the long term. So I chose Google!!! #google #meta #amazon #citadel #swe #tech #career #interviews #offers #negotiate #faang #magma
Fantastic 🙌🏻
How did you get L4 with only 1.5 yoe?
People just do? I got L4 at several companies with ~8 months of exp
Usually if a recruiter reaches out. I've had several reach out for L4 at 1 yoe
Bravo! You’ve inspired me and I’m definitely going to be step harder on my prep. Thank you!
Go get it!! I was very scared and didn't think I will be able to get it honestly. My partner believe in me more than I did. You're your biggest obstacle. So just stay faithful to your practice and learning and you will rock the interviews, believe in yourself
This is it.
Am I reading this correctly? Meta usually the highest now gives the lowest? Amazon n Google only 30k difference I think it is a no brainier Congrats 🎉
Right? I felt the same way, although I'll be hinest I considered it for a split second
Google is the cash cow now. Highest offer, highest prestige, highest smartass, highest everything.
im in the same boat whats the break down of Google and AmZ offer? awesome job
Wow great write up this is very helpful. When you say you prepped for 7 weeks, how many hours do you think were you spending per day on average on prep?
Conservatively 4 hours a day! Some days less, few days nothing, rarely over 4 hours. Mostly in the evening after dinner. It was almost an 8-12 pm routine actually!
Is Google L4 400k 4-year average or Year 1? Does it also include signing bonus?
This is a 2-year average including sign-on amortized over 2 years. I did it like this because I anticipate one would be promoted after 2 years and also refreshers at that point would add noise, making year 3 & 4 not very representative to make a choice.
Thanks!
You seem like a very humble and hard working person, Google would be lucky to have you on their side!
Thanks buddy, that refreshing to hear! Appreciate it :)
How did you negotiate? Just sent screenshots of competing offers and they would match?
Yeah, pretty much. Recruiters had follow up calls after my screenshot emails to gauge the direction and expectations, but it was mainly through blatantly sending screenshots of the offers
Did the recruiter ask for comp expectations at some point? What did you say?
Tech Industry
2d
53769
Goog Employees Arrested
Tech Industry
Yesterday
603
Chances of meta clearing E5 with screwing up one coding one round and acing all other
Tech Industry
2d
1683
How prestigious is databricks?
2024 Presidential Election
Yesterday
2213
Biden ruined America and tech! Tax plans are insane
Tech Industry
Yesterday
1220
RIP Lacework
Congrats! Which one are you going with?
Ans in the last sentence. G
Read the 6 pager there