My Journey — Easy way to FAANG (clickbait)
As the title suggests, this blog post is all about my journey till now. This post and subsequent future posts will be me sharing my life experience with my readers; from programming related topics to general philosophical aspects, I got it all covered. Let’s start with a basic introduction. My name is Ankit Priyarup. I recently graduated from Delhi Technological University and joined Google as Software Engineer at their Bangalore office in India. One thing I like to clear out is that my English is not that good since I’m not a native speaker, so please bear with my mistakes ^_^
Besides usual college stuff, I have done extensive freelancing and have also won various National/International hackathons, and took part in competitive programming contests. Check out my portfolio page if you are interested in knowing more about my works https://ankitpriyarup.github.io/. Feel free to ping me if you need any guidance or just want to have a chat.
Overall I see myself as an active problem solver and someone genuinely interested in software development & programming from the very beginning. I still remember my very first computer, back then I was five years old. My brother and I were very excited. I also told my brother that I want to make a game similar to Contra, to which he laughed. Finally, the computer arrived. It was a Pentium 4 Dual Core with 256 MB RAM (Yes MB XD) and Windows XP, which was the latest back then. I was fortunate to have born in a tech-savvy family. I had a Nintendo NES to play all the games I could ever imagine — Contra, Super Mario, Castlevania, you name it. And finally, with a computer, it was as if a kid had found a deluxe set of crayons. The moving cursor excited me and the way the computer was doing so many things at one time. Fast-forwarding to few years, In 2009, I first logged on Internet, which was like a whole new world for me. I used to search games on Yahoo (yes, it was not even Google era back then XD). But slowly, my mind starts diverging from games, as I started searching for ‘How to make software’ (Yeah, I was terrible at searching that time :p). I followed series of tutorials on YouTube. People used to screen share and type on notepad back then instead of speaking XD With that, my journey with VB.NET started. I made a couple of crappy softwares while just following tutorials, and that’s how I started with software development.
I also searched for a bunch of tips and tricks - creating viruses (using notepad :p now I realize those are just batch files to scare people off), heck even hacking Facebook accounts (crap XD). Later, I again felt an urge to try making games. I picked one unknown game engine. I don’t even remember the name now; it was a simple drag and drop to build isometric levels, later I tried Game Maker Studio, and finally, I switched to Unity. With that, I was first introduced to real programming in C# (unlike Visual Basic). I kept building, failing, and learning. It was fun, and I eventually got better at it. Then I started freelancing XD Because who doesn’t like money? On 8th December 2012, I earned my very first buck (500 rupees). Back then, the android play store was booming, so you can expect good downloads even for crappy games. I developed and published many games on the play store. I purchased an iPhone 4s with my own money (later Nexus 7 and a laptop, too :p). Being a child, I was too naïve and selfish as I spent almost all the money I earned on myself XD.
During my 11th-12th standard period, I took a nap for my JEE exam preparations… But eventually, I continued my programming experience; I decided not to do freelancing, so I kept exploring new technologies. I tried C# .net and COSMOS, which was my very first open-source experience. The project itself is dead now XD although I had great fun exploring it. When I was in 12th standard, I also took part in my first hackathon with Mukul Negi, whom I met online. The hackathon was organized by The Founders Café in Okhla, Delhi, and was primarily focused on game development. It was a very nervous experience for us, to say the least; we were the youngest. However, we still somehow managed to grab the runner-up position. We also met few amazing folks, including Chirag Chopra, who later helped us complete the project (Loopables) we originally made in that hackathon. I got to learn about NoSQL and, in general, better software development with this project.
Luckily, I got admission in Delhi Technological University under the Software Engineering branch, which was like a dream come true for me. In the first semester, loopables got good recognition as I was invited to attend the Unity Unite 2017. That was my first flight too XD. On top of that, going alone to a totally new place was an exciting experience. After all, I was just seventeen. Our game also won the Student Game of the Year title at the event.
Fast-forwarding to my college life, I learned Android development, and with that, I also got my first internship in the second semester under Sanjay Bhargava, who’s also one of the founding members of Paypal. I also started doing competitive programming and participated in various coding contests. I also participated in several hackathons. However, I realized college-organized hackathons are useless, so one should prefer hackathons organized by companies (like Citi, Atlassian, Optum etc.) over them. I also cracked Google Summer of Code under the Godot Engine organization. Later, I also continued freelancing this time within multiple domains including — Web Development & App development.
Then came the campus internship season, which sure was stressful for me. The thing was, I didn’t realize my low CGPA until then, because of which many companies straightaway rejected me. For the companies which had more inadequate CGPA criteria, I messed those myself due to lack of experience in DS Algo and overall low self confidence. I remember giving an interview for Adobe and messing it up badly because I was being an asshole even though the interview was easy.
The real truth about these campus placements/internship interviews is that there’s a lot of crowd (especially in India), and you need something to separate you from that crowd. No one has time to look at individual resumes. So ultimately CGPA is very important. It’s a straight rejection criteria but once you make it to interviews CGPA won’t matter. Other than CGPA you must have good competitive programming experience. Now you must have heard from countless sources that competitive programming is not required, right? Let me break it for you. Competitive programming is nothing but, as the name suggests competing while doing programming. You literally compete with thousands of coders in these contests. In a campus coding test; the scenario is kind of similar there instead of thousand you compete against hundred candidates. Now depending upon the size of competition the difficulty will vary. Say if you are from a tier 3 college, then you will have to face a lot of competition compared to a tier 1 college. Another example, If you have a good CGPA, then you have separated yourself from the crowd. All those who claim competitive programming is not required for cracking placements are not wrong; their scenario must have been simpler one, so if you want to prepare for the worst-case scenario, my suggestion is to go with competitive programming you won’t regret. But if you are only a few months away from your interviews, then sticking to leetcode is better because you require atleast 6 months to start competitive programming.
Also, a competitive programming problem is not always more difficult than an interview problem. It’s just interview problems are usually to the point, whereas in CP the statement itself is sometimes a riddle. So, you are required to crack the problem statement before approaching it. There’s a cp platform called atcoder.jp, which is famous for short problem statements. Do try it out if you want a mix of short problem statements of interview problems and a competitive environment. You can also try leetcode weekly contests, although I could never participate in them because they took place in the early morning, and my sleep schedule was super messed up to wake up that early. This leads us to my next suggestion, don’t mess up the sleep cycle. In simple words waking up at night and sleeping in the morning is highly unproductive; biologically speaking, you won’t get quality sleep.
In the end, I was not able to grab the so-called tier 1 company during my campus internship period. I got demotivated but eventually focused on my grades and DS Algo, everything I lacked before. I applied at various positions off-campus. I finally got an offer from Optum (or United Health Group). The funny part is I didn’t even apply for Optum on campus reason being I just had too much pride in myself (Read Pride and Prejudice; it’s a really nice book :p), So the moral of the story, don’t be an asshole XD think clearly for all possibilities, and don’t let yourself get caught in your own pride, neither get demotivated; It’s never too late. While applying off-campus, ensure that your resume format is proper since many companies use a bot (ATS system) to filter it out. My suggestion is to use Google Docs based resume instead of a Latex one. Not only mention the project but, most importantly, its impact on the resume. There are lots of YouTube videos on it, so do check them out.
Later, my internship at Optum was also canceled, all thanks to the Coronavirus :p Even though the Optum team couldn’t proceed with the internship, they interviewed us for an FTE pre-placement offer. And guess what? I fucked up! The interview was super easy; it was me who messed up. The interview didn’t even had any technical problems, just resume-based questions, and my resume was way too good to get rejected; then, what was I doing wrong? Well, the very first question, ‘Tell me about yourself,’ I was answering it wrong the whole time. Instead of just saying out everything from the resume later I made the introduction part short, just highlighting the basic domain I worked on. If you say too much complicated in-depth stuff right away it will leave the interviewer bored whereas going in chunks while presenting information will keep the interviewer engaged. Example -
Hi. I am Ankit Priyarup. I am a hard-working engineering undergraduate specialized in Software Engineering from Delhi Technological University. I’m an active problem solver — I like to solve challenging algorithmic problems and apply those ideas to solve real-world problems.
I’ve always been a tech-loving kind of person. I loved playing games as a child, so I thought, why not make one. Which led to programming in C# way back when I was in 7th grade by watching YouTube tutorials. I see myself as a quick learner. Since I started early, it allowed me to explore many different domains, including Android app development, Web Development, and machine learning. I am very flexible in understanding and adapting to new technologies. I’d love to bring my problem-solving skills and my passion for learning new technologies to this position.
I also started researching the company before applying, figuring out its mission, values, and vision. Incorporating these points and trying to develop a story that aligns with company goals is important. For example for the very famous ‘why should we hire you’ my answer would be:
From the job description, I noticed that you are looking for someone _____________, so I’m a perfect fit for the job.
● I’ve a solid foundation in computer science, with strong competencies in algorithms, data structures, and programming languages.
● I’ve experience working in industry, I’ve completed several internships at one of the top industries including two consecutive years for Google Summer of Code as student as well as mentor for Godot. And on top of that I also have several months of freelance work experience
● Lastly I’ve good analytical, troubleshooting, and communication skills.
Altogether, I am convinced that my strong background in computer science, together with my creativity, enthusiasm, and commitment, would be of great value to <Company Name>.
Of course these are examples don’t just copy and use it as your own instead adapt it accordingly; again, it’s pointless if you don’t do prior research of the company.
With that, the placement season finally arrived, and I cracked Bny Mellon, a day one company. I kept applying off-campus and luckily got an interview opportunity at Google. I also got offer from other companies including — Optum & Works application Tokyo.
Check out my Google Interview experience video
Shoutout to Lead Coding YouTube channel, I think they are doing a pretty good job.
Stuff I forgot to mention in the above video:
- I primarily studied only from leetcode before 2–3 months of interviews. I had CP background before that.
- Try to solve a problem totally by yourself. If you are stuck, then take some hints and continue if still stuck, then check out other portions of the solution. Even though you see the solution always come up with your own code basically understand the logic then try to code yourself. Remember, you don’t just need to know the right way to solve a problem but also other ways of how not to solve a problem.
- I knew that speed would be a bottleneck for Google interviews, so I practiced on my speed specifically.
- Checkout my Github repository: https://github.com/ankitpriyarup/Coding_Notes
By the way, in case you haven’t figured out the title of this blog already — “There’s no easy way to get into FAANG” get ready for lots of sweat and tears while you’re learning to become the best.