Timeline
- Applied: July 2026
- Round 1: Within a week of applying
- Round 2: 2 days after Round 1
- Result: Rejection email same day as Round 2
Fast process — but also fast rejection.
Background
- 5 YOE full-stack (React + Node/Java)
- Currently at a product-based startup
- Strong on backend, decent on frontend — that's what hurt me
Round 1 — DSA + Resume Discussion (45 min)
First 20 minutes: Deep project discussion
The interviewer went hard on my current project:
- Architecture decisions and trade-offs
- Performance optimizations I'd implemented
- What I own end-to-end vs what I contribute to
- Specific numbers (latency improvements, scale handled)
Not surface-level — they wanted to know if I actually built it or just worked on it.
Last 25 minutes: Stock Span Problem variants
All three were stack-based:
-
Stock Span I — Basic: for each day, find how many consecutive days before it had a price less than or equal to today. Classic monotonic stack.
-
Stock Span II — Variant with a twist: find the next greater element for each stock price, but with circular array behavior (the array wraps around).
-
Stock Span III — Hardest variant: given a stream of stock prices arriving one at a time, maintain a data structure that returns the span in O(1) amortized time per query. Needed online processing with a stack.
I solved all three. This round went well.
Round 2 — Frontend / JavaScript Deep Dive (60 min)
This is where it got intense. Not a React component-building round — pure JavaScript and browser internals.
Questions asked:
-
Semantic HTML elements — what are they, why do they matter for accessibility and SEO. I gave a solid answer.
-
Performance:
left: 200pxvstransform: translateX(200px)— which is faster and why? Answer:transformonly triggers composite, skips layout and paint.lefttriggers layout reflow. Discussed the browser rendering pipeline (Style → Layout → Paint → Composite). -
asyncvsdeferin script tags — when each downloads, when each executes relative to HTML parsing. Drew the timeline. -
Shadow DOM vs Virtual DOM — completely different concepts. Shadow DOM is browser-native encapsulation (Web Components). Virtual DOM is React's in-memory diffing strategy. Explained both.
-
Multiple JS execution questions — closures in loops, event loop ordering (microtasks vs macrotasks),
setTimeout(fn, 0)behavior. I stumbled on one involving Promise.resolve() interleaved with setTimeout. -
Design a tooltip using only HTML/CSS — no JavaScript allowed. Used
:hoverpseudo-class +::afterpseudo-element withcontentandposition: absolute. Interviewer wanted smooth transition and arrow pointer. -
Flatten a nested array + Array.prototype extension — implement
Array.prototype.myFlat(depth)that works likeArray.flat(). Recursive approach with depth tracking. Then discussed prototype pollution risks. -
Explain React Fiber — how the reconciliation algorithm works, what a Fiber node is, priority-based scheduling, time-slicing, how interruptible rendering differs from the old stack-based reconciler.
Where I fell short: The React Fiber explanation. I knew the high-level concept but couldn't articulate the work loop mechanics (requestIdleCallback, expiration times, lanes). The interviewer clearly wanted implementation-level depth.
Why I Got Rejected
Honest assessment:
- Round 1 was solid — cleared comfortably
- Round 2: I was "good" on most questions but not "senior-level deep" on React Fiber and some event loop edge cases
- At Freshworks, the frontend bar for Senior Fullstack is legitimately high. They want someone who understands the browser at an engine level, not just framework usage.
Compensation (for context)
The recruiter mentioned the band during the initial call:
- Base: ₹28-35L depending on level assessment
- ESOP: Standard 4-year vesting
- Joining bonus: ₹1-2L
Didn't get far enough for a formal offer discussion.
Tips for Freshworks Fullstack
- JavaScript internals > React knowledge. They care more about closures, prototypes, event loop, and browser APIs than component patterns.
- Browser rendering pipeline — know the 4 stages (Style, Layout, Paint, Composite) and what CSS properties trigger which stage.
- DSA is stack/queue heavy — Stock span, next greater element, sliding window. Practice monotonic stack problems.
- Project discussion is serious — have specific numbers and trade-offs ready. "I improved latency by 40% by doing X" not "I worked on performance."
- CSS-only challenges are common — practice building tooltips, dropdowns, and modals without JavaScript.
- React Fiber — if you claim React expertise, know how the reconciler actually works under the hood.