Freshworks - Senior Software Engineer - Interview [Offer]
Summary
I successfully interviewed for a Senior Software Engineer role at Freshworks, receiving an offer after three challenging rounds that covered Data Structures & Algorithms, a detailed resume deep-dive, and a final hiring manager discussion.
Full Experience
I recently interviewed for a Senior Software Engineer position at Freshworks, a role I applied for via a referral. My interview process consisted of three main rounds.
The first round was a DSA round where I was given two LeetCode problems: Find Peak Element and Search in Rotated Sorted Array. I successfully solved both problems. After a slight delay due to headcount calculations, I received positive feedback and moved to the next stage.
The second round, surprisingly, wasn't a pure LLD as expected. It began with a detailed resume deep-dive where the interviewer questioned my technology choices, system design decisions, and complex projects. Towards the end, I was given another coding question, Word Search, which I solved efficiently. The feedback was very positive, leading directly to the hiring manager round, skipping HLD.
Finally, the third round was a brief Hiring Manager (Director) discussion. It was a casual conversation about my interests and their expectations, lasting only about 15 minutes. Within minutes of this call, I received confirmation of an offer.
Interview Questions (3)
A peak element is an element that is greater than its neighbors. Given an input array nums, where nums[i] ≠ nums[i+1], find a peak element and return its index. The array may contain multiple peaks, in which case return the index to any one of the peaks. You may imagine that nums[-1] = nums[n] = -∞.
There is an integer array nums sorted in ascending order (with distinct values). Prior to being passed to your function, nums is possibly rotated at an unknown pivot index k (0 <= k < nums.length) such that the resulting array is [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]]. Given nums after the possible rotation and an integer target, return the index of target if it is in nums, or -1 otherwise. You must write an algorithm with O(log n) runtime complexity.
Preparation Tips
My preparation primarily focused on Data Structures & Algorithms, Low-Level Design (LLD), and High-Level Design (HLD, although this round was ultimately skipped). I regularly practiced LeetCode problems which proved crucial for the DSA rounds. For the resume deep-dive, I ensured I could articulate my project experiences and architectural decisions clearly.