Open In App

Fi Interview Experience

Last Updated : 08 May, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Fi is one of India’s best emerging neo-bank startups for digital natives. It was founded by the former creators of Google Pay (previously known as Tez). I looked at their awesome team on LinkedIn and I felt as if working with them would be a great learning experience for me. So I immediately applied for an Intern + Full-time opportunity for Software/Security Engineering roles at Fi on 24 January 2021.

The First Breakthrough: After 9 days, I got an e-mail from the Fi Hiring Team to attend a coding test on HackerRank for 90 minutes. I was in college when I received this e-mail and immediately after reaching home, I decided to take this test. It had 3 coding questions:

  1. Almost Equivalent Strings [Easy] [50 Points]
  2. Shopper’s Delight [75 Points]
  3. You will be given a list of articles with their page lengths and intellectual value coefficients.

Given a limit to the number of pages you can read in a day, determine the maximum intellectual value you can achieve during one day. You have to read each article twice to gain value. [ Dynamic Programming / Knapsack ] [75 Points]I was able to solve 1st & 3rd questions completely and managed to solve 2nd question partially where 50-60% of the test cases passed.

The First Call:

After 7 days, I got a call from a recruiter. She told me that the Fi Hiring Team would like to invite me for a Hangout Interview with their co-founder Neeraj Bhope.

The Interview was scheduled for 12th February 2021.

The First Round:

Honestly, I was nervous. Because I was going to be interviewed by someone who not only worked at Google for 12 years but also led a team that revolutionized digital payments in India.

So here’s how it goes. Interviewer: Hi Sahil Let me introduce myself to you & later on you’ll get a chance to introduce yourself and then we can move forward with this interview.

Interviewer: Introduced himself and asked, “Can you tell me something about yourself ?”

Me: Introduced myself. Talked about my achievements in Facebook Bug Bounty. Talked about my previous Internships & also told why I applied at Fi.

Interviewer: Cool! Do you know about Public Key Cryptography?

Me: Explained clearly the concept of Public Key Cryptography.

Interviewer: Can you explain one interesting security issue that you found on Facebook, along with its impact?

Me: Explained a vulnerability that I found on Facebook [ Interested? Read here ]

Interviewer: How about solving a coding question now?

Me: Sure!Interviewer: Please open the link in the chat box. Given a huge text file that has chat logs of a group chat, find the top K chatty users by word count. Assume the number of users to be N.Ritish: Hello GuysSanjay: NiceRakesh: Old is GoldTop 2 chatty users are [Rakesh, Ritish]

Me: Instantly gave the solution using Hashmap + Sorting. Its time complexity was NlogN

Interviewer: I think we can reduce the complexity. How do we do it? [ At this point, I realized the importance of follow-up questions in Leetcode. Never ignore that! When you’re being interviewed by the best, you are expected to deliver the best. No excuses]

Me: After 2 minutes of awkward silence… “Max Heap!!!”Interviewer: Explain the working of Max Heap along with heapifyMe: Beating around the bush… with some correct as well as incorrect explanations.

Interviewer: Explained to me the concept of heapify clearly along with its complexities [ I wish he was my professor at college ]

Interviewer: Now I expect you to give a solution using Max Heap! Can we maintain a heap of size K and reduce the time complexity of your solution from NlogN to NlogK?

Me: Yes! We can do that. Derived a NlogK solution and explained to him the approach and we were left with 3 minutes. I quickly tried to code the solution.

Interviewer: It’s ok. I understood your approach. Stop coding as we have no time left. Any questions?

Me: Asked some questions about the culture at FiInterviewer: Answered my question and we agreed upon to end the interview. When the interview ended, I had mixed feelings about whether I would go through to the next round or not. Because someone explaining to you the concept of Max Heap in an Interview is something that I have never heard before. But the experience was amazing, it felt like I was interviewing at Google!

The Second Call:

