I interviewed for a Senior Software Engineer position at ServiceNow. The interview process consisted of four rounds.
The first round was a problem-solving round. I was asked to solve two coding problems:
Next Greater Element II (Leetcode)
Given a string with only open and closed brackets, evaluate it using the following assumptions:
The interviewer was more focused on understanding my problem-solving approach and rationale for choosing specific algorithms. I was not required to write fully functional code, but rather a draft code. I was also asked a behavioral question about a time I had to make an anti-engineering decision and the reasons behind it.
The second round was a miscellaneous round with a Staff Engineer. This round covered a wide range of topics. The interviewer emphasized understanding my thought process during problem-solving rather than the solution itself. I was asked to solve the following problem:
Given an array containing elements that repeat twice and are placed next to each other, except for a single element that is not repeated. Find that element. For example, [1,1,2,2,4,4,5,6,6] would have an answer of 5.
We discussed different algorithms and I came up with a better algorithm with O(log N) time complexity and O(1) space. The interviewer was satisfied with the solution. The round also included questions on fault tolerance, transactions, distributed systems, communication between payment and order services, database design, LLD of a cab booking system, REST API best practices, and more.
The third round was another miscellaneous round with an Engineering Manager. This round focused on my previous work experience, with a deep dive into one of my previous projects. The interviewer also asked a few questions on object-oriented programming.
The final round was a technical and behavioral round with the hiring manager. This round included more questions about my previous work experience, a discussion about the company and my expectations for the role, and a data modeling exercise for the Arogya Setu app.
All rounds went well and I received positive feedback. However, I ultimately received a generic rejection email. I have noticed a similar pattern with other candidates, where rejections are communicated in a way that suggests the rejection happened during resume screening. This practice is inefficient and can be detrimental to both the company and the candidates. It wastes time and resources and can damage the company's reputation.