SWE Interview Experience at Meta, Google, Microsoft, Oracle, and Atlassian
The software engineer new grad interview grind is a fulltime job and do not let anyone tell you any different. After doing over 70 interviews with tech companies, I am here to talk more in-depth about my experience and what I think you can do to better prepare for your interviews, especially if you are just starting to look for fulltime SWE roles.
The Google process is pretty straightforward. From my own experience, I mapped it out below:
First, it is an online assessment that took me under 30 minutes. This was not designed to be hard. The interesting part about it was that they did not provide their own test cases, which meant you had to provide your own test cases in order to check your code.
After passing the online assessment, you’ll either be placed in a group recruiter call or a 1:1 recruiter call. I had a 1:1, but I know a few people who were placed in a group call. In this call, the recruiter just fills you in on what the final round will look like and answer any questions you might have regarding it.
For the final round, it consisted of five interviews total: 1–30 minute behavioral, 4–45 minute technical. I got technical questions on both data structures and algorithms. Behind the scenes after the final round, you’ll either pass hiring committee or not. If you do not pass hiring committee, then you will get an email or a chat from a recruiter saying to apply again later. Unfortunately, I did not pass hiring committee, but I have a friends who did and from there they went into product matching and finding a team.
All of this said, I had an amazing experience interviewing at Google. My recruiter was the nicest person ever and she knew how to give delicate, bad news. If you build a good enough relationship with your recruiter, there is a chance that they could give you more in-depth feedback. The technical questions were difficult, which is something that Google is notorious for. If I had to give them a ranking, I would say they were Leetcode medium/hard.
How to Prep
Do your research beforehand. Leetcode premium is helpful here, but especially the discussion section on Leetcode. In there, you can find so many different questions asked by Google from recent time. Reviewing data structures and how to make classes would be effective if it is more time sensitive. If you can, simple and complicated algorithms should be reviewed, and not just conceptually. Google requires a lot of technical interview prep.
The Meta interview process was less interview intensive than Google.
The Meta process was extremely simple and easygoing for me. A recruiter had found me and reached out to me asking if I wanted to interview. I gave the green light and we scheduled a 45 minute first round. The first round consisted of two questions that were not necessarily algorithm based. The two questions I were asked were leetcode easy and I had an enjoyable experience. The recruiters also were more than willing to get on a call to answer any questions I had. A day after my first interview, I got an email about the final round.
I would like to note that in the same season, I had a friend who did the first round of Meta and then had a second 45-minute technical interview. So, I am not entirely sure whether it is standard to get the final interview right after the first round, but it seems that candidates can have a different experience.
Between the final round and first round, a recruiter reached out to me asking about my location preferences. I gave them and I was told that because they had no more space in the ones I wanted, they would have fully remote as an option. As long as I was okay with that, the interview process moved forward.
The final round consisted of 2–45 minute technicals and one behavioral and I had a the option to split them up and have each one on different days. In the end, I withdrew before completing the final round because I had accepted another job offer. From my understanding and speaking from other’s anecdotes, the Meta final round does not ask complicated algorithms and relies more on speed.
Overall, I had a great experience interviewing with Meta and all points of contact were very pleasant and reachable. There was a lot of flexibility with scheduling which made it easier to align with my own schedule.
How to Prep
Review data structures and BFS/DFS. I think beyond that is not necessary if you are going for most bang for your buck. I would also say focus on speed and solving the problem, then you can go back in and factor in the edge cases or fix the time complexity. Also, know the time complexity of the code you are writing. They ask about each part. The Leetcode premium list of Facebook questions is especially helpful. I think for new grad, if you focus on easy and medium, you have a good shot.
The Microsoft process was smooth just like Google and Meta.
Microsoft reached out to me and asked me if I wanted to interview. Initially, they asked whether I wanted to interview for PM or SWE. I chose SWE.
There are two types of first round interviews you can get with Microsoft. You can either get a behavioral 30 minute or a technical 30 minute. In the behavioral, I hear they ask just a few rapid fire conceptual questions. In the technical 30 minute (the one I had), I was asked to code on a blank document with no compilation. I passed the first round the next day. I would say that the first round is a leetcode easy question.
The recruiter phone chat was just to answer any questions and let you know the format of the final round interview. For the final round, it is 4–45 minute technical interviews. I had data structures and algorithms in mine and I just had one question per interview. I would like to note that I had friends who answered 2 or 3 questions per interview at Microsoft. These were mainly leetcode easy to leetcode easy medium questions. They were not meant to confuse and were rather straightforward. At the end of each interview, I answered 1–2 behavioral questions.
After the final round, I got positive feedback from one of my interviewers and then a week later, I got the offer. Microsoft’s interview process, while not the shortest, was enjoyable and not as nerve-wracking as Google. I felt very supported from Microsoft and it was overall a quick process from start to finish.
How to Prep
Leetcode will again be helpful here. There were questions I was asked that were not from Leetcode but with basic knowledge on data structures, I passed easily. Reviewing BFS/DFS would also be helpful and knowing more complicated algorithms conceptually and explaining how you would improve upon a basic BFS/DFS solution should suffice. Also, have answers for their behavioral questions!
Oracle reached out to me after getting my resume from a database from a conference. There process was very simple and 2 hours in total for me.
The first round was a very short technical coding question where I just coded on a notepad on my computer and then we jumped into behaviorals and my interviewer explaining the different divisions I can get into at Oracle. The way that Oracle places people is through team interviewing. Once you discuss the divisions you are interested in, they will then have you interview with teams looking for new grads in those divisions. My interviewer was very straightforward with me and told me immediately that I passed the first round and was delighted to hear that I wanted to interview with his team again.
Between the round, you send your recruiter what divisions you want to be a part of and then they set up an interview with teams in them. The final round could be just with one team and hence, be an hour long, or it could be with up to 3 teams and be 3 hours total. This 3 hour total would be spread out throughout a week and each team did it differently. Some had me answer rapid fire conceptual questions, some had me code, and one just had me chatting with them the entire time.
Overall, I had a great experience and ended up receiving an offer. This was by far one of the shorter processes I had to go through and it was a fast turnaround time.
How to Prep
These interviews were more conversation than technical. It is harder to standardize a way to prepare for this company so I would say just study concepts and review your basic data structures and some algorithms.
I will preface this one by saying that Atlassian was a very long, hard process.
The sheer hoops I had to hop just to get to the final round made this a task to complete.
First, the hackerrank online assessment. If I remember correctly, this was the general hackerrank assessment, so it was not one created by Atlassian. This took about an hour total and I passed all of the test cases before submitting.
From there, I was invited to a 1 hour system design interview. I had never done a system design interview before, so I had to learn how to do it a week before. This was a challenge, creating a full system instead of coding, but it was a fun experience and I learned a lot coming out of it. During this interview, the interviewer is working with you and my interviewer spit ball some ideas with me.
Afterwards, I got a call from my recruiter and she asked me why I wanted to join the company and what the final round looked like. She also asked me about my salary expectations which I thought was a little odd for a new grad position.
The final round was 5 interviews total. It was a values interview (about the Atlassian values), 2 system design interviews, and 3 technical interviews (coding). Each of these interviews were an hour long aside from the values interview (45 minutes). To prepare, they sent me a packet with what to expect. One of their values is transparency, so the process was all laid out to me.
It was difficult getting the recruiter call that I didn’t get the job. She had gotten right into it and laid it out very frank. I have gotten rejection calls before, but in my honest opinion, her delivery was borderline mean. When I asked for why I did not get it, she said she could not give me an answer and essentially hung up.
Atlassian had the most exhausting interview process (even more exhausting than Google!) and in the future, I can’t see myself reapplying to a company with such a long company and with little heart for their candidates.
How to Prep
The github repository regarding system design interviews helped me a lot but if you are in a pinch, youtube videos may help you absorb system design interview stuff faster. The coding interviews were more real life coding, rather than leetcode, but the leetcode questions for Atlassian were very helpful. Overall, I think you should focus on data structures and not algorithms if in a time crunch.
Interviewing is tough, especially when you have school on top of it. Just remember that fulltime interviewing is a marathon, not a sprint and you should take breaks! I wished I had spent a little more time in my algorithms class digesting the content so that I would not have had to review as much as I did before my interviews.
I had some great experiences and some not-so-great experiences, and I have learned what I liked and did not like about different processes. In the future, I will be sure to ask recruiters how long the timeline is and how many interviews there are because I want to value my time as well. If you are interviewing currently, I wish you the best of luck on your journey!