The complete process involved an online phone screen, and an onsite interview (no travel)
I was recommended to a recruiter in the Washington DC metro area, and the office was down the street from where I lived. I talked to the recruiter over the phone, and scheduled a phone screen with a Principle Software Engineer.
Phone screen:
Since it was over the phone, it was a little hard hearing and understanding what the other person was saying. But they asked some basic questions at first like what do I do, and they were looking for how well I can explain technical stuff.- I explained over the phone a cool project I was working on at work. I’ve worked on a lot of projects, but I picked the most interesting one. The interviewer didn’t care if it wasn’t my latest project because the one I was talking about was actually a lot more interesting.
- Then the interviewer asked me a technical question: Given requests at random times, return the requests from the last 1 minute. It was a little more detailed than that, and I wasn’t able to finish the question, but somehow I was still able to be called onto the on-site interview.
On-site interview:
I walked in and there were about 12 other people being interviewed as well. They put us in a separate conference room and then we had 4 rounds of interviews after that. Each 45 minutes, and then one 15 minute break. Total 4 hours.
First round:
Asked basic questions.- Then asked a question where given brackets, parenthesis, and/or curly braces, see if it is valid. Like {]}{})(, {}()[()]. The first one would be false, the second one would be true. The interviewer really looked for when I would get stuck, and tried to see how I would react when I didn’t know something. He liked the part when I got stuck, and when I was able to find my way back to the solution.
GeeksforGeeks Link
Second round:
This round the guy was a bit unconventional. I don’t think he asked me a single basic question to start the conversation. He walked in, asked me to code some problems, and then left. Barely any words at all besides technical question clarifications.- But the questions he asked was if A=1, B=2, C=3, …, then write a function to return the number corresponding to the string. Z would be 26, then it would be AA, which would be 27. What would BB be, or ABC, or ABB, etc.
Third round:
- This was the design question. The question was design tinyURL.
- Also was asked remove duplicates from a linked list.
Fourth round:
This was the toughest. I think he was the main engineer to impress.- He asked given a sentence “how are you”, reverse the words and return “you are how”. I could not use splitBy(), and I had to also not use any data structures. I was able to solve it in optimal time, but I ended up needing a data structure. But there was a way to not use data structures actually.
Solution :GeeksforGeeks Link
After that I just went home. I felt really good about the interview, but I didn’t hear anything for a while. Then they called me late next week and told me I had multiple teams interested in hiring me for multiple positions. Then I had to pick which one I wanted. I ended up picking Azure AD as a Software Engineer. This was probably the happiest day of my life 🙂