Work hard in silence; let your success be your noise.Frank Ocean
Arthak and Nikhil Gogia from batch of Y17 have decoratively proved this with their determination, passion, and consistency. They managed to practice things that promised them joy, programming and this made them achieve what every software engineer thrives for, an internship and a Pre-Placement Offer at Amazon and a Job as SWE at Google. Google and Amazon don’t need any description, and their name is enough for you to dream big. So, why not look at their stories and tie up our shoes to create our journey!
1) It’s the dream of many students to be a part of prestigious MNCs like Google and Amazon. How has it been like to have grabbed such a great opportunity?
Nikhil Gogia: It feels great. I feel fortunate for this. Luck matters a lot; no matter how skillful or hardworking someone is, Luck does play a significant role.
Arthak: Achieving something that you have wished for a long time feels incredible. The best thing about these companies is not the organization itself but the number of brilliant people that work alongside you.
2) What skills of yours made it possible for you to grab an SDE internship at Amazon and finally a job at Google?
Arthak: For me, it was competitive programming. As almost everything they ask in both of these companies is around DSA. However, if you are preparing for placements in general, keeping an acceptable academic record also matters, as some big companies like Goldman Sachs and Adobe have high GPA criteria even for applying. Also, a strong understanding of CS Fundamentals does help a lot, as most other companies ask those.
Nikhil Gogia: I would not give my story as an inspiration to anyone or follow my path to get the things I currently have because everyone has a unique journey.
For me, it was that I never was quite interested in academics. Like I never studied much in college. The only thing I cared about a lot was competitive programming in my first and second year. In my interview, too, when I got asked, they knew that I lacked in the academic field, so I tried to compensate with competitive programming.
So, to all the Y20, I would recommend that you start with competitive programming. It is an excellent field– you should get the hang of it, and you can proceed to other areas quite smoothly after that since it gets you accustomed to the language. So yeah, competitive programming is a must for that. In basic CS fundamentals, OS, DBMS, AP, and CN are what you need to know to crack any interview. Apart from that, you should have good communication skills as well. It will help if you speak so that someone could perceive whatever you are trying to say quickly.
3) How was your experience during your internship at amazon? What about the working environment and colleagues?
Arthak: As I had worked remotely for my internship at amazon, the primary thing that I noticed was how well structured the team was. The team meetings were particular with what each person is assigned and how much time they have devoted to it. Apart from this, my mentor was helpful, and he guided me whenever I faced any trouble. The perks provided were excellent, including a MacBook Pro and Internet reimbursement. Due to the internship being remote, there were a few hiccups and delays in the beginning. Apart from that, overall, it was an excellent experience for me.
Nikhil Gogia: This was the first time that the internships took place virtually due to the whole covid scenario. Right before the internship started, we all believed that our internships might get canceled. However, we were lucky that our internships did not get canceled. Furthermore, as I did not have prior experience in other domains apart from competitive programming, I learned a lot there. I built my whole single-page web application there, wrote documentation, and interacted with the whole team. Overall it was a very significant and pleasant experience.
4) Can you brief us about the selection process. How would you suggest others prepare for job interviews in FAANG companies?
Nikhil Gogia: The interviews are pretty professional. So no matter what the results would be, sitting for these interviews is a great experience on its own. The interview was great. The interviewers asked some excellent questions. Even if I could not crack them initially, those people helped me out so much that eventually, I could get to the answer.
To get into FAANG companies, you must have command over competitive programming–that is the essential requirement. Also, it would help if you focused on the CS fundamentals. Have a couple of projects as well in the field you want to work in the future. Be it data science, web development, cybersecurity, or any other. Build up the core with basics like competitive programming and CS fundamentals and then explore the various domains and have a couple of projects in the field you would like to work in the future in your profile. This will bring a bit of skin to the game. When you are in an interview, you can put your inputs if you have some projects. That is the whole purpose of the projects. Otherwise, the interview will be just one way, i.e., you will be asked questions, and you will be speaking and not giving any inputs, so that is where projects help a lot.
Arthak: For Amazon, the process was pretty short. There were two rounds. In the first round of online interviews, they shortlisted around 40 students, after which they had to crack an interview that consisted of 2-3 DSA problems. During the internship, you are either assigned a project under a mentor. You either have to do a new project, or you have to contribute to the existing codebase. It varies from person to person. You have to complete the tasks assigned to you by your mentor and manager. After that, you have to appear for some interview which again contains DSA problems, after which you may get a PPO.
For Google, it is pretty different. I do not know about internships, but there are many ways to enter opportunities for full-time employment roles. If there is an opening at Google careers, you can apply there. You can also participate in contests like Hashcode/Kickstart. If you get a good rank, you may get invited for an interview. The third way is to get in contact with a Google recruiter, and that’s how I got the chance. Once you enter the interview process, there are several rounds. In the first round, they do a primary screening using some CS Fundamentals and Complexity questions. After clearing that, there is a phone screening round. They give two questions, and you have to solve them in 45 mins. After clearing that, they call you for an onsite interview. In the onsite interview, there are five rounds. Three rounds are DSA based, two questions 45 minutes format (think, explain and code). After clearing them all, there is a 4th round which they call the “Googliness” round. In this, they check your behavioral reactions towards different situations in the office scenario. And at last, one more DSA round. After all five rounds, your recruiter creates a packet that contains reviews from all the interviews. Then this packet is sent to the hiring committee. If they think that you are fit to work in Google, they send you for team matching. If they find a team that wants you, they give you an offer!. The whole process took about 2.5-3 months for me. So basically, CP is the key. Solving DSA problems on geeks for geeks alone will not help you practice solving questions in a time-constrained manner. Also, Communication matters a lot. If you are not able to communicate correctly, you may get rejected. One of my friends cleared every DSA round but got left just because he could not speak well with the recruiter.
5) What advice would you like to give your juniors who are aiming for a job at Google?
Nikhil Gogia: I would advise them to start slow and not get under the pressure of learning everything. When I was a freshman, I heard people saying that “We have learned this algorithm, we have learned that algorithm.”, but then it doesn’t matter how many algorithms we know; the thing that matters is whether you can apply them in fundamental ideas and actions or not! If you haven’t got the hang of the algorithm, you do not know it. This is where people get tricked whether they know it or have just memorized it, which is very necessary. If you just started with competitive programming, take it easy, making things more straightforward in the end. If you rush it in the very beginning, you would learn many algorithms. In the end, you won’t be able to figure out that, “Why should I do this, why should I do that?” and I have personally seen many people leaving this field because of the way they had started it. So, take the thing slowly, practice out the basic implementation questions on platforms like CodeChef and start with competitive programming. Give some contests as well. One last thing, no matter what, you shouldn’t proceed with this JEE style. Since you guys are freshers and recently gave JEE and have just come to college, you might have the JEE mindset. In coaching, you were given questions, and it was expected that “If we do these questions, we will crack the exam.”
Nevertheless, cracking the product-based companies isn’t like cracking JEE. If cracking these two things isn’t the same, indeed, the preparation shouldn’t be the same. So, focus on the methods you apply for your preparations and don’t do competitive programming just for placements; instead, try to do it just for fun in it. That’s all I would advise.
Arthak: Not to go crazy about it, focus on learning new stuff along the way, create something that interests you. It is always good if you can get into competitive programming and data structures and algorithms early on. Still, to be prepared for placements as a whole, one should also focus on the development side. It would be best if you did not stress yourself, take things slow, and develop one skill at a time. CP/DSA is indeed what’s most likely will help you to get through interviews at Google. However, if you do not find it interesting, you should explore other fields. I also did many things from Web Development, Machine Learning to Automation before settling down on CP. Participating in Hackathons or building something you like can also come in handy for networking or exploring and rapidly learning new stuff. You will make many mistakes, but learning from those mistakes is essential and will set you on the right path.