pre-interview: Got referred by a friend who's a current Cohesity employee
prior experience: ~4yoe, SDE2 at one of FAANG
1st Round: Coding
https://leetcode.com/problems/generate-parentheses/
Solved this using the standard backtracking approach. Initially fumbled a bit but was able to implement the solution. Interviewer asked me to test using a few test cases, it was working as expected. He seemed satisfied.
It was around 40 minutes into the round by now.
The next problem was a modification of the minimum platforms problem. The problem was given two cities 'A' & 'B', & a list of schedules of bookings of both A->B & B->A types, return the minimum number of vehicles to accomodate the given schedules. I started with discussing the possible approaches, and then the interviewer encouraged me to dry run the approach I had in my mind with some sample inputs, I did that & we verified the correctness, then he asked me to translate the mental model into an algorithm, I was able to formulate an algorithm for the same after some thinking.
Since there wasn't much time left he didn't ask me to code up the algo. He seemed satisfied with the algorithm. I felt the round went well.
2nd Round: HLD
Design a distributed file storage system similar to Google Drive/DropBox with some additional constraints thrown in like we have to use a file upload API which deals in 1MB blocks only. I started out by gathering the FRs & then suggested the NFRs like availability, eventual consistency, multi device client-server sync mechanisms, etc. Pretty much followed the approach mentioned in GSDI book. Interviewer seemed satisfied overall & asked me what approaches I can suggest if client side hardware is very limited, I mentioned things like offloading majority of client device end data/metadata management business logic to a separate dedicated server to minimise consumption of device RAM/disk, having diff based mechanisms in place instead of sending/recieving the entire files, etc. Interviewer seemed quite satisfied with the approaches. I felt this round went well too.
3rd round: coding
Was asked the below question.
https://leetcode.com/problems/count-binary-substrings/
Explained my thought process and then came up with a solution and implemented it. Interviewer tested it with a few test cases & seemed satisfied with the solution.
Next he gave the following problem
https://leetcode.com/problems/insert-delete-getrandom-o1/
Came up with the solution for the above as well. Interviewer seemed satisfied.
4th round: HM1
I was asked to draw & explain the architecture of any one of the projects on my resume. I did the same & gave a walkthrough of the architecture, the cloud platform services involved, their roles, etc. HM then asked various behavorial questions based on various situations, why I was looking for a change, why Cohesity, etc. I answered the questions to the best of my knowledge & honestly. I felt the round went decent.
I followed up once for an update on the interview result but recruiter said last round feedback is pending. After that I didn't bother following up again & it's been about a month since then. I am not very inclined on joining Cohesity at the moment based on what my friend working there said about their WLB(15hrs+ workdays are apparently normal & theres a perpetual operational firefighting going on) & he himself discouraged me from joining. Meanwhile I have found another team at my current company(was a part of layoffs in January) so am staying here for now.
update
After about 1 month, recruiter reached out to me & said the HM doesn't have any openings in his team & asked to schedule another HM round with another very senior tech executive.
5th round: HM2
Similar to the previous round, I was asked to draw & explain the architecture of any one of the projects on my resume. I did the same & gave a walkthrough of the architecture, the cloud platform services involved, their roles, etc. In the second half of the round he asked to write the LLD of a multi tier caching system. I wrote whatever I could manage within 30 minutes(the interfaces & methods like getters & setters for the key-values, eviction methods, the different tiers like memory/disk etc.) It definitely wasn't the best I could have done maybe, but based on his feedback it seemed okay if not great.
Received a reject a few days after. Honestly I interviewed here purely for the experience but the fact that they considered a 4 yoe guy for IC5/Staff role(which I know is too much of an uplevel for me) is heartening for me.


