In the last 3-4 years, I've appeared for multiple interviews across 5 companies. One of them rejected me in their first round, but the other 4 companies felt I was a good fit for them. These 4 include Microsoft, Coinbase, Amazon and Google. Here's my story of how I approach an interview. It may or may not work for you, because taking an interview is just one part of the entire process of you being a good fit for the company.
Before getting into the details of my process, I'd like to take a bit of your time to convey my point of view on interviews in general. A set of interviews is a part of a larger hiring process for a candidate. The hiring process is in place to evaluate the need of the company and to find one or more people who can satisfy this need in the best possible way, according to a bunch of folks involved in the decision-making process. Think of it like a problem which the company is trying to solve. Business requires completion of a client request, we need a bunch of folks who, we think, can get the job done and generate business for the company.
The general approach of a company to hire more people can be in two ways. They're either looking out for a specific role and requirement, or they're looking to increase their headcount by conducting generic interviews and they want to hire individuals who show that they're capable of learning the required skills to solve a problem and produce valuable outcomes for the company. If they are looking for a specific role, the candidate is required to demonstrate skills and prove that they're capable of handling the role already. So if the company is in desperate need of developers who can build a product for them using specific technologies, they'll evaluate you based on these required technologies. In the case of generic interviews, you're mostly evaluated on general technical skills, which involve Data Structures, Algorithms and System Design. However, there can be a mix of both too.
Ready to switch jobs?
No? - Read ahead to just know my approach towards taking an interview.
Yes? - Read ahead to understand what has been working out right for me, and maybe the same could help you too in getting your next job.
First things first, you need an opportunity to land an interview at a company. Again, there are 3 ways in which you can get an opportunity. All of these, however, require you to prepare a good resume/profile/write-up which can catch anyone's attention within a minute or two. For example, when someone reaches out to me for referrals, the first thing I do is visit their LinkedIn profile and see what they've been doing in their career. Next is, their resume, which pretty much says the same as Linkedin but can sometimes have a detailed version too. Next, any public forum links where they've demonstrated their skills and achievements. This could even be a portfolio website like mine (haha backlink to increase page visit count, lol). I know only about these till now, but there can be many more. Anything which can help me know about your skills is a valid candidate.
Okay, getting back to the ways of landing an opportunity.
The recruiter reaches out to you - Why would they, you ask? Your profiles on LinkedIn, Leetcode, Naukri, or other public forums where people talk about jobs, caught their attention.
You reach out to the recruiter - So you are looking at a company to interview with, and that company would most likely have folks working in their recruitment department. You can reach out to them on LinkedIn (or email, if you get to know it) and show them your profile and see if your profile interests them. The prerequisite here is that you have a decent set of experience (or projects) which you can display and highlight in your initial message to the recruiter. If your profile catches their attention, you'd get an email soon to begin the interview process!
Referral through folks already in the company - Almost all companies have an internal portal to refer external candidates. If they don't, existing employees can still reach out to the recruiters internally and forward your profile. So in any scenario, reaching out to existing employees of a company and asking them for a referral is not a bad idea. I don't think there's anything wrong with cold messaging, properly, of course. Again, even with existing employees, your best bet for them to refer you is for you to show them what you're capable of.
Done with these?
If you took the recruiter route and they liked your profile, you are already short-listed as a candidate which the company will interview. Congrats! However, if you took the employee referral route, and they submitted it on a portal, then your resume and other profile information need to catch the interest of recruiters skimming through the portal to find a candidate.
If you feel your resume didn't get short-listed, repeat the steps.
Congrats, you now have your interviews at the company lined up in the coming few weeks! Your recruiter might reach out to you to inform you about the process. Also, it's now a good time to understand that your opportunity at landing a job in the company, is now an opportunity for your recruiter as well to complete their target, lol. So, stay connected to them, and learn from them any tips and tricks. Good companies often employ good people, and good people are always ready to help you out.
You now know what's lined up for you. Often, I've noticed, the interviews are organized in this fashion. (x? indicates 0 or 1 occurrences of x)
In most companies, you'd have to go through a DSA round. I'll share my thoughts on DSA in a separate blog. I'd add a few blogs on preparing for each of these rounds separately, as I don't want to clutter this blog with a lot of information. Now that you're well aware of what you'll be facing in the coming few weeks, it's not a bad idea to revise or prepare for them, is it? :P You can't go 0 to 1 in a few days, but you can always try! Something is always better than nothing. What do you even have to lose? Any skill which you acquire even by not getting through an interview successfully is still a valuable skill. More on this at the end of the blog.
So go ahead, prepare for the skills you'll be evaluated on, and learn stuff!
You're about to appear for a technical interview in the next few hours, what do you do? I'll tell you what I do. Nothing at all. Focus on your routine and what work you have at hand. 1hr of the interviews shouldn't take the entire day from you. It's still just a part of your day. Your skills won't improve or deteriorate in a matter of a few hours. Chill out.
You're in a 45mins to 1hr interview with an existing employee in your target company. Here's the part where you're being judged. It's good to understand a few things here. Your interviewer is human. Every individual's mentality is what they've perceived of life in the time they've been here on Earth. It's a good line, but I guess you can ignore it cuz it doesn't make any sense here. Lol. However what you can't ignore, is the fact that your interviewer can make mistakes, can have bad days, and is just another Software Developer (most likely), just like you. So talk to them. Introduce yourself and get to know them. You can spend about 5-10mins on just talking to the interviewer, knowing more about their work and the work which you are being hired to do.
Your interviewer will now put a question in front of you. The first thing I do here is to read the question well. Ask any doubts I have regarding the question and confirm my understanding of the problem statement with my interviewer. It adds a lot of points when you communicate well in an interview. After all, you're being hired to solve a real-world problem and not just a few DSA questions, right? During the interview, your interviewer is evaluating you on your ability to solve problems, your approach to tackling a problem and your ability to reach a possible solution to a problem. To understand the problem well, before proceeding to give a solution. I mean if I have to put it in the ways which you've already heard before - "Think about edge cases etc. etc.". Your goal is to solve the problem. When you solve a problem, by building a product or by fixing bugs in an existing product, you solve it by considering yourself as the end user. That's where the need to "think about edge cases" comes into the picture. So, it's all part of the process of evaluating whether you can "solve" a problem, or not.
Now that you understand the question well, it's time to think about it. The way I usually do is, whenever I read a question, there's most likely 1 direct solution which comes to my mind. If nothing comes to my mind, then I usually go back to asking more about the question to understand it even better. But most likely, a step-by-step solution to the question comes to my mind. I convey it to the interviewer at that moment and we have a brief discussion about the pros and cons of this solution. Again, talking in a more "DSA interview" way, we talk about the brute-force solution. I think it's good to have this discussion. And note that I use the word discussion rather than "answering the question". So once we discuss pros and cons, since it's mostly me thinking, lol, every time we discuss a con, my mind goes into thinking about the way to get rid of this con. Here comes the role of your experience. The human brain works in a bit of a pattern-matching manner. So when your mind is thinking about the solution to a small problem, it'll quickly try to match it to similar problems you've faced in the past. That means, if you see that your algorithm keeps on going back again and again to find the answer to the same sub-problem, the mind (having known memoization concepts) would suggest you apply memoization. Hence, the need to prepare, and hence you see that cracking interviews is not only about the DSA practice you've done, but every bit of problem-solving mindset you've applied throughout your life, comes into action. And this is how, we come up with a more optimal solution to a problem, in an interview.
This process takes most of the time in the interview, so once both, the interviewer and I, have agreed to a solution (or if we're running short on time, the interviewer will let you know when to stop), we move on to the end of the interview. Here, you'd be asked the famous "Do you have any questions, for me?" question. And this is your opportunity to interview the interviewer. Just kidding. This is your opportunity to ask them about their work, the technologies they work with, the growth of an employee within the company, learning opportunities and so many more questions which can help determine if the company is fit for you. It's extremely important to research a company and your growth opportunities before you join them.
After the interview, I like to follow up with my recruiter on the submitted feedback. You can choose to do or not do this. Doesn't matter much as the feedback for this round is already in the system. Besides this, I go back to my normal schedule of whatever I'm supposed to be doing on a normal day.
After the interview process is completed. The hiring process can go on for a few more days (or weeks) before you get your result. But by now, you'd know from your recruiter about the possible outcome. I don't have anything more to add here as the entire process of interviewing is just a part of your life. Your days should go on as usual and if you're an individual who's been in the industry, the way to look at interviews is as just one of those meetings in your day.
I've shared with you my thoughts on a typical interview process. These may or may not align with your thoughts and I'm open to listening to anything which will increase my knowledge in general about life. However, to summarise, I'd like to emphasise just this.
I'll share more thoughts on what I feel about jobs in general, in a separate blog. :)