The loop at a glance
Five rounds, each with a different judge. Clear what each one actually scores and you clear the loop.
- Online test is a filter. 2 to 3 easy-medium DSA problems. Correctness gets you through, nothing fancy required.
- Live coding scores reasoning. They can only score what they hear, so clarify, think out loud, state complexity before and after.
- Machine-coding scores design. This is the round that decides it. Clean OOP, no god-class, a running demo beats elegant code that never compiled.
- System design (experienced only). Open-ended SaaS prompts. Put real numbers on it early and name multi-tenancy and per-tenant rate limits.
- HM round scores fit. They are asking "do I want to sit next to this person for two years." Talk about users and teammates, not just tech.
1Snapshot, read this first#
| Item | Details |
|---|---|
| Roles | SDE (SDE-1 / Associate SE through SDE-2/3), SDET, intern/new grad via campus + off-campus |
| Levels | New grad (SDE-1), 1-4 yrs (SDE-2), senior (SDE-3+) |
| Process length | Typically 2-4 weeks; 3-5 rounds |
| Rounds | Online coding test (usually), then 1-3 technical/coding + machine-coding (LLD), then system design (for experienced), then hiring manager / culture fit |
| What wins | Clean modular code, clear communication, good complexity analysis, OOP/LLD design sense, honest problem-solving |
| What fails | Brute-forcing silently, messy unstructured code, weak CS fundamentals, no clarifying questions, overclaiming on the resume |
| India comp (SDE-1) | ~₹12-22 LPA total (base + variable + joining/RSUs), numbers vary by year and level |
| India comp (SDE-2) | ~₹22-40 LPA total depending on experience and location |
| US comp | Freshworks has a US presence; new-grad SWE total comp is typically well into six figures USD, but most SDE hiring volume is India-based |
The one thing to understand about Freshworks:
- It is a true product company that happens to have a strong engineering-fundamentals bar.
- They care less about trivia and more about whether you can take a vague problem, structure a clean solution, and ship code another engineer would be happy to maintain.
- The interviewer is quietly asking one thing while you code: "would I approve this in a pull request?"
- The machine-coding/LLD round carries the most weight. Treat it as the round that makes or breaks you, because it does.
2Getting the call (the part most guides skip)#
Freshworks hires through three channels, and they are not equally open.
- Campus placements at top engineering colleges. Seasonal and gated by your college tier.
- Off-campus and referrals. The front door that actually opens for most people.
- Their own hiring events and application portal. A lottery unless your resume mirrors the posting.
Referrals are the strongest lever.
- A referral from a current Freshworks engineer routes your resume to a recruiter directly and sharply raises your shortlist odds.
- The exact move: search LinkedIn for "Freshworks" plus a team or stack keyword (Ruby, Java, SRE).
- Filter to people with 1-4 years there. They still remember job hunting and refer freely.
- Send a 3-line note, short and specific, one project, one ask.
A referral note that names a real project outperforms every "please refer me." One version that works: "Hi, I build backend services in Java and Ruby, here is a project that handles 2k req/day with Redis caching, would you refer me for an SDE role? One-page resume attached." It is concrete, it is short, and it gives the referrer something to vouch for.
Resume rules.
- One page for freshers, two max for experienced.
- Lead every bullet with impact and a number.
- Every bullet should answer three things without the reader asking: what did you build, how big was it, what changed because of you.
- If a bullet has no number, either find one or cut it.
Compare these:
- Weak: "Worked on a backend API for a college project."
- Strong: "Built a REST API in Node.js serving 2k requests/day; cut p95 latency 40% (820ms to 490ms) by adding Redis caching and DB indexing."
The second version signals ownership, measurement, and real engineering, exactly what a product company screens for.
ATS keywords. Mirror the job description. For Freshworks SDE roles that usually means:
- A core language (Java, Ruby on Rails, Python, Go, or JavaScript/Node).
- Data structures and algorithms.
- REST APIs, microservices, SQL/NoSQL (MySQL, PostgreSQL, Redis, Elasticsearch).
- Cloud (AWS), Git, CI/CD, unit testing.
A few rules on keywords:
- The product stack historically leans heavily on Ruby on Rails plus Java services, so RoR or JVM experience is a genuine plus.
- Strong fundamentals in any language will get you through.
- Do not stuff keywords you cannot defend in conversation. If "Elasticsearch" is on your resume, expect to explain an inverted index.
Getting shortlisted specifically at Freshworks:
- Watch their careers page and LinkedIn for new-grad drives and hiring challenges.
- They periodically run coding competitions and hackathons that fast-track strong performers. A top-100 finish can skip you past the resume filter straight to a human.
- A GitHub with two or three projects that actually run (README, setup steps, a live link or one-command start) does the same quieter work: it proves the resume bullets are real.
3The loop at a glance#
| Round | Length | What it tests |
|---|---|---|
| Online coding test | 60-90 min | 2-3 DSA problems (easy-medium) + sometimes MCQs on CS fundamentals |
| Technical / coding round 1 | 45-60 min | Live DSA + reasoning, complexity, edge cases, communication |
| Machine-coding / LLD round | 60-120 min | Build a small working app/feature from a spec; clean OOP design, extensibility |
| System design (experienced) | 45-60 min | Scalable architecture, trade-offs, data modeling |
| Hiring manager / culture fit | 30-45 min | Ownership, collaboration, values, past projects, motivation |
How the rounds actually work:
- Exact order and count vary by level and team.
- Freshers often skip pure system design. Experienced candidates often get it instead of (or in addition to) heavy machine-coding.
- The mental model: the online test is a filter, live coding scores your reasoning, machine-coding scores your design, and the HM round scores whether the team wants to work with you.
- Each round has a different judge, so prepare for each separately.
4The coding / technical rounds, patterns, not problems#
Freshworks DSA sits in the easy-to-medium band (LeetCode easy/medium, occasionally a harder medium).
- They are not trying to stump you with obscure competitive-programming tricks.
- They want to see you reach a correct, efficient solution and reason cleanly.
- A segment tree or heavy bitmask DP almost never shows up.
- A sliding-window or two-pointer problem you can code bug-free in ten minutes and analyze correctly shows up constantly.
Patterns they reuse:
- Arrays & strings: two pointers, sliding window, prefix sums, frequency maps (anagrams, longest substring without repeats, subarray sums).
- Hashing: pair-sum, grouping, deduplication, first-unique problems.
- Sorting & searching: binary search and its variants (search in rotated array, first/last occurrence), interval merging.
- Linked lists: reverse, detect/remove cycle, merge sorted lists, find middle.
- Stacks & queues: valid parentheses, next greater element, min-stack.
- Trees: traversals (BFS/DFS), height/diameter, LCA, level-order, BST validation.
- Recursion & backtracking: subsets, permutations, combinations.
- Dynamic programming: the common ones (climbing stairs, coin change, longest increasing/common subsequence, knapsack basics); deep DP is rare.
- Graphs: BFS/DFS, connected components, topological sort, shortest path basics.
How to practice:
- Do 100-150 well-chosen medium problems grouped by pattern, not 400 random ones.
- After each, write the time and space complexity and one alternative approach in a single line, so stating both out loud becomes a habit.
- Practice typing in a plain editor without autocomplete. Many rounds happen in a bare collaborative editor with no IntelliSense, so be fast on a shared screen.
How to win the round (this is 50% of your score):
- Clarify first. Restate the problem, ask about input size, duplicates, negatives, empty input, and expected output format. "Can the array be empty, and can values be negative?" takes five seconds and saves a wrong solution.
- Think out loud. State your brute-force idea, its complexity, then improve it. Silence reads as stuck even when you are not. They can only score what they hear.
- State complexity before and after. "Brute force is O(n squared); with a hash map I can get O(n) time, O(n) space."
- Write clean code. Good names, small functions, no dead code.
maxLenbeatsm, and a helper function beats a 40-line main. - Test it. Dry-run a normal case and an edge case (empty, single element, all-same). Catching your own bug beats the interviewer catching it, every time.
Reveal the answer
Here is a worked example of the thinking they want to hear, on "longest substring without repeating characters":
def length_of_longest_substring(s: str) -> int:
# sliding window; last seen index per char
last_seen = {}
start = 0
best = 0
for i, ch in enumerate(s):
if ch in last_seen and last_seen[ch] >= start:
start = last_seen[ch] + 1 # shrink window past the repeat
last_seen[ch] = i
best = max(best, i - start + 1)
return best
# Time O(n), space O(k) for k distinct chars. Brute force was O(n^2).
What sells it:
- The comment stating why the window shrinks.
- The final line naming both complexities and the brute force you beat.
- Say that line out loud.
5Machine-coding / LLD, the round that decides it#
For most SDE candidates, the machine-coding (low-level design) round is the differentiator.
- You get a short spec and 60-120 minutes to build a small, working program, often a CLI or in-memory system.
- It must compile, run, and handle the stated requirements with clean, extensible object-oriented design.
- There is usually no internet and no framework scaffolding. It is you, an editor, and a blank file.
- Your speed at structuring classes from scratch matters as much as your design taste.
Classic prompts in this style:
- Design a parking lot system (vehicles, slots, pricing, allocation).
- Design a splitwise / expense-sharing app (users, groups, balances, settle-up).
- Design an elevator controller or a lift system for a building.
- Design a Snake & Ladder or chess game engine.
- Design an in-memory key-value store or a rate limiter.
- Design a ticket-booking (movie/BookMyShow-style seat selection) system.
A framework for the LLD round:
- Clarify scope and nail the requirements (5-10 min). List what is in and out of scope out loud. For a parking lot: "I will handle park, unpark, and fee calculation for three vehicle types; I will skip payment gateways and the display board. Good?" That agreement protects you from building the wrong thing for an hour.
- Identify the entities and model them as classes with clear responsibilities. Think nouns (Vehicle, Slot, Ticket) and the relationships between them. One class, one reason to change.
- Apply SOLID and design patterns where they earn their keep: Strategy for pricing, Factory for object creation, Observer for notifications, Singleton sparingly. A clean design beats a clever one. If you reach for a pattern, say in one sentence why, so it reads as a choice, not decoration.
- Code iteratively. Get a thin end-to-end slice working first (park one car, compute one fee), then add features. A running demo at minute 70 is worth more than perfect classes that never compiled.
- Write it to be tested and extended. Separate business logic from I/O so the core does not print and parse. Mention how you would add the out-of-scope features later (a new vehicle type should be one new class, not a change to five).
- Run it. Demonstrate at least one happy path and one edge case (lot full, invalid ticket).
What graders look for:
- Separation of concerns, no god-classes, meaningful naming.
- Handling of invalid input.
- Whether a new requirement could be added without rewriting everything.
One 300-line class that does everything. It is the single most common reason strong coders still get rejected at Freshworks. If you feel a class growing past a screen, split it. A working-but-tangled god-class fails the LLD bar even when it technically runs.
Practice drill: pick two prompts above and build each in 90 minutes, end to end, from a blank file, with a timer running.
System design (experienced candidates). Expect open-ended prompts like "design a notification service," "design a URL shortener," or "design the backend for a helpdesk ticketing product." The flow:
- Requirements and scale estimates, then API design, then high-level components, then data model, then a deep-dive on one bottleneck (caching, sharding, queues, consistency trade-offs).
- Put real numbers on it early ("say 10M tickets, 500 writes/sec peak") so your component choices have a reason.
- Tie it to the SaaS concerns Freshworks lives with: multi-tenancy (how do you isolate one customer's data from another's), rate limiting (per-tenant quotas so one noisy account cannot starve the rest), and high-volume event processing (webhooks, async queues for notifications).
CS fundamentals (freshers especially). These show up as quick questions inside technical rounds, often as a follow-up to your code.
- OOP: encapsulation, inheritance, polymorphism, abstraction, SOLID.
- DBMS: normalization, indexing, transactions, ACID, joins, basic query optimization.
- OS: processes vs threads, deadlock, scheduling, concurrency.
- CN: TCP vs UDP, HTTP, DNS, what happens when you type a URL.
The classic follow-up: "you used a hash map, how would you persist this to a table, and what index would you add?" Have a crisp two-sentence answer ready for each, because fumbling "what does an index actually do" undoes a good coding performance fast.
6Behavioral & culture fit#
Freshworks has a distinct culture built around being customer-obsessed, taking ownership, and staying humble and scrappy.
- Their values emphasize putting the customer first, moving with speed and craft, acting with integrity, and winning as a team.
- The culture-fit round probes whether you own outcomes, collaborate well, and care about the end user, not just the code.
- The tell they listen for: do you describe past work in terms of what it did for users and teammates, or only in terms of the tech you touched?
Write 5-6 STAR stories in advance. Cover:
- A hard technical problem you solved.
- A time you took ownership beyond your role.
- A conflict with a teammate.
- A failure and what you learned.
- A time you delivered under pressure.
Keep each result quantified, rehearse out loud, and keep each under two minutes. A rambling five-minute story loses the room.
One full worked STAR example:
- Situation: Our team's internal dashboard was timing out for large customers; some pages took 11+ seconds and users were abandoning them.
- Task: As the owner of that module, I needed to bring load times under 2 seconds without a backend rewrite we had no time for.
- Action: I profiled the requests, found N+1 database queries and an unindexed join. I added eager loading, created a composite index, and introduced a short-lived Redis cache for the heaviest aggregate. I wrote tests to lock the behavior and rolled it out behind a flag.
- Result: p95 load time dropped from 11s to 1.4s (about 87% faster), dashboard abandonment fell noticeably, and the fix shipped in four days with zero regressions. I documented the pattern so the team reused it elsewhere.
What makes it land:
- The number in the result.
- The shape: one owner, a concrete diagnosis, a few specific actions, a measured outcome.
- The generosity at the end (you documented it for others). That last beat is the "win as a team" signal they are listening for.
7Your prep plan#
4-week plan
- Week 1: Refresh DSA fundamentals (arrays, strings, hashing, linked lists, stacks/queues). 4-5 problems/day by pattern. Revise OOP + DBMS.
- Week 2: Trees, graphs, recursion/backtracking, intro DP. Keep writing complexity for each. Revise OS + CN.
- Week 3: Machine-coding/LLD. Build parking lot, splitwise, and one game engine end-to-end in a timer. Learn SOLID + core patterns by applying them, not by reading about them.
- Week 4: Mock interviews (DSA + LLD), timed tests, write and rehearse 5-6 STAR stories, polish resume bullets.
2-week plan
- Days 1-5: Pattern-based DSA mediums (2 patterns/day), re-derive complexities out loud.
- Days 6-9: Two full LLD builds + SOLID/patterns review + CS fundamentals.
- Days 10-12: Mock DSA and LLD rounds; fix weak spots.
- Days 13-14: STAR stories, resume, company research, rest before the loop.
2-day crash plan
- Day 1: Re-solve 15 classic mediums across arrays, hashing, trees, graphs, DP. Re-read SOLID and one LLD example (parking lot) and actually type it. Skim OOP/DBMS notes.
- Day 2: One timed LLD build (90 min) from a blank file. Write 4 STAR stories. Reread the job description and match keywords. Sleep well, because a tired brain fails the clarify-first step first.
8Why people get rejected at Freshworks#
- Silent brute-forcing. Coding correctly but never explaining the approach or complexity. Interviewers cannot score reasoning they cannot hear.
- Messy machine-coding. A working-but-tangled god-class with no separation of concerns fails the LLD bar even if it technically runs. The most common single reason strong coders still get rejected here.
- Weak fundamentals. Fumbling basic DBMS (indexing, ACID) or OOP questions inside a technical round, usually as a follow-up to otherwise-decent code.
- No clarifying questions. Diving into code on a vague spec, building the wrong thing, then running out of time to fix it.
- Overclaimed resume. Listing a tech you cannot discuss in depth. Interviewers probe resume claims and notice gaps fast. If Kafka is on there, expect "why Kafka and not a plain queue."
- No customer sense. Treating problems as pure puzzles with zero thought for the user or maintainability, a red flag at a product company whose whole identity is the customer.
9The offer, comp & negotiation#
A Freshworks SDE offer in India typically combines base salary + a variable/performance component + a joining bonus and/or RSUs.
- Freshworks is NASDAQ-listed, so the equity is real, dollar-denominated stock, not notional points.
- Ranges move year to year, but new-grad SDE-1 total comp commonly lands around ₹12-22 LPA.
- SDE-2 commonly lands around ₹22-40 LPA depending on experience and location.
Negotiation tips for Freshworks:
- Use competing offers factually. A written competing offer is the strongest lever. Share the number calmly and ask them to match or improve. "I have an offer at X total; I would prefer Freshworks, can you close the gap?" does more than any speech about your worth.
- Negotiate the whole package, not just base. If base is capped by level bands, push on joining bonus, RSU grant, or a faster level/title. These line items often have more room than the fixed band, and because the RSUs are listed-company stock, the grant size is a real number worth arguing over.
- Anchor on data and your value. Reference market ranges for your level and city, and tie your ask to specific skills (RoR/Java depth, system design) they were excited about. Be collaborative, not combative. The recruiter is your ally in making the case internally, so give them ammunition, not an ultimatum.
The band is fixed; the joining bonus, the RSU grant, and the level are not. Argue where there is room.
"Does Freshworks ask hard competitive-programming problems?"
"Which language should I use?"
"How important is the machine-coding round?"
"Do freshers get a system design round?"
"How long does the process take?"
What you can now explain in the room
- What each of the five rounds actually scores, and why each needs separate prep.
- Why the machine-coding/LLD round carries the most weight, and the six-step framework to pass it.
- How to narrate a DSA solution so your reasoning scores, not just your code.
- Which DSA patterns Freshworks reuses, and why deep DP and segment trees are a waste of prep.
- How to tie a system design answer to Freshworks SaaS concerns: multi-tenancy, per-tenant rate limits, event processing.
- How to read the India comp bands and where the real negotiation room sits.
Want this turned into a personalized, dated study plan that fits your timeline and target start date? Tell me your interview date and I will map every topic to a day.
Get a prep plan built around your Freshworks interview
Tell us the role and your interview date. We will send back a dated, day by day plan. Free.