I just finished a long round of interviewing with Doordash, Facebook, Amazon, Google, Twitter and LinkedIn for Senior Software Engineer positions. I got 3 offers from these companies and landed on a company that I was wanting to work for for a long time. I wanted to share my experiences provide some insights to others trying to land on one of these companies, and also to inform people about what to expect from each company during the interviews.
Just to mention, I interviewed with most of these companies before several times over the last 5 years and failed on all of them. I am planning to write another post about how I prepared differently this time and was able to get 3 offers after failing numerous times. For this post I only want to discuss my experience interviewing with each company.
The reason I am writing this post is to inform (and warn) people about what to expect from the interviews and provide some tips to folks who are planning to interview with these companies.
Good. Reached out to me, explained the company, asked me about my goals, etc. Stuff you expect from recruiters. Nothing special worth mentioning here.
recruiter call + 1 phone screen + virtual onsite
This was the weirdest phone screen I ever had. The recruiter asked me if I would like to do a 4 hour take home exercise or 1 hour phone screen. I am against home exercises while interviewing. If I am spending time to interview with a company, I expect them to spend some time to interview me also. Home exercises, IMO, are a very cheap and inaccurate way to assess people's skills, so I opted for the phone screen.
1 hour phone screen was scheduled. 2 engineers showed up. Introduced themselves for 15 seconds and immediately jumped into the technical part. They asked me to implement something from scratch (UI + backend) and told me that I can't ask any question at all. They told me that they'll watch me while I am writing code. At the end, I was able to come up with a working solution but I totally did not understand what they were expecting from me, which parts of the question I should have focused, or if I had to use a framework or not. At the end of the interview they thanked and left the call. This was the weirdest phone interview experience I ever had. About a week later recruiter sent a generic email telling me that I didn't pass the interview.
I have no idea about their qualifications. I have no idea about their personality. I have no idea about their positions in the company. Just based on the way they conducted the interview, I can say that they literally had no idea how phone screens work.
Weird. I can't find any other word to explain my experience with them.
If you are ok with home exercises, go with the home exercise. Their phone screen interview seems to be a gamble.
Nothing excites me about FB but they pay really good. I thought that I could live with their culture for couple of years to make some good money and learn some stuff, and leave.
Good. Reached out to me. Explained the company, listened to my concerns, answered my questions and did their best to schedule the interviews to fit my schedule and timeline. After the interviews, the recruiter called me to told me the result and gave some feedback. I felt valued.
FB does generic engineering interviews and once hired you choose the team you want to join from the available teams. Process is initial recruiter call + phone screen + 5 virtual onsite (1 behavioral, 1 system design, 3 coding). On each coding round you are asked 2 questions and you are expected to solve all of them. Efficiency or resource usage isn't their priority. They expect you to solve the problem no matter what.
If you can memorize every algorithm about binary trees and graphs, you can pass their interview. Instead of focusing your experiences and strengths they just ask nonsense (IMO, no offense to anyone) pure algorithm questions. I can solve all of those problems, but maybe not in 20 mins as they expect. I don't memorize the solutions, sorry. Do I know how to communicate with product managers? They have no idea. Do I know how to communicate with designers in my team? They have no idea. What are my strengths? They have no idea. Which values I can bring to Facebook? They have no idea. For some people, they expect engineers to only write code and FBs interview focuses only on that. If you are good at solving medium to hard Leetcode questions in 20 mins, you can get an offer from FB.
Besides one of the interviewers whom I doubt knew how to speak English, the others were ok. There aren't much communication going on with the interviewers during the interview so I can't say much. They come in, introduce themselves, and directly move on to the technical part. The people that I did the behavioral and system design interviews seemed knowledgeable and experienced.
Above average. After seeing the interviews, I don't think I can ever pass a FB interview. I'll never memorize the solutions of Leetcode problems. I can solve them, but not in 20 mins as they expected. FB interviews are focused on eliminating people, not trying to find the value the candidates can bring in to FB.
If you want to pass FB interviews, spend majority of your time studying graph and tree algorithms, and make sure you are able to solve medium-hard Leetcode problems in about 20-25 mins.
The thing that excites me about Amazon is that they are a huge company and the problems they are trying to solve are extremely challenging in many ways. But on the other hand, it is Amazon, everyone had probably heard some horror stories about them.
They are like call center employees. They are non-technical but act like they know better than you. They do a phone screen, ask technical questions to you and expect you to give them the answer that is written in front of them. Luckily, I was able to find the correct answers and make it to the virtual onsite.
Unfortunately I was fooled by my recruiter. I was told by my recruiter numerous times that the position they were hiring was for a Sr. position. At the end it turned out that it was almost an entry level position. They probably get paid if Amazon hires me and my recruiter tried their luck. You know those salespeople who try to fool you to sell something. That's what my recruiter did to me.
Recruiter call, phone screen with recruiter, behavioral with recruiter, 4x virtual onsite (3 coding, 1 system design). All of their onsite rounds include a behavioral part which takes about half of the interview.
I found Amazon's questions really good and on point. Their questions were relevant to challenges that you would face if you work at Amazon. They didn't ask pure algorithm questions but they blended algorithms with real life examples. If you only know the algorithm, you would fail. You have to figure out how to apply that algorithm to the scenario given. I like these kinds of interviews better than others because it is a better way to evaluate your skills and experiences IMO.
Were all professional, knowledgeable, and experienced. They all knew how to conduct an interview very well.
My interview experience with Amazon is good if I only consider the onsite. If I think about the entire process, it is below average. I got asked technical questions by a recruiter who doesn't have any technical background, I did another 1 hour half behavioral - half technical round with the same recruiter which was nonsense, and I also got fooled by the recruiter. I would have passed the opportunity and not spend a day interviewing with them if I knew the position wasn't Sr. After the interviews I was told that I passed and they will send me an offer, but the offer I received was literally a joke. Low pay, ridiculous benefits compared to Silicon Valley companies, weird stock vesting schedule (5%, 15%, 40%, 40%), and almost entry level title. Just want to mention again, I asked my recruiter at least 3 times if the position is Sr. level and they confirmed it was. The person who called me to tell me the offer told me that they didn't understand why the recruiter told me that.
So, considering all of these, I can't say I had a good experience with Amazon.
Ask for the level of the position you are interviewing for and try to confirm it with the community before committing your time to interviewing with them. My recruiter was actually a salesperson, not a recruiter.
For the technical part, make sure you know how to apply the algorithms you know to questions derived from real world problems. Unlike FB, they don't directly ask you to find the averages of the child nodes on a binary tree, but they ask a question that requires you to figure out which data structure(s) and algorithm(s) to use.
Google was once my dream company. Not anymore.
The worst of all. They don't care about you. They don't care about your schedule. They don't get back to you in a timely manner. They don't even return to your emails unless you follow up several times. They do nothing to sell Google to you. They literally do nothing. If Google replaces them with some sort of AI, that AI would do a much better job than their recruiters. They are arrogant (they work at Google, and you don't you low life) and almost rude. It is completely ok for them to ignore you or talk to you as if you are dependant to them. They make you feel like you are worthless and if you don't join Google there are thousands of other candidates out there (which is sadly true).
Ridiculous. The time between my initial email to the recruiter and the date they got back to me with the interview result is 6 months. Again, 6 months! At some point I kindly asked the recruiters if they can move faster since I was done interviewing with other companies and I had 2 offers waiting, their response was "maybe Google isn't the best option for you at that time" because they can't get their shit together and move faster. When I entered their virtual onsite, I had already accepted an offer and just wanted to see their final interviews. I was extremely demotivated during their onsite didn't bother about performing well.
Here is how their process looks like:
Their technical/coding questions were good and mostly focuses on your domain expertise instead of being pure DS & Algo questions. You need to know the specifics of the language you are using during the interview in order to answer their questions. The questions were designed to figure out your skill and experience level.
I can't say the same thing about the system design and behavioral rounds. The person interviewed me for system design was expecting only one answer for the questions he asked. I was thinking about some ideas loudly and communicating them with the interviewer during the interview, but he was understanding this as I was an idiot and couldn't come up with the correct answer. His voice and attitude changed after a couple of minutes of me not being able to guess the answer in his mind. I gave up after that and just tried to complete the full hour. All of the other system design interviews I had, I was communicating the exact same way with others and everyone was very happy to see my thought process - except this arrogant super human being at Google.
I can't say behavioral was bad but the questions were very out of context. The questions I was asked was mostly HR related behavioral questions. On every other interview I was asked about teamwork or leadership related behavioral questions. Google didn't ask me anything about how I lead, how I work with my team, how I mentor people, how I resolve conflicts, etc. This was very weird.
Except being arrogant and talking to you as if you were so desperate to work at Google, their technical knowledge was good. They need a bit of 'how to conduct an interview' course. I would give them a max 5/10 compared to the professionalism I experienced while interviewing with Amazon.
Ridiculously long and far below my expectations from a company like Google. I don't know WTF is wrong with their process but no interview should take this long. While dealing with their recruiters you get tired and anxious already.
Be ready for anything. Your interview process may take a month or 6 months. You can have experienced and knowledgeable people interviewing you or you can have arrogant and close-minded people interviewing you.
Make sure you master the specifics of the language you are using during the interviews. Their questions weren't basic DS&Algo questions. You need some domain knowledge as well to be able to succeed. And some patience to deal with their recruiters.
One of the best interviews ever. They respected me, made me feel valuable, respected my timeline and schedule and focused mostly on my skills and experience during the interviews.
My recruiter was very kind, very open to me about their process and very professional. I can say that they set me up for success. They were very responsive and they respected my timeline.
1 phone screen + 5 virtual onsite (3 technical, 1 behavioral, 1 system design)
Was very good. Behavioral was tough but I researched a lot online and I was expecting the questions they asked. Coding and technical questions focused on my experience and skills. There was only one round of DS&Algo question on the coding interviews. The rest were mostly coding and discussion at the same time - more like pairing with the engineer on the other side of the screen. System design was a typical system design question you can find on youtube, but the concept had to be applied on Twitter.
I was interviewed by the team I would join. Were all very nice, friendly and helpful. They were eager to listen to your ideas and interested in what you have to say. They were very experienced on interviewing and knew how to unblock me when I got stuck.
10/10. Was one of the best interview experience I ever had. Starting from the initial recruiter call to the virtual onsite, everything was very organized and professional. I felt like the interview process was set up to understand my experience and skills and also what values I can bring to Twitter.
For the behavioral make sure to know the details about almost all of your previous roles. They will ask you detailed questions from the first job you had to the last.
For technical, make sure you go through LeetCode and similar platforms but don't bother with them too much. The questions they asked me were mostly related to my domain expertise and without experience in the domain, I wouldn't be able to answer them correctly.
Good. I had some issues about scheduling and receiving the offer, and their onsite was ridiculously long (7 hours) but overall their interview was focused on figuring out my experience, skills and the value I can bring to LinkedIn.
My recruiter was one of the best recruiter I ever worked with. He kept calling me every week to check on me. He was very responsive and friendly.
recruiter call + 1 phone screen + 7 virtual onsite (1 system design, 1 behavioral, and 5 technical)
Their questions were good. They weren't only DS&Algo questions but they required some experience to answer. The behavioral part was a little basic but in general it was good.
Some of the interviewers were very professional and experience but some of them had no idea how to conduct an interview. Some of them even told me that they haven't done any virtual interviews before and I had to bear with them... This was a bit weird but considering the lockdown, I can understand if they haven't done any virtual interview before. Still, telling that to me wasn't very professional. Also, one of the interviewers were using a language that you wouldn't expect during a professional dialog. So overall, some of the interviewers were very solid and some of them were below the average.
To add to this, my last interview was scheduled for 45 minutes. After 6 hours of non-stop interviewing, the interviewer told me at this 7th interview that the interview should have scheduled for an hour. Then he talked about 15 minutes to introduce himself and brag about the work he was doing. So my interview that should have been 1 hour was reduced to 30 minutes. Of course, I wasn't able to complete a 1 hour long question in 30 mins. I felt that the interviewer wasn't happy about it.
I received an offer from LinkedIn and my recruiter told me that I got the highest scores from some of the interviews, but he told me numerous times that I didn't do well on the last interview. Regardless, I got a very good offer from them.
Meh. 7 hours of virtual onsite? WTF!? Their questions were good but 7 hours of interview + 1 hour phone call + 3 hours of calls with managers at LinkedIn.... it was a bit tough.
Show your experience during the interviews. They look for what values you can bring to LinkedIn so make sure you talk about your unique skills during the interview. And, of course, solve LeetCode problems for the language you are interviewing for.