There are three reasons behind writing this blog: sharing my interview experiences, How I prepared for the interviews and making you believe that if an average student like me can do it, you can also do it.
Finding the Right Reason
The core motivation for doing anything in life depends hugely on the right reasons. In my personal experience, I have seen that if your reasons are incorrect or you don’t believe in them, you will not be able to sustain it long-term. Your reasoning can be anything, but whatever it is, you have to believe in them. So for me, this was the first step. If I had to describe my reason in a few sentences, it would be – Let’s start and see what happens. Either I will win, or I will lose. But in any case, I will be a wiser man, either way. So, in short, I went in because I was curious about the journey, not caring much about the destination.
Start
The start was one of the most overwhelming experiences for me. There is so much information available on the internet that made me so confused. The more I read, the more confused I got. You cannot avoid this, and you have to be patient; otherwise, you will give up. The human brain is a fantastic tool, and if you can learn to master it, you can achieve anything in life. Slowly I was figuring out patterns on how to approach the interviews. Figured out what kind of questions are usually asked for different types of roles, what kind of roles are there etc. Software Testing roles broadly included four types of questions – Data Structures & Algorithms, Behavioral, Testing Fundamentals/Scenarios & System Design.
Data Structures & Algorithms
If you are from an engineering background, this is the part you cannot skip, and this is the part where most give up. You have to realize that even if you are good with coding, that doesn’t mean you would be good at competitive programming. I started my preparations with Leetcode. It’s a well-known site for preparing DSA Problems. It was a nightmare for me when I began solving questions. The situation was such that I couldn’t understand the question and also the answers sometimes. But here is the thing, it is supposed to be like this. Things will be most challenging at the beginning, and you have to continue no matter what, but eventually, your brain starts to figure out patterns automatically. What began as an excruciating exercise later became addictive. Here are the things I did:
- I chose a programming language and stuck with that. For me, that was Java. I had been working with Java for a few years, so I was comfortable with it.
- I started Learning Data Structures provided in Java like Array, Linked List, Stack, Queue, etc.
- Then I directly started solving questions. I tried taking up crash courses for DS & Algo, but it didn’t work for me. I learned more by actually doing things.
- I started with LC Easy questions and then progressed gradually. There are a lot of Youtube videos that explain in detail how to reach a solution. I cannot tell you how much these helped improve my coding skills. One such creator is Nick White; his videos helped me immensely.
- I followed the approach: I read the question, then gave myself 40 minutes to come up with a brute force solution and an optimized solution. Suppose I am not able to solve the question within 40 minutes. In that case, I will look into the solution, understand it, and attempt the question again by finding a brute force solution and then with an optimized solution. In the world of Algo, Space and Time complexities are two terms you would hear now and then. A practical algorithm takes less space and less time. So in the interviews, it’s not just essential to solve the problem; it is crucial to do it optimally. So concepts for BigO must be clear.
- Consistency is the key. Every day I sat in front of the monitor, and no matter how much I wanted to give up, I devoted at least 1 hour. Later, when I started figuring out things, solving problems became fun, then that 1 hour turned into 2 hours, 3 hours, and so on.
- You can check out my Github Repo, where I have uploaded the leetcode questions I have solved. I will update the repo in the coming days with more solutions.
-
Behavioral
Behavioral questions usually aim to understand how candidates react to and manage specific situations. Some examples of behavioral questions include:
- Tell us about a time when you solved a problem at your job that wasn’t part of your job description.
- Tell me a time when you went above and beyond for a customer.
- Tell me about a time when you failed.
- Explain a situation where you handled disagreements when working as part of a team.
- etc…
The answers to these questions will determine whether you are a good fit for the organization and the team. Now, these questions may sound easy, but in reality, it’s not if you haven’t practiced them before. These questions require good storytelling. One way to answer behavioral questions is using the STAR method(Situation, Task, Action, Results). The best way to prepare, which I did, was to get a list of commonly asked behavioral questions and make notes by dividing each question into Situation, Task, Action & Results. If you do enough questions, you can answer these questions quickly and fluently during the interview.
Testing Fundamentals/Scenarios
You must be confident about testing fundamentals when you are interviewing for testing positions. Some of the most common questions in the interviews are How to write a Test Plan? How to write a Test Strategy Document? etc. Although it may sound straightforward, but if you have not practiced them earlier, it can cause some difficulties at the time of the interview. Although I have created Test Plans in my work, I still made dummy test plans and other similar documents on my own based on random scenarios. These helped me immensely during the interviews, as I was fluent in my answers.
System Design
System designs are usually not that asked much for Testing roles, but I prepared them anyways. System design, in a nutshell, explains the architecture of an end-to-end system. You will be asked to explain the components of the architecture, Database structures, Data Flow, Caching, etc. Some common Questions can be – Design Instagram or Design Twitter? There are plenty of free resources on youtube for this.
Preparations(In a nutshell)
Apart from the above four, I was consistent on StackOverflow answering questions. These helped me immensely with my debugging and coding skills. Also, I tried to push one blog on any test automation topics every weekend on my blog. These again helped me with my research skills, my coding/debugging skills, and my presentation skills. The upside of all this was it made my resume stronger. I ensured my Github was up to date with whatever coding projects I was doing. Although I started with 1 hour daily, soon I was devoting 2 hours daily to everything during weekdays (apart from my job). And on weekends, I used to devote 3-4 hours. I used to do leetcode problems early in the mornings while learning the concepts; it helped me a lot as I approached the issues with a fresh mind.
Applying to FAANG Companies
I saw in my research that Amazon, Apple, and Meta have the maximum number of openings for QAE/TAE/SDET in London, so I started applying to them. After a few applications, I got interview invitations from Amazon London. While I was Interviewing for Amazon London, I also got an interview request from Apple London. So I gave both my interviews in parallel.
Amazon Interview Experience
My first interview was scheduled with amazon in early April 2022, and it took around two months to complete all the interview Rounds. In total, I had 1 Online assessment and six rounds of interviews with Amazon. The interview consisted of – Behavioral rounds, Testing Basics, coding rounds & My experiences on the projects I have worked on. What makes Amazon interviews unique from other companies is the Leadership Principles. Overall, the interviews went well(it can always be better), and eventually, I got an offer.
Apple Interview Experience
My first interview with Apple was scheduled more or less at the same time. It also took around two months to complete all the rounds. In total, I had five rounds of interviews. It included – General Introduction, coding rounds, Testing basics, and behavioral rounds. Overall the interviews went well(It can always be better), and eventually, I got an offer.
Offer Discussion and Blind
Blind is an anonymous community app for the workplace. It is a community where you can ask about anything tech-related anonymously. It helped me understand how the pay structure works in FAANG companies. I got clarity on things like Levels, RSUs, vesting, refreshers, etc. It also helped me to negotiate my salary in a better way.
After a lot of analysis and discussions, I decided to join Apple.
Relocation to London
Once the documents were signed, Apple took care of everything. Starting from filing visas to providing temporary accommodation and then helping me find a permanent home in London. Apple also took care of travel by providing flight tickets and other relocation perks. I can say this was my smoothest transition to a new country.
Conclusion
- In life, to achieve something worthwhile, you have to make sacrifices.
- Make a good study plan and follow it.
- Learn to embrace failures. Learn from them and move on. I interviewed for Amazon once, and I got rejected. I also interviewed for Google but couldn’t even go past 1st round. But this never stopped me from applying again to these companies.
- Learning or Acquiring a skill is a time taking process. You have to sit through some of the most unpleasant times of your life.
- Take care of your health – Mental and Physical. Have a good night’s sleep. It’s ultimately a lifestyle change.
- Go on Holidays. Plan days out with your family. Be happy. What’s the point of preparing for FAANG interviews if you are unsatisfied with your personal life?
- Regulate your social media use. Avoid mindless scrolling. We don’t realize how much time we waste every day on this.
- Last but not least, be consistent. Every day no matter how small, do something. Not every day would be the same. There would be days where you would be highly motivated; some days, you won’t be. Take care of the days when you are not motivated; at least do something, no matter how small it may be.
Encouraging post. Success never come along it has to be acquired with never die attitude. Enjoy your success.
Hope Your words will light up hearts, move souls and create new opportunities! 🙏🏻
This is a wonderful inspiring article Alapan… Your successful journey is beautifully scripted in each topic…