Google, Amazon, Facebook and Microsoft. Getting into these product-based companies might be your dream job if you are a passionate programmer and you might be aware of the perks, pay, and prestige of these companies. Landing a job as a software engineer in these product-based companies will be just like a cakewalk for you if you follow the right approach, go through some good resources to work on your skills these companies are looking for and the most important thing if you at least try to apply for the jobs in these companies. You need to go through two steps in order to get into these companies.
Getting an Interview Call
We know that for most of the students or professionals this is a difficult step for them. You have the skillset, you know everything that these companies are looking for but you don’t get the calls for the interviews from these companies. So let’s discuss this on how to get the call from these companies. You might be from any top engineering college, some private engineering college or a working professional.
- We need to clearly mention here that mostly these big product based companies hire freshers from top colleges like IITs or NITs and they visit in these top colleges for campus recruitment or they prefer to hire someone experience holder. The reason is these companies have a certain budget and within this budget, they are supposed to fill the vacancy. This budget also includes traveling cost, recruitment cost and other expenses if they visit any college. So they prefer to visit those colleges where they can find some good students to hire. In normal engineering colleges most of the time they filter everyone and do not find any suitable candidate. So if you are from these top colleges then you are lucky and you won’t face any problem in the first step.
- If we talk about the students from some private engineering colleges then we need to say you may have to work hard and put some extra effort to get the call from these companies but don’t be disappointed, if you follow some tips and right approach then you can get the interview calls.
- If you already have experience in software development then you can directly apply to these companies or get some referrals from employees working in these companies.
- Your resume is the first thing that plays a crucial role in getting the call for the interviews. It should be short and precise so try to summarize everything in just one page because recruiters spend only 10-15 seconds scanning a resume so make sure that every single line you write in your resume(especially on the top) should answer a question of the recruiter “Why should we hire this person?“. Below is the link to help you in making a good resume or portfolio that clearly mentions what you should include and what you shouldn’t in your resume. Resume Building – Resources and Tips
- Start using LinkedIn. Make connections there as much as you can. Approach recruiters or try to get a referral from employees working in these companies because chances are higher for interview call if you get some referral. Make your LinkedIn profile and connection too good. Sometimes recruiter shortlist profile of suitable candidates from there.
- If you don’t have any experience then first develop your programming skills. You can participate in some Hackathons or take some coding challenges on some good sites. Some of these websites where you can participate or practice for your coding skills are GeeksforGeeks, HackerRank, CodeChef, CareerCup, LeetCode, InterviewBit, HackerEarth etc. Mention your coding profile in your resume as well.
- Make some side projects(It shows recruiters that you are passionate about programming) or contribute to some open source project to showcase it in your resume if you have no experience. Your project can be anything like an android app, iOS app, video game or web applications, etc.
- Apply for some internships during your college and get hands-on experience working in the industries also mention that in your resume. Sometimes your internship gets converted into a full-time job and most of the companies prefer to hire interns to test their skills first instead of hiring a full time fresher candidate.
- One of the best things you can do is to find a mentor working on some projects for a long time and ask them to guide you. You and your mentor can prepare a proposal together and send it the GSoC (Google summer of code). If GSoC approves it and you finish your project successfully you can get the certificate from there which is really valuable and prove that you are a good programmer. You can showcase this in your portfolio or resume. Google also picks up these candidates if you have a GSoC certificate. You can also check the GSoC Preparation from Google Summer of Code Preparation.
- Your GATE score can also help you in getting the call from these product-based companies so if you have a good score in your GATE then mention it in your resume because it shows you have good command on core Computer Science subjects.
Cracking the Interviews
Once you get shortlisted for the interviews all these companies have a kind of similar process for the interviews where you might have to go through 5-6 rounds. Now the question is what they will ask you in these 5-6 rounds? Where you need to focus, or where you can find the resources to prepare yourself for these rounds. We will discuss this in detail. Below is the process of the interview once you are shortlisted…
- Aptitude and Logical Reasoning: This round is conducted for the students who are applying through the campus recruitment and it is conducted mostly to filter out the crowd and pick up the candidate for another round of problem-solving and coding. This round is MCQ based and you don’t need to spend too much time preparing for aptitude or logical reasoning like a government or competitive exam preparation. Spend a few weeks on this part to get shortlisted in this round. You need to focus on basic mathematics and you can take the help of GeeksforGeeks or find some resources on the internet to solve some basic mathematics questions or for aptitude and logical reasoning.
- Technical Round: “Can you code?” Yes..this is the main concern of interviewer in this round and this may be scary round for most of the candidate. When you are shortlisted for the interviews in these companies you might have to give a telephonic round or online coding round first or they can call you for face to face round directly. Now here you really need to focus on your Data Structure and Algorithms part because they will be asking to solve some coding problems and this round is conducted to check your problem solving and coding ability. You need to write the code for the problems they will be given to you also they will check the best solution for those problems you come up with. You should know when to apply which data structure or algorithm also time and space complexity for the solution. Face to face round can be pen and paper round or whiteboard interviews. Practice for the coding from the link we have mentioned in the previous step.
Once you will clear your coding round, you will get into the next round and here you need to prepare yourself with all the answers related to your projects which you have completed during your employment or internship or any kind of side projects. You should have knowledge about your projects like which one was your favorite, your contribution, any major impact on the website because of the solution you provided and the other things related to your project
These companies also conduct system design round after the coding round where you will be asked to design a system like Twitter, messenger, social media and there you need to tell them your complete approach. You can get the help from this link System Design Introduction For Interview.
Below are the links of interview experiences written by candidates who hired in Product-Based Companies.
- Google Interview Experiences
- Microsoft Interview Experiences
- Amazon Interview Experiences
- Facebook Interview Experiences
- Company Interview Experiences
- HR Round: This one is the final round of these companies where they will be checking the cultural fit in the candidate. Dealing with pressure, co-ordination with co-workers, life in college, short term or long term goals, why you want to join the organization such kind of questions. You just need to keep in mind that you don’t say anything negative here so that they can find you fit in their organizational culture.
- Whenever an interviewer is giving the problem, clear all the doubts first and ask relevant questions.
- Briefly discuss the Brute Force approach if it’s required. Once you are done and the interviewer is convinced, write the program for that. Some interviewers also try to help you while coding if you don’t know the complete solution for the problem. They can give you some hints and generally guides you towards the right solution so keep communicating with them even if you don’t know the complete answer. If your approach will be right you may get selected.
- When you will be coding for the problem interviewer has given to you, they always expect the better solution and if they ask you to give another optimized solution then you need to tell them a different approach. If they are expecting a recursive solution tell them that one. If they are trying to change a few things in your question like the number of input or they change the order of an array then tell them the solution for that one. They check your problem-solving approach and how you think about a certain problem. Generally, they do this to check if you can provide a solution to the problem you haven’t encountered before or not.
- Where applicable, use math, Sorting, Searching, traversal, Recursion, Bit Manipulation, Dynamic Programming, etc.
- Before you write code consider all the test cases and write functions that are reusable, loosely coupled, small and do only one thing. Make your program simple and short. Avoid unnecessary variables or many nested if/else cases.
- Make a group of 2-3 people and do some mock interviews. Try to practice your code on a whiteboard or using pen and paper. Check the link SDE Mock Interview to get the help for mock interviews.
- Programming language is just a tool to write your code and most of the students and people have this misconception that these companies give preference to new technology or any popular language which is completely wrong.
- Be more verbal and explanatory in this round. Don’t do anything or solve the questions inside your brain. Communicate with the interviewer and tell them your process to solve the problem also be nice and polite during your interview, do not fake anything, smile, make eye contact to show your confidence and never ever show your ego during your interviews.
- Cracking the Coding Interviews is the best book to prepare yourself for these product-based companies so try to finish that book.
- Be nice and polite during your interview, do not fake anything, smile, communicate properly, make eye contact to show your confidence and never ever show your ego during your interviews.
- Must Do Interview Preparation
- Cracking Technical Interviews
- Practice for Cracking any Coding Interview
- Google Coding Mock Interview