🚀 My UiPath Frontend Interview Experience | 45 LPA | SDE-2 UI
Overview
This case study outlines a candidate's interview journey for a Senior Frontend Engineer (SDE-2 UI) role at UiPath. The process involved assessments of JavaScript proficiency, problem-solving abilities, and system design knowledge. The candidate shares specific questions encountered, code solutions presented, and reflections on the interview structure.
Interview Rounds
Round 1: DSA (Coding Round)
This round evaluated the candidate's data structures and algorithms skills, with a focus on JavaScript fundamentals.
Question 1: Maximum Robbery Amount
The candidate was asked to determine the maximum amount a thief could steal from houses along a street, with the constraint that no two adjacent houses could be robbed.
function getMaximumRobberyAmount(listOfHouses = []) {
let totalOddSum = 0;
let totalEvenSum = 0;
for(let i = 0; i < listOfHouses.length; i++) {
let currentHouseAmount = listOfHouses[i];
if(i % 2 == 0) {
totalEvenSum += currentHouseAmount
} else {
totalOddSum += currentHouseAmount
}
}
return Math.max(totalOddSum, totalEvenSum);
}
console.log(getMaximumRobberyAmount([1,2,3,1])); // Output: 4
console.log(getMaximumRobberyAmount([2,7,9,3,1])); // Output: 12
Question 2: Reverse Words in a String
The challenge involved reversing the order of words in a given sentence while maintaining the original position of each word.
function reverseWords(sentence) {
return (
sentence.split(' ')
.map(word => word.split('')
.reverse().join('')).join(' ')
)
}
console.log(reverseWords("Welcome to UiPath"));
// Output: "emocleW ot htaPiU"
Round 2: Machine Coding Challenge
In this round, the candidate was tasked with building a Notes Application using Vanilla JavaScript. The application should allow users to add, edit, and delete notes.
Additional questions included:
- Why is JavaScript faster than other languages?
- Explain Hoisting in JavaScript.
- What is the Event Loop in JavaScript?
Round 3: Low-Level Design (LLD)
The candidate was presented with the following problem: Given an array of numbers, return a frequency count of each number in a structured format.
let SAMPLE_DATA = [
[1, 2, 3, 2],
[2, 5, 1, 7, 1],
[3, 4, 2, 5, 2, 8]
];
function getNumberFrequency(inputData = []) {
let frequency = {};
let finalList = inputData.flat();
finalList.forEach(num => {
frequency[num] = (frequency[num] || 0) + 1;
});
return frequency;
}
console.log(getNumberFrequency(SAMPLE_DATA));
Original Source
This experience was originally published on medium. Support the author by visiting the original post.
Read on medium