Each year Infosys organizes a competition (across the country) called HackWithInfy since 2018 for final year B.Tech students. There are 3 rounds in this competition and you will get a PPI (Pre-Placement Interview) for either Power Programmer Role(Specialist Programmer) or System Engineer Specialist Role (SES) or System Engineer Role (SE) if you clear the Second Round with a good rank.

The first two rounds are of a pure coding type, and they conduct it on the Hackerrank platform. Both the rounds contain 3 coding questions (easy, medium, and hard) with a deadline of 3 hours.

**Round 1 (Online Coding Round):**

It was hosted on Hackerrank Platform consisting of 3 questions from easy to hard level. Generally, these questions are from Arrays, Strings, Bit Manipulations, and DP. I had used Python and was able to solve 2 questions. Some questions that I remember are similar to :

- Variation of subset-sum problem question. https://www.geeksforgeeks.org/subset-sum-problem-dp-25/
- A string manipulation question. https://www.geeksforgeeks.org/rearrange-given-binary-strings-to-maximize-their-bitwise-xor-value/
- An array-based question. https://www.geeksforgeeks.org/minimum-number-of-operations-toconvert-a-given-sequence-into-a-geometric-progression-set-2/ )

**Tip**: Solve the questions with a calm mind. Don’t stress yourself during the test.

**Round 2 (Online Coding Round): **Only if you manage to clear the first round, you will be eligible to sit for the next round. The second round was also conducted on HackerRank platform (on 31st May 2020) and contains three coding questions but it was tougher as compared to the first round. This round also has a time limit of 3 hours. Generally, the questions are from DP, Graph, Tree, and Advanced DS.

The 3 questions were:

- You are given an array of size N.A function X(A) computes the Xor of all the values of the array ie. A[1] ^ A[2] ^ A[3] ^ A[4] ^… A[N] where ^ is the bitwise Xor Operation. You form an array B of size (N*(N-1))/2from array A. The array B contains all the pairwise Xor from the array A i.e. A[i]^A[j] where i<j. Find the value of X(B).
- You are given the array A of N elements as follows : [a1,a2,a3,………….,an] You need to find the maximum possible Xor Sum of any good subsequence of array A. A subsequence S is good if, for every A(i) present in S, A(n-i+1) is also present in S.
- You are given a graph. Initially, you are at node1 and you want to reach the node N. The graph consists of N nodes and M undirected edges. It takes 1 unit of time to go through the edges. There are K moments of time in which the edges can disappear. What is the minimal time required to reach the node N. If it is impossible then print -1.

**Tip:** Don’t spend too much time on any question if you are unable to solve it on the first attempt, especially graph and tree-based questions.)

**NOTE :**

- If you solve 2 questions (out of 3) then you may get an interview opportunity for SES role.
- If you solve 2.5 – 3 questions (out of 3) then you may get an interview opportunity for PP role

Luckily, I was able to solve all the 3 questions and was among the top 100 candidates (all over India).

I got the Pre-Placement Interview for PP role.

All the top 100 candidates are eligible to sit for the Grand Finale Round (Third Round). If you got selected for the Grand Finale Round then Infosys will have some perks for you. They invite you to their Pune Campus (for the 3rd Round at their expense) which is a Hackathon Round. This round is of 24 hours during which you have to develop an application/website which will be given by them. But due to the COVID-19 pandemic, it was organized virtually from home itself.

**NOTE: **The result of the hackathon and the result of PPI (held before the hackathon) is different and is not dependent on each other.

**Interview Round: **The interview was conducted on the Google Meet platform on 24th August 2020. I got the mail 2 days prior to my interview.

The Interviewer first asked me to introduce myself. Then he posted a coding question on the chat window and asked me to **Code**, **Compile **and **Run **in any IDE of my choice by sharing the screen.

It was based on the Travelling Salesman Problem (TSP).

Given a set of cities (graph) among which some are the tourist privileged cities and the transportation cost between every pair of cities, you have to find the minimum possible cost that a tourist will have to pay in order to visit every tourist city exactly once and returns to the same starting city from where he had begun.

**Me:** Since it was an NP-Hard problem,it cannot be solved in polynomial time complexity. I offered him 2 approaches –** Naïve Approach **and **Approximate Solution Approach. **

**Naïve Approach:**Using Backtracking with the time complexity of O(n!). https://www.geeksforgeeks.org/traveling-salesman-problem-tspimplementation/ )**Approximate Solution Approach:**Using Krushkal’s Algorithm with time complexity of O((ElogV). https://www.geeksforgeeks.org/kruskals-minimum-spanning-treealgorithm-greedy-algo-2/ )

I solved both the approach using Python and then successfully compiled and passed all the test cases provided by him. Then I explained to him both the approach to which he looked satisfied. It lasted for 30 minutes and then he shifted to the Technical part.

He started with my projects, internships, and then academics. He took an interest in my Internship and discussed the same. Some Questions which he had asked were :

- About Angular framework.
- Life Cycle of Angular8.
- About Router and its significance.
- What is SPA.

Then he asked several questions on the latest technologies like :

- Artificial Intelligence (AI)
- Machine Learning (ML)
- Big Data

Then we had a long discussion on Big Data Technology (for approx.15-20 minutes) in which he cross-questioned several times.

Then he asked some question related to RDBMS like :

- Different types of Joins.
- 3-Tier Architecture
- Scheduling and Indexing
- ACID properties
- Normalization.
- Flat File System
- About RMS (Recovery Management System)

And related to NoSQL like :

- When we prefer NoSQL and why.
- Structured and unstructured Data
- Different Types of NoSQL.
- What is “Polyglot Persistence” in NoSQL.
- Does NoSQL Database Interact With Oracle Database.

Finally, some question on OOPs like:

- Difference between Abstraction and Encapsulation.
- Difference between Abstract Class and Interface
- Concept of Multithreading.
- Some real-life applications of Polymorphism.
- Some deeper concepts of Exception Handling.
- Collection Framework.

The interview lasted for 1hr 15 min.

Then he asked me if I had some questions to which I replied in positive and asked 3-4 questions. (I had already prepared before the interview).

Finally, he ended the session and told me that the result will be announced soon on the final day of Hackathon.

**Tip**:- You should know each and every word of your Resume. Be thorough with all your projects and always try to explain using relevant illustrations and examples.

**HR Round: ** After 3-4 days, I got a surprise call from HR (in the afternoon while I was chilling). It was the telephonic round. He asked me a few questions like how good my interview went, how was the interviewer, about job preference & relocation, and finally asked me if I had some questions. It lasted for 7-10 minutes.

On 31st August 2020, during the Hackathon, they declared the result. My joy knew no bounds when I heard “Congratulations Ashish Raj ! You are selected for the Power Programmer(Specialist Engineer) role”.

A big thanks to **Geeksforgeeks*** *for providing such a great and wonderful platform for learning and brushing our skills.GFG has always been an important part of my studies from the very beginning of my college. Searching for a particular topic, algorithm and code is damn easy and that too in multiple languages.