How to get a job in big-tech (Internships/New grads)?
Hi all! 👋
If you have been following me for a while then you might be aware that I work at Microsoft. Every so often I get asked by people about how to get a job in big tech. Some people have always dreamed about working for FAANG. Microsoft isn’t in FAANG but it comes as close as you can get. I will write down some of the common answers I have given to people over the last few months. Keep in mind that most of the advice in this post is based around my own experience interviewing and is in no way a foolproof guide on how your interview process would go.
I have broken down the whole process in chronological order. Feel free to skip to whichever stage you are at right now.
Preparing for the Phone Screen
The first step is to prepare for the phone screen. Sometimes you will be lucky and the recruiter will only ask simple questions that have nothing to do with coding but sometimes you might be asked to go through a simple code screen. In this part of the article we will focus on preparing you for the code screen. Even though I had been programming for a good number of years before I did my first technical interview, I just didn’t have enough experience solving interview problems. There is no alternative to solving real algorithmic questions. However, you can be smart about how you go about doing it so that you don’t burn yourself out.
Taking an algorithms course will help you understand the basic concepts but you definitely need to practice real interview questions. I personally hadn’t taken an algos course before I took my coding interview for Microsoft. I also did not grind Leetcode mindlessly. What I ended up doing was, I followed the Interview prep track on HackerRank.
I did not go through the whole question bank. I did enough to feel comfortable about solving most basic algorithm questions. After this stage I felt comfortable about passing a phone screen but not a real algo interview at big tech.
Preparing for behavioral Interview
After preparing for the phone screen you need to start practicing behavioral interview questions. Most people don’t realize how important this part is. I can be a fairly extroverted person when I have to be and even for me it was really important that I spent my time preparing for the behavioral portion of the interview. It sounds funny in hindsight but I was once doing a phone screen and the CEO on the other end asked me the most basic question: “Tell me about yourself”. I started telling her all about my background, where I am from, how interested I am in arts, and whatnot. I wasn’t aware that what she wanted to know was my technical background. She couldn’t care less about my family background and which part of the world I came from. This might be obvious to a few of you but it is not to everyone.
A friend of mine who works at Google gave me a very useful tip. Most companies ask the same 10-15 questions. You need to prepare these questions really well. You can find question banks online which will tell you about some of these questions. The most important questions I prepared for my interview were:
- Tell me about yourself.
- Tell me about a project you worked on.
- Why do you want to work here?
- Tell me about something new you recently learned?
- Tell me a time when you had a problem with a coworker?
- Do you have any questions for me?
- Tell about your weakness?
- Tell me about a time you failed and how did you deal with it?
Most of the interviews I have given so far revolved around the same questions. A few of the people did not even word the questions any differently!
Now let’s talk about how to answer these questions.
For the first one, you need to prepare an elevator pitch. Write it down. Don’t try to think of something on the fly. You need to trim your response to max a minute or a minute and a half. You will be surprized how quickly time passes when you start talking about yourself therefore it is imperative that you keep your response succint and to the point. Focus on your tech background and what you have done recently. I generally talk about how passionate I am about programming and how that passion led me to author two books. I also talk about what I am working on these days just to show I am still engaged with the field. Practice your delivery so that it sounds natural and not memorized.
For 2, I just talk about my favorite project whichever that may be at the time.You can talk about some open source project you created in your free time or about a group project you did for one of your classes. Keep it short. If the interviewer is interested, they may ask followup questions.
3 is easy. You can talk about how what the company is working on relates to what you want to do in life. For big tech it can be about the positive impact you can have on so many people. You might have a different opinion but we are not going to argue about that here. Chances are that big tech won’t even bother asking you this question. This is more useful for smaller startups. Do some research. Try to figure out what narrative the company is pushing for and talk about how excited that narrative makes you. This way you also show that you did your research and are actually invested in this interview. You can also talk about how you use some open source stuff the company maintains and it makes you excited about working for the company.
4 can be anything. And I mean anything. I remember I talked about IPFS (InterPlanetary File System) when someone asked me this question. If you don’t know about it, check it out. It’s pretty neat piece of tech.
For 5 I would probably talk about a group project I did.
6 is particularly important in my opinion. I have seen people shy away from asking questions to the interviewer. I have asked all sorts of questions over the years and they have been received very well by the interviewers. I have asked:
The last time you were looking for a job, why did you pick this place?
What do you look for in a job and how has _____ helped meet those requirements?
Favorite project you have worked on?
Most difficult day at work?
7 is tricky. Don’t just talk about a strength and make it sound like a weakness. Try to talk about an actual weakness which wouldn’t directly impact your ability to work at the company. I usually talk about my short attention span and I follow it up with an example of how I am trying to improve.
8 is fairly self-explanatory. Think of a time you failed and talk about what you did to cope with it. I talk about how I tried to start a coding club in high school back in Pakistan but it didn’t work out as most kids didn’t see a real need for it. I coped with it by trying to start a coding club in college instead. It ended up being one of the best things I did and led to some really good friendships.
Getting your foot in the door
You have done the prep. Now you need to get that ellusive first interview with your favorite company. If you are from a big name university like Harvard, MIT or Stanford, you can go to your department career fairs and talk to recruiters from FAANG. Chances are you don’t need to put in any more effort and the recruiter would help make sure you get your shot at the first interview. But what should you do if you are from a lesser known place?
You have two options. The first one is to look for alumni. If anyone from my college/university reaches out to me for a referral at Microsoft (or wherever I am working at when they reach out), chances are that I would recommend them after talking to them. A lot of people believe that you need to know the alumni really well to ask for a referral but that is not entirely true. Look for people on LinkedIn who are from your college and who work at companies where you want to work. Send them a polite message asking for a few minutes of their time to discuss what they work on. Even if half the people respond, it is still a very good number. Talk to them about their role at the company and tell them that you are interested in applying and if they have any advice. If they are willing to refer you, they will probably mention it then.
The second option is to talk to your professors. Often times people don’t realize how resourceful their professors are. These are the same people whose classmates are now managers at different tech companies. If you have a good rapport with a professor, ask them for advice. Tell them that you are applying for internships/jobs and were wondering if they have a particular place in mind that might be a good fit for you. They will usually mention if they can refer you or not.
From among these options, try to pick one where the referral is more direct and more senior. For instance, your professor might personally know a hiring manager at a company. If that is the case, take the referral from your professor rather than approaching an alumni. If an alumni is a hiring manager or works at a very senior position, take their referral. What I have observed is that if the referral goes to a hiring manager who directly knows the referee, you might have an easier time during the interview. You might also be able to skip a few interviews. Most big tech companies have around 5 rounds of interviews. I have seen people skip 2-3 interviews based on a referral. The more you skip, the less chances you will have of screwing up 😉
Preparing for the main coding interviews
Now that you have gotten your foot in the door, it is time to prepare for the main coding interview part. My assumption is that by this point you already have some grasp of typical algorithm questions. We want to focus on fast-tracking your coding interview prep for a specific company. Let’s suppose you have a Google interview coming up. Go to Google and search for “top Google Leetcode questions”
Now open any of these links and look at what questions Google asks. You don’t need to grind all Leetcode questions as I think you can better spend your time doing something else. Focus on the top 10-20 questions. Read the questions and try solving them. If you can’t solve them, look at the solution and try to understand it. Afterwards, try writing the solution yourself without any help. I can’t stress how important it is to write out the solution in an IDE and not just assume that once you have read the solution you know how it all works. It also helps build your muscle memory.
You can also look at Glassdoor and Reddit to get a sense of what a particular company tests the interviewees on. This is very useful in mentally preparing yourself.
The main takeaway we are aiming to get out of this exercise is to figure out what kind of questions your specific company likes to ask. You will see a pattern once you have done 10-20 questions. It might be that Google likes to focus on graphs and trees quiet a lot. Make sure you know these topics very well and can solve new questions. After a little bit of more targetted practice, you will be ready.
The only advice I have on this front is that make sure you don’t schedule the interview with your favorite company as the first interview you will be giving in an interview cycle. Schedule some interviews with slightly less desirable companies before that. You will learn a lot while going through the interview cycle and you can use those learnings to improve your chances of having a fantastic interview with your dream company.
If you believe that your first interview would go without any hiccups, please be prepared. I bombed the first interview in my interview cycle with a major company. I knew the answer to the question I was being asked but just because I hadn’t practiced it by typing out the solution, I blanked out. It was very embarrasing 😜 That is why writing out the solutions during practice is paramount and doing interviews with your favourite companies later on in the cycle is important.
We all believe that the tech interview cycle is broken. Most of the time you will not be touching similar Leetcode stuff during your day to day job. But till the interview cycle is fixed, the best we can do is to learn how to play well with the pre-existing system.
A lot of advice here might seem a bit too blunt and direct. I have tried to distill my knowledge in a few paragraphs. Also do keep in mind that this is just my perspective on big tech interviews. Your mileage may vary so make sure you are well prepared for whatever comes your way.
If you have any feedback or anything useful to add to this discussion, please comment below. I would love to hear your take on this topic 😊
Until next time. Take care! 👋 ❤️