I interviewed for a Staff Software Engineer position at ServiceNow. I have 7 years of experience in product-based companies. The interview process consisted of three rounds.
The first round was a manager round. We discussed my current project, challenges I faced, why I was interested in ServiceNow, my technical stack, and the high-level design of the most challenging service I worked on. The round went well, with a focus on how I could improve the design of the system if I had the opportunity to do it again.
The second round was a low-level design round. I was asked to implement a logger service similar to log4j using object-oriented programming and design patterns. There was a confusing requirement regarding the ability to configure the log location at the class level. The interviewer insisted on using patterns for specific requirements and hinted at using the builder pattern for some logic, which I didn't see as necessary. I coded the logic and patterns but missed a few details.
The third round involved coding and high-level design. The coding question was to find the median of two sorted arrays. I tried to explain the O(log(n)) solution for nearly 30 minutes, but the interviewer wasn't convinced that anything less than O(n) was possible. He didn't even let me code the proposed solution and asked for an O(n) solution, which I hesitantly provided and coded in 10 minutes. The high-level design task was to design housing.com, for which we had only 10 minutes. I completed the necessary APIs and discussed the challenges we could encounter.
The coding problem was a standard and well-known one, but the interviewer wasn't convinced of the O(log(n)) solution. I believe this is where I lost the opportunity.