After 11 days, the recruiter called me and told me that the team would like to invite me for the next round of interviews with the Head of Engineering at Fi – Prasanna Ranganathan [Ex-Senior Architect @ Flipkart, Ex-Tech Lead @Paypal, Ex-Netflix]. The Interview was scheduled for 25th February 2021 but later rescheduled to 2 March 2021.

The Second Round:

From the lessons I learnt in the previous round, I knew that the interview was not going to be easy, with one mistake & I would be knocked out. So I took this round seriously and here’s the detailed replay.

Interviewer: Hi Ritish! My name is Prasanna… Introduced himself.

Interviewer: Please tell me something about yourself.

Me: Introduced myself.

Interviewer: Explain one of the best vulnerabilities that you found on Facebook.

Me: Explained.Interviewer: Do you have an idea about OAuth?Me: Yes, I have a basic idea about it. ‘Auth’ in OAuth stands for Authorization and not Authentication… Then he immediately interrupted me!

Interviewer: You raised a good point. First, explain to me the difference between Authentication & Authorization, later you can continue with your answer on OAuth.

Me: Explained to him the difference between Authentication & Authorization.

Interviewer: Understood! Please continue with your answer on OAuth.

Me: Explained clearly my understanding of OAuth.

Interviewer: Sounds good! Let’s do a coding question now. Open the link in the chat. You are given a target and a list of records. Return the record with the minimum value for the target. The records can contain negative values as well. If a record doesn’t contain the target assume the value to be 0 in that particular record. Assume number of records to be N.target: ‘a’ , records: [{‘a’:1,’b’:3},{‘a’:3},{‘a’:4,’c’:-5}] ans: {‘a’:1,’b’:3}target: ‘a’ , records: [{‘a’:1,’b’:3},{‘a’:3},{‘c’:-5}] ans: {‘c’:-5}Me: Spent 5 minutes understanding the question. I wasn’t able to understand the test cases and the expected output initially, but after 5 minutes I finally understood the question clearly and within a further 5 minutes, I coded the solution with O(N) time complexity. All test cases passed.

Interviewer: What’s the time & space complexity of your solution?

Me: O(N) time and constant space. Explained clearly why it is so.

Interviewer: Sounds good. Let’s go to the next question. You are given a target, param and list of records. Return the record with minimum value for the target if the param is ‘asc’ or Return the record with maximum value for the target if the param is ‘dsc’. The records can contain negative values as well. If a record doesn’t contain the target assume the value to be 0 in that particular record. Assumeseveralf records are N.

Me: Coded the O(N) solution and all test cases passed. Explained time & space complexity.

Interviewer: Cool! Do you have any questions for me?

Me: How different is your experience at Fi as compared to Flipkart, Paypal or Netflix?

Interviewer: Answered my question and we agreed to end the interview. When the Interview ended, I knew that I cracked this round. The only thing I can do now is to wait for the recruiter’s next call.

The Third Call:

The next day, I got a call from the recruiter and she told me that the hiring team would like to invite me for the next round of interviews with Pruthvi Sabbu [Senior Software Engineer with 8+ years of experience in digital payments]. The interview was scheduled for 5th March 2021.

The Third (Final) Round:

I have been interviewing at Fi for over a month now, so I cannot afford to waste my time & effort in this final round. So I started preparing for system design concepts of digital payments because Pruthvi had 8 years of experience in the same domain. Also read about the internal working of sessions, cookies, DNS, OAuth and related web technologies concepts. Didn’t touch coding.

Interviewer: Hello! I’m Pruthvi… Introduced himself. Please give your introduction.

Me: Gave my introduction.

Interviewer: Since Neeraj & Prasanna have already tested you in Security, just explain to me the 2 best vulnerabilities that you found on Facebook.

Me: Explained my top findings on Facebook.

Interviewer: Good! I don’t have much to ask about Security, so let’s do a coding question.

Me: Sure!

Interviewer: I just sent you a link in chat. Open the link. Given a string, your task is to count how many palindromic substrings are in this string. Input: ABC Output: 3 Input: AAA Output: 6I solved this question many times. But at this moment, I went numb for 10 minutes after seeing this question, due to nervousness. The only thing I knew about this question at that moment was “It is not an easy question!”. Ten minutes passed without any response from my end. So I decided to break my silence by giving a brute-force solution, then later decided how to approach an optimal solution.

