Summary
I applied via referral for an SDE I role at Harness, going through a recruiter screen, hiring manager round, and two peer programming rounds which included implementing a Trie and rendering a folder structure to HTML. I was ultimately rejected.
Full Experience
Recruiter Screening
I applied via referral for SDE I role (YOE <2). The recruiter reached out after a few days. They told about the company, asked about my experience, current compensation and notice period. Then an interview was scheduled shortly.
Hiring Manager Round
They wanted to have the HM round scheduled to make sure we are on the same page. It revolved mostly around my current work experience and some behavioural nuances.
Round 1 - Peer Programming
It was a chill round with the interviewer and me introducing each other. Then we discussed a bit about my work experience. We dived into some API request optimization techniques. Then I was asked to implement Trie in TypeScript. It went pretty well.
Round 2 - Peer Programming
The inital steps were same as R1 - basic introduction, discussion around work experience and my skill sets. Then I was given a coding quesiton to render a folder structure tree originally represented in a text form, in an HTML format using list elements.
Input
|- A
|- B
|- C
|- D
Output
- A
- B
- C
- D
I was able to solve it using DOM manipulation. Although, they wanted somethign more advanced.
Verdict - Rejected
Interview Questions (2)
Implement a Trie (prefix tree) data structure in TypeScript.
Given a text representation of a folder structure tree, render it into an HTML format using list elements.
Input
|- A
|- B
|- C
|- D
Output
- A
- B
- C
- D
Summary
I successfully navigated a rigorous four-round interview process for the SDE intern role at Harness, which included in-depth discussions on core computer science, projects, and LeetCode problems like 'Range Sum of BST' and 'Merge Intervals', ultimately leading to a job offer.
Full Experience
I secured an interview opportunity with Harness after getting a referral via LinkedIn, and their HR contacted me the very next day. The entire process was quite comprehensive, spread across four distinct rounds. My first round was a brief 15-minute telephonic discussion where I introduced myself, elaborated on my background and projects, discussed my tech stack, and answered two situational questions.
The second technical round, lasting an hour, was very in-depth. It covered core computer science topics extensively, including DBMS, OOP, OS, Networking, Cloud, and Cyber Security. I was also presented with coding challenges, specifically the Range Sum of BST problem and another similar to Merge Intervals. A significant portion of this round was also dedicated to discussing my projects and justifying my technical choices.
Following this, the third technical round was taken by a senior engineer from the US. This session felt more like a detailed discussion and cross-questioning based on the technologies I listed on my resume. I had to go into an in-depth discussion and provide a demonstration of my project workings. We also touched upon some DSA questions that were derived from the context of my projects.
The final round was a combined Hiring Manager and HR interview, lasting about 40 minutes. This round included further technical questions and another deep dive into my projects. It was clear that being thorough with my resume and projects was crucial across all rounds. I also faced more situational questions here.
Overall, I found the interview process to be both challenging and incredibly thorough. It truly emphasized not just my technical proficiency in core computer science and DSA, but also my ability to articulate and demonstrate my knowledge of the projects and technologies I'd worked on. The interviewers consistently probed into the 'Why,' 'What,' and 'When' of each project, aiming to understand the purpose, my contributions, and the timelines involved. I'm delighted to share that I received an offer for the SDE intern position.
Interview Questions (2)
Summary
I recently interviewed at Harness for a Staff Software Engineer position, going through two technical rounds that primarily focused on data structures and algorithms.
Full Experience
I had two interview rounds at Harness for the Staff Software Engineer role. The first round presented a classic tree-based dynamic programming problem, and the second round involved designing a custom data structure to handle various operations on a stream of boolean values efficiently.
Interview Questions (2)
Given a binary tree representing houses, determine the maximum amount of money the robber can rob tonight without robbing adjacent houses. This means if I rob a node, I cannot rob its immediate children.
Given an input stream of boolean values, design a data structure that can support the following modules in optimal time:
setTrue(index): Sets the boolean value at the given index totrue.setFalse(index): Sets the boolean value at the given index tofalse.setAllTrue(): Sets all boolean values in the stream totrue.setAllFalse(): Sets all boolean values in the stream tofalse.getIndex(index): Returns the boolean value at the given index.