Harness Senior Frontend Engineer Interview Experience — All 8 Rounds, Questions & a 3.5-Year Comeback | by Yashpreet Bathla | May, 2026 | Medium
Community Member
June 29, 2026
Medium
Overview
A senior frontend engineer documented a successful 8-round interview process at Harness, 3.5 years after an initial rejection from the same company. The candidate had previously spent 3 years at Tessell and used a prior rejection from Headout as a preparation roadmap. The process culminated in an offer for a Senior Software Engineer (Frontend) position.
Round 7: Head of Engineering — India (culture fit)
Round 8: Director of Engineering (HLD + culture)
Round-by-Round Breakdown
Pre-screen — Recruiter Call
Easy
Standard background and motivation discussion. The candidate came prepared with a specific, non-generic answer to "why Harness." The recruiting team was noted as especially transparent about timelines and expectations throughout the process.
Tip: Have a genuine, researched answer for why you want to join the specific company. Avoid LinkedIn-bio-level phrases.
Round 1 — Engineering Manager
Easy
A conversational round focused on the candidate's background:
Most impactful contributions in previous roles
Strategies used when stuck on a problem
What the candidate was looking for in a new company and team
No trick questions. The EM was described as curious rather than evaluative.
What the interviewer focused on: How the candidate thinks, not what they've memorised.
Tip: This round sets the tone. Think out loud, be honest about challenges, and treat it like a real conversation.
Round 2 — DSA + JavaScript
Medium
Original Source
This experience was originally published on Medium. Support the author by visiting the original post.
Pattern matching — Given pattern "abcd" and string "axxxbbxxxccxd", verify characters appear in order using a hashmap and positional validation.
Async file system traversal — Recursively list files matching a pattern across nested directories using async/await and Promise.all.
A third problem in a similar vein combining recursion and async patterns.
What the interviewer focused on: Clean code, time/space complexity reasoning, and handling async edge cases.
Tip: Practice DSA with JavaScript specifically — not just pseudocode. The async patterns (Promise.all, recursive async) are real interview territory.
Round 3 — Frontend Machine Coding (Vanilla JS)
Medium
Focused on Vanilla JavaScript, plain CSS, and HTML — no React, no Tailwind, no NPM packages.
Problems involved:
Infinite scroll / pagination — implemented using both Intersection Observer API and manual scroll position + screen height calculation.
Virtualized list — rendering 10,000+ items efficiently.
The interviewer explored trade-offs between both infinite scroll approaches: when each performs better, DOM node limits, scroll position stability, and edge cases like fast scrolling and window resizes.
What the interviewer focused on: Not just "can you code it" — but "do you understand why you're coding it this way."
Tip: Practice building UI primitives (infinite scroll, modals, dropdowns) in vanilla JS before interviews. Frameworks have abstracted the DOM — know what's underneath.
Round 4 — Advanced JavaScript
Medium
Extended JavaScript fundamentals — async patterns, closures, and recursion under more complex constraints. Followed on from Round 2 in depth.
Tip: Understand the event loop, microtask queue, and how Promise.all handles concurrency. These come up repeatedly at this level.
Round 5 — React + Project Deep Dive + DSA
Hard
A three-in-one round covering:
React deep dive — rendering patterns, state management, when to lift state vs. collocate, re-render optimisation.
Project deep dive — technical depth questions about real projects the candidate had built.
DSA — the classic circular gas station problem (find the valid starting index for a circular route).
What the interviewer focused on: Whether React knowledge goes beyond usage to architectural decision-making.
Tip: Be ready to defend your project's technical decisions, not just describe the features.
Round 6 — In-Person Machine Coding (F2F)
Hard
Conducted in-office with two interviewers. The candidate's screen was projected on a 65-inch TV — every keystroke visible.
Task: Build a GitHub Pull Request page in React — search, listing, status pills, comments.
Before coding, the candidate was required to discuss:
Data structure design
Fetch strategy and API design
Component breakdown and common components
State ownership
Whiteboard question: Given an HTML node, delete all its siblings but not itself. The candidate walked through DFS vs. BFS approaches, edge cases (no parent, no siblings), and dry-ran pseudo code on the whiteboard.
What the interviewer focused on: Thinking before coding, trade-off decisions under time pressure, and whiteboard communication.
Tip: In-person coding is fundamentally different from remote. Practise whiteboarding with another person present. You cannot backspace — plan before you write.
Round 7 — Head of Engineering (India)
Easy
A relaxed culture conversation:
Career journey at Tessell
Learnings from previous roles
What the candidate valued in a workplace and team
What they'd repeat and what they'd avoid
Tip: Don't underestimate culture rounds. These determine team fit and often carry significant weight in final decisions.
Round 8 — Director of Engineering
Hard
A combined HLD + culture round. The Director opened with:
"The GitHub PR page you built earlier today — if you were to build it again right now, would you change anything?"
The discussion covered: data layer choices, component boundaries, caching strategies, and what hindsight would change. The Director challenged the candidate's reasoning and pushed for refinements.
The second half was a genuine conversation — the Director shared his own career path from frontend engineer to Director, discussed team structure, product vision, and was fully transparent about what the role would entail.
What the interviewer focused on: Whether the candidate can defend architectural decisions, refine thinking under pressure, and engage as a future peer — not just a candidate.
Tip: After every take-home or live coding task, mentally prepare a "what I'd change with hindsight" answer. It will come up.
System Design: Component-level design, caching, data layer decisions, API design
DSA: Pattern matching with hashmaps, async recursive traversal, circular gas station problem, BFS/DFS on DOM nodes
Behavioral: Career narrative, impact articulation, handling rejection, working under ambiguity
Preparation Tips
Prepare without frameworks. Practice infinite scroll, virtualized lists, modals in plain JS. It forces true DOM understanding that frameworks mask.
Know your async patterns cold. Promise.all, race conditions, sequential vs. parallel — these appeared across multiple rounds.
Do at least one in-person mock interview. Remote and in-person feel completely different. Simulating whiteboarding with someone watching changes how you think.
Prepare a genuine "why this company" answer. Vague answers are immediately obvious. Research the product, the team, and the engineering blog.
Keep a "what I'd change" answer ready for every project. Retrospective thinking on your own work is a senior-level signal.
Verdict
The candidate received an offer after 8 rounds over several weeks. Difficulty: 5/5 — the most comprehensive loop described in the author's interview series. The process was noted as exceptionally transparent, human, and well-structured. The candidate strongly recommends Harness for engineers who want a rigorous but respectful hiring process. The 3.5-year gap between the initial rejection and the final offer underscores that rejection from a target company is a redirection, not a permanent verdict.