Current status: Final year PG IT student
Tier-1 College
Some background about the company: Navi is a fintech startup, founded in 2018 by Sachin Bansal (also Founder of Flipkart) and Ankit Agrawal. Navi files a $440 Million IPO recently. So it is a dream company to be placed in.
Compensation is quite good.
The location is Bangalore.
Round 1 | Aptitude + Coding : Time: 2 hrs | 48 questions | Divided in four sections
Section 1 | Logical reasoning and Aptitude | 25 questions | 20 min: MCQ'S Based on topics like Profit-Loss, Mixtures, Ratios and Identities, Series Completion, Mirror Image, etc
Section 2 | Maths and Aptitude | 20 questions | 20 min: Aptitude questions with slightly more difficulty level
Section 3 | 2 coding Questions | 50 min:
Question 1 was an easy problem based on basic DSU (Disjoint Set Union).
Question 2 was medium problem based on BFS/DFS + backtracking. It was a bit tricky question, I could solve it only partially.
Section 4 | 1 coding Question | 30 min:
The question was a very easy problem based on simple BFS (Breadth First Search)
Round 2 | Problem solving and Data structures
Around 8 students were shortlisted, 45 mins round
The interviewer was a very friendly person having a total of 5 YOE with 1 year in NAVI. First, he introduced himself and then took my introduction. He started with a couple of Easy problems to reverse a linked list and Linked List Cycle to make me comfortable.
Then he told me to design a HashSet
I answered all three problems with two approaches each, he was quite satisfied with my explanation and didn't tell me to code.
Then he shared with me a doc that has Problem Statement:
Product Sales
You are given an array Inventory where M suppliers are having their product for Sales with some profit for the buyer. When one sale happens profit for that supplier is decreased by 1 and buyers can buy from the supplier until profit on that product is 0. And you have to place N orders such that profit for the buyer is maximum.
TestCase 1:
Inventory = [1,2,3] , Orders = 3
maximum Profit = 7
i.e 3+2+2
TestCase 2:
Inventory = [2, 5, 5, 8], Order = 8
maximum Profit = 44
i.e 8 + 7 + 6 + 5 + 5 + 5 + 4 + 4 = 44 I propose an approach that includes Priority_queue(max heap) which has a time complexity of approximately O(nlogn + mlogm), then he told me to optimize my approach.
Then I came up with the Greedy approach where I use Ordered_map to store profit as Key and frequency as value and iterate the map in a reverse direction to place an order with maximum Profit. This approach has a time complexity of O(nlogn + m) (i.e. nlogn for insertion in map + m to retrieve an element of the map).
He agrees with my approach and told me to code it on Google docs. It took 10 min to execute and debug.
He seems satisfied with my solution and then he ask me If I have any questions to ask him.
I asked 2 causal questions to know more about this Interview process and also asked him to give me feedback.
Round 3 | Hiring Manegarial Round
Around 4 students shortlisted | 45 mins
The interview was overly critical geek passed out from IIT with 12 YOE in total. First, he introduced himself then took my introduction in brief.
He opened my Resume and had 2 min discussion on achievement.
Started Project discussion, he gave me the format to explain Project as
I explained in the same way but he wants to verify, so he opens the Project GitHub Link and App link(Deployed on Netlify) we had a detailed discussion for around 15 mins and he was well pleased.
Asked for details about my academic courses and I felt a little embarrassed as I was not able to remember some of my course names. But I smartly handle the situation.
Asked to write SQL query on
Employee Table
with columns (empId, empName, Age, Salary) , empId is primary key
Where one emp can have multiple entries
Write a query to find the sum of salary for each employee in desc order
Select empId, empName, age, SUM(salary) from Employee
Group By empId
Order By descAdd on condition: if empId is not a primary key
Select empId, empName,age, SUM(salary) from Employee
Group By 1,2,3
Order By descAdd on condition: if count entries is less than 3 for each emp
Select empId, empName,age, SUM(salary) from Employee
Group By 1,2,3
Order By desc
Having 3 > (select count(empId) from Employee
Group by empId)Then he told me to Create Trigger
I humbly told him that I am unaware of this concept (I got a little annoyed by his never-ending extensions to problems).
But every cloud has a silver lining
Best Part
Moving ahead to DSA, he shares with me the Leetcode-Interview platform link. I haven't seen this platform before but really liked it.
He gave me Simplify Path and told me to solve it within 15 mins as we were short on time. I was able to explain my approach and solve it within 10 mins.
As we had remaining time,
he gave me one more problem Egg Dropping. I explain my intuition and he backed me with some corner cases.
And I was able to solve it (as it was known to me).
I felt happy, but he has no expression on his face and he acknowledges that we are out of time.
Then he told me we had a smooth interview and asked if I had any questions for him.
I asked him for feedback and asked about the company's work culture.
Verdict: Selected
.....................................................................................................................................................................
Skills that I feel matter most during the SDE interview:
And last but not least LUCK.
Just believe in yourself & work on your dreams daily.
Don't forget to take breaks that make you feel good 😉 Ykiyk
Upvote if you find it helpful!