Freshworks Interview Experience
Summary
I underwent a three-round interview process at Freshworks, featuring DSA, LLD, and System Design questions. Although I performed well in technical aspects, I received negative feedback for not adequately gathering requirements in the final design round.
Full Experience
First Round
Got 2 DSA questions. You should be able to solve them if you are comfortable with the Blind 75 problems.
Second Round
Asked me to design a Low-Level Design (LLD) for a file parsing and storage service. The system should dynamically handle any type of file and store it in different storage services. We were expected to use the Strategy Design Pattern for this.
Given a Logger class with methods start(requestId, startTime), end(requestId, endTime), and log(). The requirement was to log the requestId only after it has ended, and the logging should happen in the order of their startTime.
Given an array, find all possible combinations of numbers that sum up to a given total.
Asked to write code for LFU (Least Frequently Used) cache.
Third Round
I was asked to design an Audit Log System. The discussion went well, and I initially thought I would be selected. However, after following up with the HR, I was informed that I received negative feedback. The HR mentioned that I did not perform well in requirement gathering.
Before the interview, another HR had advised me to drive the interview by asking questions and gathering requirements. I realize now that I should have asked more clarifying questions and taken more ownership of the discussion. This was a learning for me.
I am currently looking for a new opportunity as my current company asked me to resign. If you know of any openings or could offer a referral, it would be greatly appreciated. Thank you for your support!
Interview Questions (5)
Design a Low-Level Design (LLD) for a file parsing and storage service. The system should dynamically handle any type of file and store it in different storage services. We were expected to use the Strategy Design Pattern for this.
Given a Logger class with methods start(requestId, startTime), end(requestId, endTime), and log(). The requirement was to log the requestId only after it has ended, and the logging should happen in the order of their startTime.
Given an array, find all possible combinations of numbers that sum up to a given total.
Implement an LFU (Least Frequently Used) cache.
Design an Audit Log System.