Freshworks | Staff Software engineer| Interview Experience
Round 1 — DSA
1️⃣ LFU Cache
Started with a basic HashMap + Doubly Linked List approach and then optimized it to achieve O(1) operations.
Optimized design:
key → Node
frequency → Doubly Linked ListDiscussed:
get()/put()- Frequency updates
- Moving nodes between frequency lists
minFrequency- LFU + LRU eviction
- O(1) time complexity
2️⃣ Product of Array Except Self
Initially considered a brute-force O(n²) solution, then optimized using prefix and suffix products.
Time: O(n)
Space: O(n)**Verdict: Selected **
Round 2 — Frontend
This round was fully focused on JavaScript and frontend fundamentals.
Started with basic conceptual questions and then went deeper with follow-ups.
Topics included:
varvsletvsconst- Scope and hoisting
- Closures
- JavaScript execution behavior
- Core frontend concepts
The questions initially seemed like basic conceptual questions, but the interviewer went deep into each topic.
I was primarily prepared for Java, backend, distributed systems, and system design, so I wasn't very comfortable with the deeper frontend discussion.
Verdict: Rejected ❌
Key Takeaway
For a full-stack Staff Engineer role, prepare deeply for both backend and frontend, even if your primary experience is backend-heavy.


