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.