I applied for a Software Engineer position at ServiceNow through LinkedIn job postings and the recruiter contacted me within approximately three weeks. The interview process was incremental, meaning I would only move to the next round if I cleared the current one. I had three rounds of interviews.
Round 1 (DSA & Technical) The interviewer asked one DSA question and a Java question. They were easy. a. DSA - Swap numbers in a Linked List b. Save Employee data into a data structure in order of salary (solved using a comparator) c. Simple SQL question to sum the salaries of employees grouped by department and ordered by salary in descending order. There was some discussion on projects and Java concepts like exception handling.
Round 2 (DSA & Problem Solving) This round focused more on problem-solving. The interviewer gave me a DSA question and a problem-solving question. a. DSA - Given an array of integers, find the largest possible number formed by rearranging the integers in the array (easy-medium) b. Problem (not coding) - Given three boxes with labels on top. One container has apples, another has oranges, and the other has apples and oranges. All the labels are wrong. We can pick one box at a time and check the contents of the box. What is the minimum number of picks required to determine the contents in all boxes and why? The interviewer was more interested in the approach and how I derived the answer.
Round 3 (DSA & LLD & Managerial) The interviewer started with an LLD question similar to MRU. The discussion focused on what data structures to use, why, and the complexities (time and space). Later, he asked a DSA question. a. DSA - Given an array of integers in which each element has an integer with a difference of 1 as an adjacent element. Within this, we have to find an element with the minimum number of steps. I was able to solve the DSA, but I thought the interviewer was not satisfied with my answer for the LLD. However, I was luckily selected.