Me: Pruthvi, the brute-force solution is to generate every substring and check if it is a palindrome or not.

Interviewer: What’s the time complexity?

Me: O(N^3). But I am thinking of an optimal solution, please give me some time to think.

Interviewer: Sure, take your time. After 5 minutes I got an idea about using the “expanding-from-center” approach.

Me: I think we can solve this question using the “expanding from the centre” approach. It will have a time complexity of O(N^2), I feel that’s optimal enough for this question. [ I was hoping that he wouldn’t ask me to give an O(N) solution using Manacher’s Algorithm ]

Interviewer: Yes, that will work. You can code the solution.

Me: Coded the solution in 10 minutes & all test cases passed. When I saw the clock, we still had 21 minutes left in the interview. From no solution in the first 10 minutes to saving 21 minutes in the end, I felt it like an achievement. To utilize those 21 minutes, we had a chat about my experience with Facebook Bug Bounty and I explained to him a few more vulnerabilities that I found on Facebook & LinkedIn.

Interviewer: If you want to introduce one privacy feature on Facebook, what would it be?

Me: Providing users with an option to turn off receiving messages on WhatsApp, while their internet connection is turned on.

Interviewer: Why do you think WhatsApp has not yet implemented this feature? It is a piece of cake for them, they can implement this overnight. Are there any potential drawbacks?

Me: Gave some possible situations and talked about drawbacks.

Interviewer: How does end-to-end encryption work in WhatsApp? Are chats between two users saved on servers?

Me: Gave possible (not accurate) solutions to both questions with my knowledge of Cryptography & Network Security. Because we don’t know exactly how Facebook deals with our sensitive data.

Interviewer: Good progress Ritish! You have maintained a good profile at your age. Do you have any questions for me?

Me: How different is Fi to you as compared to your previous fin-tech startups & companies?

Interviewer: Answered my question and we agreed to end the interview. When the interview ended, I was expecting that this would be my final round.

It has been almost 45 days since I stepped into this hiring process and I cannot imagine one more round.
The Suspense working days past my interview, I haven’t heard back from anyone yet!

  • 9 March: I mailed the recruiter for an update. No reply!
  • 12 March: I mailed my interviewer and asked him whether he passed the feedback of our discussion to the recruiters.
  • 12 March: The Interviewer replied quickly – ” Apologies for the inconvenience, I will get things speeded up”
  • 12 March: Recruiter called me and said – “Hi Ritish! When can you join? We are discussing you. I will let you know soon”.I was expecting an offer after the discussion with a recruiter but didn’t hear back. I seriously wanted to join Fi and learn new things there!!

The Dunzo Twist: While I was waiting for Fi’s decision, I got an offer from Dunzo for the role of Security Engineer Intern. I waited till 21st March for Fi’s reply and finally joined Dunzo on 22 March assuming that I was ghosted.

On 25th March I got a call from an unknown number. He was a different recruiter from Fi (not the same).

Recruiter: Hi Ritish! My name is Anonymous. I am calling from Fi. You had your previous interview on 5th March. We would like to invite you for the next round of discussion with the founding team. I called you to find out your availability.

Me: Hi Anonymous! Sorry, I have joined Dunzo because it’s been a long gap since my last round at Fi and I assumed that I was ghosted. I would like to forfeit my interview process at Fi. Thanks for the opportunity, It was great meeting you guys!

Recruiter: I understand, Ritish! I wish you all the best for your future!Conclusion:60 Days! 4 technical rounds! Meeting the founders of Google Pay (Tez)! This boils down to my best interview process to date. But equally concerned that the result could have been different if the process had been a bit fast. That’s life! But where did Dunzo come from in the middle of the interview process? Well… that’s a different story for upcoming episodes!

Thank you for reading here. I hope you found the interview experience helpful. Don’t be shy to message me, I am always ready to help anyone and make new friends.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads