LinkedIn (Staff Software Engineer Applications) ( Reject )
Summary
I completed a full-loop interview process for a Staff Software Engineer position at LinkedIn, which resulted in a rejection. Although I performed well in the design, craftsmanship, and leadership rounds, my performance in the coding challenges, especially concerning specific algorithmic solutions and explanations, was a critical factor in the outcome.
Full Experience
Qualifier Coding Round
This round focused on designing a data structure with O(1) time complexity for retrieves, updates, deletes, and retrieving keys with maximum and minimum frequency.
Coding Round 1
I tackled a variant of the Rat in a Maze problem, emphasizing pure OOP principles like readability, maintainability, testability, and time complexity. I felt it went well, though I initially missed one edge case, which I later corrected.
Design Round
The problem involved designing a system to fetch top articles shared by users within various time windows (15 min, 60 min, 24 hours). The interviewer later extended this to more granular and dynamic time intervals. I discussed solutions leveraging Apache Flink for stream processing, including handling windowing, aggregation, fault tolerance, and out-of-order events. Despite my efforts, the feedback indicated my dynamic window solution wasn't accurate enough.
Craftsmanship Round
This round was a discussion about project metrics, CI/CD processes, Reactive Systems, and other technical topics. I believe I performed well here.
Leadership Round
The focus was on leadership and in-depth discussions of projects I had led. I felt confident in my performance in this round.
Coding Round 2
In the second coding round, I was given two problems. The first was to check if a number is a power of 2. The second, more challenging, was to find the node least number of edges away from any other node in a binary tree. For the second problem, my initial DFS-based solution wasn't what the interviewer expected; they preferred BFS. I fumbled a bit trying to explain my approach, as they seemed to be looking for a more perfect and optimized solution.
Ultimately, I was rejected. My struggles in the coding rounds, particularly with the specific algorithmic approaches and explanations, were highlighted as the primary reason, reinforcing the expectation for flawless solutions.
Interview Questions (5)
Design a data structure that retrieves and updates and deletes data based on keys, and retrieves the keys with the maximum and minimum frequency in O(1) time.
The task required defining classes and methods and implementing them using pure OOP principles. Focus areas: Readability, Maintainability, Testability, Time Complexity.
Design a system to fetch the top articles shared by users in the last 15 minutes, 60 minutes, and 24 hours. The interviewer adjusted the problem to include more fine-grained time intervals (e.g., 1 min, 2 min, 3 min) and wanted a solution flexible for changing time windows at any time.
Check if a number is a power of 2.
Find the node that is the least number of edges away from any other node in a binary tree.