Recent from Linkedin:
Linkedin Phone Screen | SSE | Bengaluru
LinkedIn Phone Screen Senior Software Engineer - Systems Infrastructure
Linkedin - SSE System and Infra Role- First Screening Round experience - waiting for the next update
LinkedIn | SSE | Systems Infra | Bengaluru | Offer
Summary
I successfully interviewed for a Staff Software Engineer position in Systems Infra at LinkedIn, Bengaluru, and received an offer after completing seven rounds of interviews, including multiple coding challenges, system design, and a hiring manager discussion.
Full Experience
My interview journey at LinkedIn for the Staff Software Engineer role in Systems Infra, Bengaluru, involved a total of seven rounds, including two re-do rounds for coding and system design. My background is B-Tech CSE from a Tier-1 college, with 5 years of experience.
Round 1: Phone Screening
This round started with a 20-minute discussion about my past projects and resume. Following that, I was given a Data Structures & Algorithms problem. We also touched upon basics of Java, OS, and Computer Networks. I received strong hire feedback as I completed the problem optimally and answered all CS basics.
Round 2: Coding-1
I faced two coding problems in this round. I was able to solve both problems, but my approach for the second problem differed from the standard LeetCode solution, and the panel was not entirely satisfied. This resulted in a weak hire feedback.
Round 3: Coding-2
This round also had two coding problems. I was able to complete both problems with 15 minutes remaining and received strong hire feedback.
Round 4: High-Level Design (HLD)
The problem presented was about designing a system for "Top n articles shared". It was a highly interactive discussion where I explained concepts like Count-Min Sketch, using maps and heaps, and how MapReduce and Spark jobs could be utilized. I received strong hire feedback.
Round 5: Hiring Manager (HM)
This round involved a detailed discussion on one of my past projects, where significant technical depth, product, and business impact were explored. I also answered standard behavioral questions, including "Why LinkedIn?". The feedback was strong hire.
After a week, HR informed me that I needed to redo a coding round and an HLD round onsite. HR explained that the HLD redo was requested by the HM, who wanted a more senior panel from the system's infra team to conduct it.
Round 6: Coding (Redo)
In this redo coding round, I was given two problems. I successfully completed both within 10 minutes to spare, earning strong hire feedback again.
Round 7: High-Level Design (Redo)
The second HLD redo round focused on designing a key-value storage system with get(), put(), and delete() operations. This was a deep infra-level discussion, covering B-trees, LSM trees, SSD writes, internal fragmentations, write amplification in disks, compactions in LSM, layered Bloom filters, and database recovery using WAL. I received strong hire feedback.
A week later, HR contacted me with the good news of an offer!
Interview Questions (8)
Given the root of a binary tree, turn it upside down and return the new root. You can only flip a binary tree if it is a 'left-only' tree where every node either has no children or only a left child. In the upside down tree, the original right siblings of a node become the new left children, and the original parents become the new right children.
Design a system to efficiently find the top N most shared articles.
Suppose you are at a party with n people labeled from 0 to n - 1 and among them, there may exist one celebrity. A celebrity is someone who is known by everybody else but does not know anybody else. You are given a helper function knows(a, b) which returns true if a knows b, and false otherwise. You need to find the celebrity.
Design a key-value storage system supporting get(), put(), and delete() operations.
Preparation Tips
My preparation largely leveraged the LeetCode community, which was instrumental in helping me get ready for the interviews. I hope sharing my experience can now give back to the community.