Current Job
Software Engineering Manager (6 YOE) - trying to get back more into contributor roles at a top company
Interview #1
Luckily, I got a common problem that everyone seems to already know from preparing on LC, Rotting Oranges. Except, it was phrased in terms of people infecting others. Exact same problem though. That went successfully and I just did a BFS solution while keeping track of the last node at each time interval and doing some edge case handling. I noted why a BFS was likely better than a DFS here as well. Seemed to go over pretty well.
Interview #2
This interview was purely behavioral with a nice lady who'd been at the company for many years, like 15 years. It was a very open ended question about hypothetically if I was on this team that does server and database monitoring of all of the different Microsoft applications, how would I go about knowing what to do and detect issues? (like what reports, metrics, etc). And also if there was an issue (of varying magnituded) how would I deal with them from this position? Also, how do you gain respect from engineering teams that you're not necessarily a direct part of?
Interview #3
This interview was half design/behavioral and half coding.
The design and behavioral half was your standard interview questions of "describe your background experience and a large project that you own and that you're most proud of." The design portion was just describing the design of this project and digging into its details a little more.
The coding half of this interview was a slightly different take on a popular question. But, instead of a normal binary tree, it was inverted so children only have 1 pointer back to their parent instead of pointers to their children. I actually thought this was pretty straight-forward. My first solution was just to use a HashSet of seen nodes and have the pointers increment upwards back and forth until one node hits a seen node and then you know that's the LCA. Obvioulsy though that's O(N) space. When asked how to do it in O(1) space I gave 2 solutions. 1 solution was to find their heights, then even the heights, then go through pointers until they come together at the LCA. My other solution was to use the solution from Intersection of 2 linked lists where you once a pointer hits the root node, they start again from the other node. When the pointers meet, you've found the LCA.
Interview #4
This interview was just purely OOP design and concepts. The question was "design an exception notification service that reads from a database of logged exceptions and can do both email notifications and push notifications." So we essentially just went through the process of creating classes and what not. I created an exception class to house exceptions, an exception loader class to connect and read exceptions from the database, a notification service interface with the shared stubs for notification, a parent notification service class, and then 2 child classes for the different notification types. We then talk through a lot of the properties of the classes and some basic implementations of functions in the classes. We also talked about injection as it pertains to the db query.
Overall, I think this was my worst interview of the day by far. Not necessarily because my class design was bad, but mostly because I was fumbling with the exact way to setup an interface and implement the interface without an IDE (since it's not a super common workflow for me personally). I was also slightly mixing up interfaces and abstract classes in terms of the implementation just becuase at work I had recently been dealing with overriding abstract classes and misinterpretted that style as interfaces. Anyway, it wasn't terrible overall but this interviewer was probably the most codescending over all the interviews and it just didn't feel like a positive interview in the end. Hopefully this one didn't ruin my shot.
Thoughts
Overall, I actually thought that the coding aspect of this interview day was really easy in terms of the problems asked. I've done interviews with other of the 'FANG' companies recently and I'll leave more reviews, but I thought the actual coding problems here were not nearly as hard as they could have been. No idea if I'll actually get an offer though. I usually lean on the side of I'm probably a reject since things didn't go absolutely 100% perfectly (mostly on the last interview, the rest was great).
LC Experience
I'm pretty new here overall. Just started recently to do interview prep
