AI Engineer | LinkedIn | Virtual Onsite | Rejected
AI Engineer (IC2 level)Linkedin | Software Engineer, Machine Learning Interview Experience
software engineerLinkedIn Interview Experience
SWELinkedin | SSE | Oct 2025 | Rejected
SDE IILinkedin - Senior Software Engineer (System and Infra) - USA - YEO - 5.5 years - Pending review
Senior Software Engineer (System and Infra)39 more experiences below
Summary
I had a mixed interview experience with LinkedIn. While I passed the initial rounds and received positive feedback on my ML theory and product vision, I was ultimately rejected without detailed feedback. The system design round likely played a key role in my rejection.
Full Experience
My interview process with LinkedIn started with a phone screen that covered both ML theory and light coding. I explained the attention mechanism and implemented an infinite data stream mean calculator using an incremental formula to avoid overflow.
For the AI coding round, I used an AI-assisted IDE to implement an LRU Cache data structure. I generated a Doubly Linked List with a HashMap, but the interviewer kept adding features, leading to over-engineering. I wasn't sure what was being evaluated in this round.
In the data structures and algorithms round, I discussed previous projects and validated a Binary Search Tree. I provided two solutions: an in-order traversal for O(N) time and a recursive approach for space optimization.
The ML fundamentals round focused on retrieval/ranking theory, imbalanced data, and model explainability. I demonstrated strong theoretical understanding, which the interviewer praised.
The system design round was challenging. I designed a Two-Tower Architecture for a Second Pass Ranker, but I made a critical mistake by using it for ranking instead of retrieval. I also incorrectly used softmax for a multi-label scenario, which should have been multi-label sigmoid heads.
Finally, the hiring manager round focused on product vision, behavioral questions, and my resume. While they complimented my diverse experience, they felt I needed to focus more on product-facing teams.
Interview Questions (4)
Calculate the mean of an infinite data stream.
Implement an LRU Cache data structure using AI tools and refine it. Later, add a validation method for keys.
Validate a Binary Search Tree (BST).
Design a "Second Pass Ranker" for the Feed serving billions of users. Constraint: No pre-existing embeddings.
Summary
I went through a 5-round interview process for a Software Engineer role at LinkedIn. The experience included a mix of coding challenges, system design, and AI fundamentals. I received three offers in the end, including one from LinkedIn.
Full Experience
As someone with 3+ years of experience as a DS/MLE in a product-based company and a B.Tech from IIT (non-circuital), I went through a multi-round interview process for a Software Engineer role at LinkedIn. The process started with a screening round that included a DSA question, a probability question, ML fundamentals, and questions on Transformers. The full loop consisted of five rounds: an AI coding round with two problems, a DSA round with two problems, an AI fundamentals/data mining round, an AI system design round, and a hiring manager round with behavioral questions.
Interview Questions (6)
Preparation Tips
The candidate prepared by focusing on DSA, ML fundamentals, and system design concepts. They practiced coding problems, reviewed transformer models and ML techniques, and worked on system design projects to prepare for the interview rounds.
Summary
I interviewed for an SDE2 role at LinkedIn in India and experienced a positive interview process covering coding, system design, and behavioral rounds. With 4 years of experience, I am awaiting a final offer, having received positive feedback from all stages.
Full Experience
I recently went through the interview process for an SDE2 role at LinkedIn, India (Apps). I applied about a month ago, and a recruiter reached out. The entire process after the initial screening (TPS) was very swift, with the recruiter providing feedback within a day or two after each round. I have 4 years of experience and previously worked as an SDE2 at a top product company, unfortunately being laid off in August. I noted that they were not offering SSE for candidates with under 5 years of experience. Although I haven't received a formal offer yet, the feedback from all my rounds has been positive. I initially applied via LinkedIn's easy apply feature.
Round 1:
This round focused on Data Structures & Algorithms, where I was asked two coding problems.
Round 2:
Another coding round with two problems, one involving heaps and another focusing on Tries.
Round 3: System Design
This round was dedicated to System Design concepts, specifically around monitoring.
Round 4: Technical Communication
This round involved discussing one of my projects in depth, followed by standard technical communication questions.
Host Manager:
The final round with the Host Manager included a deep dive into one of my projects, several behavioral questions, and a High-Level Design discussion for a malicious/spam URL detection system, including how I would execute the project end-to-end.
Interview Questions (6)
This question likely refers to the LeetCode problem where you have 'n' bulbs, initially off. You turn on all bulbs. Then, you turn off every second bulb. Then, you change the state of every third bulb, and so on. For the i-th round, you change the state of every i-th bulb. The goal is to find how many bulbs are on after 'n' rounds.
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-child only' binary tree or a 'right-child only' binary tree, or a 'balanced' binary tree with at most one child on each side. The 'upside down' property suggests that the original left children become the new root's right children, and the original root becomes the new right child's left child.
Given two sorted arrays, find the K smallest products that can be formed by taking one element from each array.
This question involved merging two Tries. I had to describe the algorithm and data structures involved in efficiently combining the information from two separate Trie data structures into a single one, ensuring all words from both original Tries are present in the merged Trie.
I was asked to design a system for collecting, storing, and visualizing metrics, as well as setting up monitoring and alerting. The discussion involved topics such as data ingestion, storage solutions (e.g., time-series databases), aggregation, dashboarding, and alert mechanisms.
I had to provide a High-Level Design for a system capable of detecting malicious or spam URLs. The discussion also covered the end-to-end execution plan for such a project, from initial design and development to deployment and ongoing maintenance, including aspects like data sources, detection algorithms, and integration points.
Summary
I interviewed for a Senior Software Engineer (SSE) role at Linkedin in October 2025. The process involved multiple rounds, and despite strong performance in some areas, I was ultimately rejected due to my answers lacking the expected depth for an SSE level.
Full Experience
I interviewed for a Senior Software Engineer (SSE) role at Linkedin in October 2025. The process involved multiple rounds, and despite strong performance in some areas, I was ultimately rejected.
Round 1 - Technical Problem Solving (TPS)
This round involved a mix of technical discussions and a DSA question. I was asked to:
- Discuss any issues I've found in systems during my work, such as performance bottlenecks or poor code quality.
- Share my mentoring experience.
- Explain software design patterns and their importance.
- Describe the CAP theorem.
- Differentiate between concurrency and parallelism.
- Determine the output of a given multithreading code snippet.
- Solve the "Diameter of a Binary Tree" problem.
- Design an API capable of handling 10,000 queries per second (QPS) for write traffic.
I received a "Hire" verdict for this round.
Onsite Rounds
Round 2 - Data Structures & Algorithms (DSA)
In this DSA round, I faced three problems:
- An adaptation of Insert Delete GetRandom O(1), specifically focusing on implementing a
removeRandommethod. - A follow-up based on Insert Delete GetRandom O(1) - Duplicates Allowed.
- A problem conceptually similar to Number of Islands, but presented within a real-world story context.
I received a "Strong Hire" verdict for this round.
Round 3 - Data Structures & Algorithms (DSA)
This DSA round had two problems:
- Closest Binary Search Tree Value II: I could only develop an O(N) solution, while the interviewer was looking for an O(logN) approach using predecessors and successors.
- Intersection of Two Linked Lists.
The verdict for this round was "No/Lean Hire".
Round 4 - High-Level Design (HLD)
I was asked to design a notification system. This involved considering aspects like rate limiting for different notification categories (e.g., 5 marketing notifications per day per user) and handling user preferences. Additionally, there was a discussion on how I measure project success, including performance testing and metrics like p90.
The verdict for this round was "No/Lean Hire".
Round 5 - Hiring Manager (HM) & Behavioral
This round covered a mix of behavioral questions and another system design challenge. Behavioral questions included:
- My reasons for switching from my previous role.
- Differences I observed between my current and previous companies.
- My experience with ops work and on-call duties.
- A conflict I faced with management and how I resolved it.
- How I keep up with the tech industry, particularly during a career break.
- An interesting tech article I've read, where I cited Discord's blog on indexing trillions of messages.
- My technical growth over the past year.
The system design problem was to design a system to route leads to sales representatives. Key requirements included routing individual leads based on timezone and region, allowing the product team to configure rules, sales reps checking leads via UI or email, and lead scoring, all while handling 15,000 leads per day.
The verdict for this round was "Lean Hire".
Overall, the recruiter provided detailed feedback, indicating that my answers, particularly in the system design and depth expected for an SSE, were lacking. Despite the rejection, the process was smooth, and the feedback was appreciated.
Interview Questions (23)
Discuss any issues encountered in a previous system, focusing on performance, poor code, or similar aspects.
Discuss your experience with mentoring others.
Explain what software design patterns are and why they are important.
Explain the CAP theorem.
Explain the difference between concurrency and parallelism.
Determine the output of a given multithreading code snippet.
Design an API capable of handling 10,000 queries per second (QPS) for write traffic.
Design a scalable notification system. Key requirements include implementing rate limiting for various notification categories (e.g., maximum 5 marketing notifications per user per day) and managing user preferences for different types of notifications.
Discuss how project performance and success were measured. This includes details on performance testing methodologies and specific metrics observed, such as p90 latency.
Discuss the reasons for your previous job change.
Describe the observed differences upon joining your current company compared to your previous one.
Discuss any experience you have with operations work, on-call duties, or similar responsibilities.
Design a system to route leads to sales representatives efficiently. The system should handle approximately 15,000 leads per day, routing each lead individually to sales people based on criteria such as timezone and region. The product team must be able to configure routing rules, and sales representatives should be able to view leads via a UI or receive email notifications. Incorporate lead scoring into the design.
Describe a conflict you faced with management and how you handled the situation.
Explain how you have kept up with advancements in the tech industry during a career break.
Describe your technical growth and development over the past year.
Preparation Tips
After the interview and receiving feedback, I decided to continue grinding on LeetCode problems and focus specifically on diving deeper into system design research to strengthen those areas.
Summary
I interviewed for a Senior Software Engineer (System and Infra) role at Linkedin in the USA. The process involved a technical screening, two coding rounds, a system design round, and a host manager round, and the outcome is currently pending review.
Full Experience
My interview journey for the Senior Software Engineer (System and Infra) role at Linkedin, USA, involved several rounds.
1st Technical Screening Round
This round began with a coding question similar to "Number of Islands". Following the coding challenge, we spent about 30 minutes discussing my past projects. The interviewer also delved into OS basics, covering topics like processes, threads, semaphores, mutexes, PCB, TCB, heap, stack, and networking fundamentals.
I received a response after 8 days inviting me for the onsite rounds.
Onsite Rounds
1st Coding Round
This round involved a question based on N-Array trees. Unfortunately, I don't recall the exact problem statement.
2nd Coding + AI Round
I was presented with a code snippet and asked to implement a specific function. The problem was related to topological sorting, somewhat reminiscent of "Course Schedule" type questions.
This round was quite chaotic. The interviewer seemed to have no idea how to conduct it, which unfortunately wasted about 20 minutes trying to figure out which AI assist tool we were supposed to use. I felt this round deserved a re-do due to the disorganization, but I knew that wouldn't be an option.
3rd System Design Round
This round focused entirely on system design. The problem involved designing a metrics aggregator and a monitoring system.
4th Host Manager Round
The host manager round started with a discussion of my past projects, including questions about projects I was particularly proud of. There were follow-up questions about the technologies and workflows I utilized, technical challenges I faced, and design choices I made. Standard behavioral questions were also included. Towards the end, I was given a system design-like question: "How to migrate data from one Data centre to another," with specific conditions applied.
Overall, it was a good experience. I'm now waiting to hear about the final outcome.
Interview Questions (4)
The technical screening round started with a coding question similar to 'Number of Islands'. Following this, there was a 30-minute discussion on past projects and fundamental OS concepts including processes, threads, semaphores, mutexes, PCB, TCB, heap, stack, and networking basics.
I was given a code snippet and asked to implement one function. The problem was related to topological sorting, similar to 'Course Schedule' problems.
The system design round focused on designing a metrics aggregator and a monitoring system.
Towards the end of the Host Manager round, I was given a system design-like question: 'How to migrate data from one data center to another, with certain conditions applied'.
Summary
I recently completed an interview for a Staff Software Engineer role at LinkedIn in the US, which included a coding challenge focused on implementing a Max Stack with specific time complexity requirements.
Full Experience
I recently went through an interview for a Staff Software Engineer position at LinkedIn in the US. The interview started with a quick 5-minute self-introduction, followed by 20 minutes dedicated to behavioral questions. The main technical part involved a coding problem where I had to design and implement a Max Stack data structure ensuring all its core operations, such as push, pop, top, peekMax, and popMax, maintained a worst-case time complexity of either O(1) or O(log n).
Interview Questions (1)
Implement a Max Stack data structure where all functions (push, pop, top, peekMax, popMax) operate with a time complexity of either O(1) or O(log n) in the worst case.
Summary
I had a technical phone screen interview with LinkedIn for an IC-2 Infra role in Bangalore. The interview covered CS fundamentals and a coding question, which I largely performed well on despite some initial struggles with system design concepts and challenging follow-ups.
Full Experience
I started the interview with an introduction. I felt the interviewer was a bit nervous and seemed to have just come off another meeting.
We then moved on to CS fundamentals. I answered questions about Virtual Memory and Process vs. Thread perfectly. For Database Normalization, I mentioned the read/write trade-off and deduplication, but the interviewer didn't seem satisfied. When asked how to implement a hashmap from scratch, I was caught off guard and couldn't remember, providing an incorrect answer. This was a missed opportunity.
Next was the coding section. I was given the problem Nested List Weight Sum II, which had four follow-ups. I handled the coding and dry run almost perfectly in one go.
- First, I solved it with a two-pass DFS approach.
- Then, a single-pass BFS.
- For the third follow-up, I was asked for a single-pass DFS (ignoring call stack space and optimizing space), which I tackled by storing level sums in a hash map.
- The last follow-up was for a single-pass DFS with constant space, using the formula
(max_depth + 1) * unweighted_sum - normal_weighted_sum. I needed a hint for this one.
Interview Questions (4)
Differentiate between a process and a thread.
Explain database normalization concepts, including associated trade-offs like read/write performance and deduplication.
How would you implement a hashmap from scratch?
Given a nested list of integers, return the sum of all integers in the list weighted by their depth. The weight is calculated as max_depth - (depth_of_integer - 1), where max_depth is the maximum depth of any integer in the nested list. For example, if the input is [[1,1],2,[1,1]] and the max_depth is 2, then the four 1s at depth 2 would have weight 2 - (2 - 1) = 1, and the 2 at depth 1 would have weight 2 - (1 - 1) = 2. The sum would be 41 + 12 = 6.
Summary
I recently completed a phone screen interview with Linkedin for an SSE role in Bengaluru, which covered various technical topics and a specific LeetCode problem.
Full Experience
I had a phone screen interview for an SSE position at Linkedin in Bengaluru. The discussion began with my current projects, where I was asked to elaborate on the most complex project I've worked on and suggest potential improvements to the system. Following this, the interviewer delved into core Java and Object-Oriented Programming (OOPS) concepts. We then moved on to Operating Systems, Multithreading, and Concurrency topics. The final part of the interview involved solving a specific LeetCode problem.
Interview Questions (1)
Given a nested list of integers, nestedList, where each element is either an integer or a list (which can itself contain integers or other lists), calculate the sum of all integers in the list weighted by their depth. The weight of an integer is calculated from the bottom up. That is, the deepest integers have the largest weight. If the maximum depth of any integer in the nested list is maxDepth, and an integer is at depth d (where the root list is depth 1), its weight will be maxDepth - d + 1. For example, for [1,[4,[6]]], the max depth is 3. The integer 1 is at depth 1 (weight 3), 4 at depth 2 (weight 2), and 6 at depth 3 (weight 1). The sum would be (13) + (42) + (6*1) = 17.
Summary
I recently completed a phone screen for a Senior Software Engineer - Systems Infrastructure role at LinkedIn, where the primary focus was on a challenging graph traversal problem related to determining connection distances between users in a social network.
Full Experience
My phone screen at LinkedIn started with a brief introduction, after which the interviewer presented a fascinating problem. The core task was to calculate the connection distance, essentially the shortest path, between any two users in a hypothetical LinkedIn network. They provided clear examples, like Bob-Alice-Frank having a distance of 2, which immediately cued me into thinking about graph algorithms. I spent some time clarifying the constraints and edge cases, then proposed a Breadth-First Search (BFS) approach. I walked through the algorithm step-by-step, discussing how I would represent the network (adjacency list), manage visited nodes to prevent cycles, and efficiently find the shortest path. We also talked about the time and space complexity of my solution. I felt confident in my explanation and approach.
Interview Questions (1)
LinkedIn is designed to connect people together, so that in people search and other related areas and LinkedIn will show a connection distance between two users.
E.g., Bob connects with Alice, and Alice connects with Frank, assuming there is no other connections, then Bob and Frank's connection distance is 2.
Examples:
Bob: ["Alice", "John"]
Alice: ["Bob", "Frank", "Lucy"]
Frank: ["Alice"]
John: ["Bob", "Jenny"]
Jenny: ["John", "Lucy"]
Lucy: ["Jenny", "Alice"]
The connection distance between Bob and Frank is 2
the connection distance between Lucy and Bob is 2, although there is a connection chain for Bob → John → Jenny → Lucy, but Bob → Alice → Lucy is shorter
Preparation Tips
My preparation primarily involved consistent practice on LeetCode, focusing heavily on graph algorithms, especially BFS and DFS, as these are common in system-level problems. I also reviewed common data structures and their appropriate use cases. Additionally, I spent time on behavioral questions to ensure I could articulate my experiences effectively.
Summary
I recently completed my first technical screening round for an SSE System and Infra Role at Linkedin. The round included a coding question similar to LeetCode's Number of Islands and a discussion on my past projects and OS fundamentals. I am currently awaiting an update on the next steps.
Full Experience
I recently completed my first technical screening round for an SSE System and Infra Role at Linkedin. The interview started with a coding question that was quite similar to LeetCode's Number of Islands (Problem 200). I spent a good portion of the time working through that problem. Following the coding segment, the interviewer shifted to a discussion about my past projects, where I talked about some of my relevant experiences. We also delved into some operating system basics. It was a comprehensive round, and I'm currently waiting to hear back about the next steps.
Interview Questions (1)
A coding problem similar to LeetCode problem 200, Number of Islands. The problem typically involves given an m x n 2D binary grid which represents a map of '1's (land) and '0's (water), and you need to count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.
Summary
I interviewed for the SSE role at LinkedIn, navigating a comprehensive process including phone screens and multiple onsite rounds covering coding, system design, and technical communication. Overall, it was a valuable learning experience, and I enjoyed the discussions.
Full Experience
I recently went through an interview process for the SSE role at LinkedIn, which was a very insightful and comprehensive experience.
The first step was a Phone Screen, where I was given two coding problems. The first problem asked me to rotate a linked list by n nodes, and the second was to find the maximum sum subarray in a given array. I successfully solved both problems, explaining edge cases and detailing the time and space complexities to the interviewer's satisfaction. Shortly after, the recruiter called me to schedule the onsite loop.
My Onsite Round 1 (Coding) presented two more challenges. The first was to check if a graph is bipartite, given as a list of key–value pairs. I provided working code for this, but the interviewer suggested optimizing space usage by avoiding multiple arrays, and we ran out of time discussing this. The second problem involved processing logs with function names, start times, and end times to calculate the total and exclusive time taken by each function. I successfully solved this as well, delivering working code.
Onsite Round 2 (Coding) continued with two classic problems. The first was the Celebrity Problem, where I needed to find a person known by everyone but who knows no one in a given matrix. The second involved finding the maximum length of consecutive 1’s in a list of 0’s and 1’s, where some 0’s could be flipped. I tackled both problems efficiently, providing working code within the time limit and clearly explaining my logic, test cases, and edge cases along with their complexities.
The Onsite Round 3 (System Design) focused on designing an Exception Metric Collection and Alarming System. This system needed to handle millions of exceptions per second, support keyword-based searches, provide Top K frequent and least frequent exception queries, and include an alerting mechanism for specific thresholds. I felt this round went well; I was able to define functional and non-functional requirements, discuss scale, entities, and APIs, and propose a design that met the stated requirements. I did face a minor challenge with a follow-up question about Elasticsearch internals, as I hadn't worked with it hands-on, and couldn't answer it fully.
Next, the Onsite Round 4 (Technical Communication) was less about coding and more about my past large-scale projects. We discussed design decisions, trade-offs, technology choices, alternatives, and considerations for scalability and reliability. I thoroughly explained my project architecture and the reasoning behind my design choices.
Finally, the Onsite Round 5 (Host Manager Round) began with an overview of my past projects. We then moved on to why I was interested in LinkedIn and this particular role. The round also included a real-world design problem: building a system to collect feature button click counts and display aggregated metrics over time for Product Managers. I articulated my motivations for joining LinkedIn and how my experience aligned with the role, and for the design problem, I approached it methodically, covering data collection, aggregation, and scalability.
Overall, it was a great experience. Each round effectively tested different engineering dimensions, including algorithms, system design, and communication skills. I learned a lot throughout the process and thoroughly enjoyed all the conversations. 🚀
Interview Questions (8)
Rotate a linked list by n nodes.
Find the maximum sum subarray in a given array.
Given a list of key–value pairs representing nodes, determine if we can divide them into two groups such that no key–value pair belongs to the same group.
Given logs with function name, start time, and end time — find:
- Total time taken by each function
- Exclusive time excluding sub-function execution.
Given a matrix of people, find if there’s a person who is known by everyone but doesn’t know anyone.
Given a list of 0’s and 1’s where some 0’s can be flipped to 1’s, find the maximum length of consecutive 1’s that can be formed.
Design an Exception Metric Collection and Alarming System.
- Handle millions of exceptions per second.
- Support keyword-based search for exceptions.
- Provide Top K most frequent and Top K least frequent exception queries.
- Include an alerting mechanism when specific exceptions cross a threshold.
Build a system to collect feature button click counts and show aggregated metrics over time for Product Managers.
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.
Summary
I recently completed the interview process at LinkedIn for a Software Engineering role, with 2.5 years of experience. The process involved a phone screen followed by four onsite rounds, covering Data Structures & Algorithms, System Design, and a Managerial discussion. I'm currently awaiting final feedback for the onsite stages.
Full Experience
My interview journey at LinkedIn for a Software Engineering role, with 2.5 years of experience, began with a Phone Screen. This round started with introductions and a deep dive into Operating System concepts, alongside a thorough discussion of my past projects and the challenges I encountered. I was then presented with a medium-level LeetCode problem involving range-based binary search, which I successfully solved, including follow-up questions. I received a 'Strong Hire' feedback for this round.
The Onsite Interviews comprised four distinct rounds:
1. DS & Algorithms (Round 1): I faced a hard stack-based problem, where I unfortunately couldn't complete the full solution. This was followed by a medium-level heap problem, which I solved with code and addressed all follow-up questions. My self-assessment for this round was 'Lean Hire / No Hire'.
2. DS & Algorithms (Round 2): This round presented a medium-to-hard N-ary tree problem, which I tackled with multiple follow-ups, answering all of them. Subsequently, I solved a sliding window problem, successfully handling all follow-ups. I rated my performance here as a 'Strong Hire'.
3. System Design: I was tasked with designing a key-value based system. This led to an in-depth discussion on its internal architecture, strategies for append-only log file management, log compaction techniques, and various disk cleanup strategies. I felt I missed 2–3 follow-up questions in this round, leading to a 'Lean Hire' self-feedback.
4. Managerial Round: This round involved a deep dive into my past project experiences. We also discussed Redis internal architecture, and I answered several behavioral questions. Additionally, I was questioned on SQL and indexing. I felt my current project lacked scalability, and the interviewer seemed unimpressed with my past project experience, resulting in a 'Lean Hire / Hire' self-assessment.
I completed all my onsite rounds last week, but as of now, I've only received feedback for the phone screen. I am still awaiting the final decision regarding my overall performance.
Interview Questions (1)
The task was to design a key-value based system. This involved an in-depth discussion on its internal architecture, append-only log file management, log compaction, and disk cleanup strategies.
Summary
I interviewed for a Senior Software Engineer role at LinkedIn within the Systems Infra team. Despite strong performance in Data Structures & Algorithms rounds, I received a rejection due to feedback regarding the structure of my system design discussions and the perceived scale of my previous startup experience.
Full Experience
Round 1: Data Structures & Algorithms
This round was postponed multiple times. The questions included:
- Finding K points nearest to the origin in 2D space. I solved this in 20 minutes. The problem was then extended to find K nearest neighbors to any arbitrary point in 2D space, where I discussed an approximate N-nearest neighbor approach.
- A problem similar to LRU Cache, though I don't recall the exact specifics of the question.
Round 2: Data Structures & Algorithms
This round was also postponed multiple times. The questions were:
- A problem similar to finding the diameter of a tree with 'n' children.
- Checking if two linked lists merge. For lists without cycles, I proposed checking if their endpoints are the same. For lists with cycles, I discussed that both should have cycles, and a point on the first cycle must be present in the second. I also extended this to figuring out the cycles and their starting points.
Round 3: High-Level Design (HLD)
I was asked to Design a Key-Value store. I approached this by starting with the purpose of the store, then discussing storage mechanisms, compute considerations, and sharding strategies. I didn't strictly follow common YouTube or system design structures in my discussion.
Round 4: Hiring Manager (HM)
This round involved discussions about my previous experience. I explained that while my prior startup had less scale, I built the product from scratch to profitability. I sensed the interviewer became disinterested due to the scale aspect. Other topics included design and tradeoffs, approaches, how I evaluate Proof of Concepts (POCs), and explaining a scenario where my design decisions were not adopted by my peers. I was also asked to Design a Job Scheduler.
The overall experience was good, though I ultimately received a rejection. The feedback indicated that my discussion structure needed improvement and I should work on projects with higher scale before reapplying for SDE3 roles at LinkedIn.
Interview Questions (6)
Given a set of points in 2D space, find the K points closest to the origin (0,0). The problem was extended to finding K nearest neighbors to any arbitrary point in 2D space.
The problem was similar to designing an LRU Cache, although I don't recall the exact specifics of the variation.
I was asked a question similar to finding the diameter of a tree, specifically one that could have 'n' children per node.
I had to determine if two linked lists merge. I discussed scenarios for lists without cycles and lists with cycles, including how to detect cycles and their starting points.
I was asked to design a Key-Value store. This involved discussing its purpose, storage, compute mechanisms, and sharding strategies.
I was asked to design a Job Scheduler. This round also covered discussions about my previous work experience, design tradeoffs, methods for evaluating Proof of Concepts (POCs), and resolving design disagreements with peers.
Preparation Tips
My preparation involved practicing previous LeetCode Data Structures & Algorithms problems and studying common High-Level Design questions. I am currently reading DDIA (Designing Data-Intensive Applications) and following 'hello-interview', which I find helpful for HLD interviews. However, HLD interviews still feel challenging and somewhat dependent on luck, or require extensive memorization of designs for various scales.
Summary
I interviewed for a Senior Software Engineer position focusing on Systems and Infrastructure at LinkedIn, which involved both phone screening and an onsite loop. Despite solving most coding problems optimally, I was ultimately rejected.
Full Experience
Phone Screening
The phone screen started with a deep dive into one of my projects. We then moved onto Java and OS-related questions. I also had a code review and enhancement task on a 10-line code snippet. For the coding problem, I solved a variation of the "Number of Islands" problem optimally.
On-Site
Coding 1
In the first coding round, I was asked two problems. First, I had to determine the number of connected components in an undirected graph, which I solved optimally. Second, I was challenged to design a hash map from scratch; this was a new problem for me, not found on LeetCode, but I managed to solve it optimally.
Coding 2
The second coding round also had two questions. The first was to find the number of subsets in a given array that sum up to a target. I solved the main problem optimally, but struggled with the follow-up, which involved handling negative numbers and duplicates in the input array, and couldn't solve it within the given time. The second question involved an N-ary tree: I had to prune all the leaf nodes and add them to a list, resulting in a list of lists. I solved this optimally.
For all coding questions, I dry ran my solutions and clearly explained both time and space complexities.
Hiring Manager (HM) Round
The HM round involved deep dives into 3-4 anecdotal experiences. I was also asked a real-world scenario question based on Kafka, which I unfortunately couldn't answer well. I made sure to ask some quality questions to the HMs at the end of the interview.
Complex Design (System Design)
This round focused on System Design, specifically designing a system for metrics aggregation and visualization. I felt I drove the discussion for most of this interview.
With 4.5 years of experience, I am absolutely gutted by the rejection. However, I remain determined and will continue grinding and pushing forward. Thanks to this community for the support.
Interview Questions (7)
A coding problem similar to "Number of Islands" with a slight variation, which I solved optimally.
I was asked to find the number of connected components in an undirected graph.
I was asked to design a hash map from scratch. It was a new problem not found on LeetCode.
Given an input array, I had to find the number of subsets that sum up to a target. The follow-up involved handling negatives and duplicates in the input.
I was asked to prune all the leaf nodes from an N-ary tree and add them to a list, with the output being a list of lists.
I was presented with a real-world scenario question related to Kafka and its applications/issues.
I was tasked with designing a system for metrics aggregation and visualization.
Summary
I interviewed for an SSE role at LinkedIn with 5 years of experience. The process involved multiple coding and system design rounds, including a re-attempt after receiving initial 'weak hire' feedback. I showcased strong problem-solving skills in several coding challenges and presented detailed system designs, but ultimately faced ghosting after the final HLD round, leading to an implied rejection.
Full Experience
I applied for an SSE position at LinkedIn via LinkedIn Easy Apply, having 5 years of experience.
Screening Round:
This round began with a discussion about one of my projects. Following that, I tackled a coding problem which was Nested List Weight Sum II (https://leetcode.com/problems/nested-list-weight-sum-ii/description/). I was able to solve it quickly with an optimized approach. We also covered standard questions on OS, CN, and Java basics. The feedback was a 'Strong hire' for my performance.
Coding Round 1:
The first coding round presented two problems: All O(1) Data Structure (https://leetcode.com/problems/all-oone-data-structure/description/) and Binary Tree Upside Down (https://leetcode.com/problems/binary-tree-upside-down/description/). I received 'Weak Hire' feedback, primarily because my solution for the second problem was not identical to the LeetCode solution, and the panel found it difficult to understand my approach without listening properly.
Coding Round 2:
In the second coding round, I solved Max Consecutive Ones III (https://leetcode.com/problems/max-consecutive-ones-iii/description/) and a standard topological sorting problem. I was able to solve both problems, leading to 'Strong hire' feedback.
Hiring Manager Round:
This round focused on discussions about my past projects and my motivations for wanting to join LinkedIn. I had a compelling project to explain that involved a good amount of business, product, and technical complexity. The feedback was 'Strong hire'.
High-Level Design (HLD) Round:
The HLD problem was to design a system for handling Top K articles shared over various time intervals (1 min, 5 min, 1 hour, 24 hours). I discussed using techniques like count-min-sketch, maps, and heaps, explaining the drawbacks of each. I addressed counter increment lock contention issues by proposing aggregations at the API gateway and Kafka consumers to reduce database operations. For the 24-hour handling, I suggested MapReduce or Spark. I also identified system bottlenecks like duplicate Kafka events and database recovery, referencing standard DDIA concepts. My approach was similar to the one found here: https://serhatgiydiren.com/system-design-interview-top-k-problem-heavy-hitters/. However, I received 'Weak hire' feedback, with the panel criticizing aggregations at the API gateway as business logic, despite discussing tradeoffs during the interview.
After a week, HR informed me about the two 'Weak hire' feedbacks and offered me one more chance, consisting of another coding and HLD round.
Coding Round 3:
In this second attempt at a coding round, I faced two problems: Insert Delete GetRandom O(1) - Duplicates allowed (https://leetcode.com/problems/insert-delete-getrandom-o1-duplicates-allowed/description/) and Find the Celebrity (https://leetcode.com/problems/find-the-celebrity/description/). I solved both completely with 15 minutes remaining, which I considered a 'Strong hire' performance from my end.
High-Level Design (HLD) Round (Re-attempt):
This round involved designing a KV storage system, specifically considering only a single VM with disk and equal get, put, delete operations. I started by explaining why MySQL wouldn't be suitable due to B+tree issues and internal fragmentation. I then detailed an LSM-based approach, discussing segments, layered Bloom filters, segment compaction, internal fragmentation, and write amplification in SSDs, essentially navigating through the entire LSM concept. We also had a good discussion on database recovery after a crash using WAL and disk. The panel then changed the problem statement to handle 10GB blob values. I adapted my approach to convert large files into smaller chunks based on disk free space, with similar changes to caching and pointers between chunks to reduce disk seeks. The panel wasn't satisfied with this, and the interview ended abruptly as we were already running late. Given the high bar at LinkedIn Infra, I considered this a 'Weak hire' from my perspective.
After another week, I tried reaching out to HR but received no reply, which I take as a rejection. The grind continues.
Interview Questions (9)
You are given a nested list of integers. Each element is either an integer, or a list -- whose elements may also be integers or other lists. The depth is the number of 'lists' between the integer and the root. Implement a function to return the sum of all integers in the nested list weighted by their depth. For this problem, depth is defined going from outer to inner. Specifically, the weight of an integer is 1 + (max_depth - its_depth), where max_depth is the maximum depth of any integer in the nested list.
Design a data structure that supports the following operations in O(1) time complexity: inc(key) - Increases the count of an existing key by 1. If a key does not exist, inserts the key with a count of 1. dec(key) - Decreases the count of an existing key by 1. If a key does not exist, do nothing. If a key's count becomes 0, remove it. getMaxKey() - Returns one of the keys with the maximal count. If no element exists, return an empty string. getMinKey() - Returns one of the keys with the minimal count. If no element exists, return an empty string.
Given a binary tree where all the right nodes are either leaf nodes with a sibling (a left node that shares the same parent node) or empty, flip it upside down and turn it into a tree where the original right nodes are now left leaf nodes and the original left nodes are now right leaf nodes. For example: Input: [1,2,3,4,5] Output: [4,5,2,#,#,3,1] (visually, root 4, left 5, right 2. 2's left is 3, 2's right is 1.)
Discuss your motivation for joining LinkedIn and what attracts you to the company and its mission.
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 anyone in return. If there is a celebrity, there can be only one. Implement a function to find the celebrity. You are given a helper function knows(a, b) which returns true if a knows b, false otherwise.
Design a Key-Value storage system that operates on a single VM with disk. Assume equal distribution of get, put, and delete operations. Explain why traditional databases like MySQL might not be suitable for this use case. Propose an alternative architecture and discuss key aspects such as handling large (10GB) blob values, internal fragmentation, write amplification, and database recovery after a crash.
Summary
I recently completed a technical screening for a Senior Software Engineer role at LinkedIn, which included a discussion of my past experience and two coding challenges. I'm currently awaiting the results.
Full Experience
I had my technical screening for a Senior Software Engineer position at LinkedIn. The interview began with a 20-minute discussion where the interviewer asked me several questions about my current job and projects. Following that, I was presented with two coding questions. Both problems were quite familiar to me, and I was able to approach them confidently. I am now waiting to hear back about the outcome of this round.
Interview Questions (2)
Find the maximum depth of a binary tree. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Given the standard phone keypad mappings (e.g., 2->abc, 3->def, etc.) and a list of KNOWN_WORDS, find all possible words that can be formed from a given phone number input, ensuring the formed words exist within the provided KNOWN_WORDS list.
Summary
I recently completed an interview process at LinkedIn, which included screening, multiple on-site rounds covering DSA and System Design, and a Hiring Manager discussion. I found the experience smooth and informative, despite being unsure of the outcome.
Full Experience
About me - 6 YOE (PBC)
Screening Round/Elimination Round: Some System design related questions. eg: Difference b/w write though and write back cache. Which DB to use when. Some programming related questions. And a multi-threading question on synchronization. 1 DSA question: Course schedule II
On-Site Rounds:
Round1: 2 DSA Questions:
- Find Celebrity Problem
- Some Tree related problem
Round 2: 2 DSA questions:
- It was some DP related question that I don't remember exactly. Somrthing similar to edit distance.
- Graph related questions, where we need to find minimum steps to reach soource to destination
Round 3: Design Round: Design Linkedin Post and comment functionality. Later on extended it to add analytics to it.
Round 4: HM Round: Senario based questions. And current project related details.
Overall really good experience and process was also really smooth. I don't know i'll be selected or not. But considering this as my first FAANG level interview it felt really nice to me. And i learned a lot as well from the interviwers.
Interview Questions (4)
Discuss the difference between write-through and write-back cache policies. Additionally, explain considerations and trade-offs when choosing an appropriate database for different use cases.
Given the total number of courses you have to take and a list of prerequisite pairs, return the ordering of courses you should take to finish all courses. If there are many valid answers, return any of them. If it is impossible to finish all courses, return an empty array.
In a party with N people, among whom only one is known as a celebrity. The definition of a celebrity is that all other N-1 people know him/her, but he/she does not know any of them. If such a person exists then only one such person will be present. Design an efficient algorithm to find the celebrity.
Design the core functionalities for LinkedIn posts and comments, including creation, retrieval, and display. Extend the design to incorporate analytics for posts and comments, considering data storage, processing, and visualization.
Summary
I interviewed for a Staff Infra role at Linkedin, undergoing multiple screening and onsite rounds that included coding, behavioral, leadership, and system design challenges, ultimately leading to a rejection.
Full Experience
Screening Rounds
Round 1(Coding):
- Behavioural questions: Why do you want to switch, why linkedin, Discussion on one of the projects.
- Coding Problem: https://leetcode.com/problems/all-oone-data-structure/
Round 2 (Staff Host Leader)
- Behavioural questions similar to above with examples of any project
- Leadership questions such as explain any complex project you have led
Onsite
Coding Round 1:
- Tree has keys and values, values represent sum of this and child node values
When merging - absent branches should be created, and values for existing branches are summed
Keys are unique among child nodes of a single parent
Child nodes could be stored in any order// # Root:10 // # / | \ // # A:2 B:2 M:6 // # | | // # L:2 L:2
// # Target tree T
// # Root:13 // # / |
// # A:4 B:3 D:6 // # /
// #. L:4 M:6// # Result tree RT
// # Root:23 // # / | \
// # A:6 B:5 D:6 M:6 // # / | | // # L:6 L:2 M:6
Coding Round 2:
- You have given users and its direct connections. For a given two users S and P, find minimum degree of connection. Degree of directly connected users is 1.
Expected ans: Bidirectional bfs
Follow up: Find the path
Staff Software Design and Architecture Round:
- Design metrics aggregation system
Staff Infrastructure Design and Implementation:
- Design a system which takes stream of linkedin posts and form a inverted index of all the words in the post. The user will query a list of words, you have to return all the post ids which has all the given list of words.
Result: Rejected
Interview Questions (5)
Tree has keys and values, values represent sum of this and child node values. When merging, absent branches should be created, and values for existing branches are summed. Keys are unique among child nodes of a single parent. Child nodes could be stored in any order.
// # Root:10 // # / | \ // # A:2 B:2 M:6 // # | | // # L:2 L:2 // # Target tree T // # Root:13 // # / | \ // # A:4 B:3 D:6 // # / \ // #. L:4 M:6 // # Result tree RT // # Root:23 // # / | \ \ // # A:6 B:5 D:6 M:6 // # / | | // # L:6 L:2 M:6
You have given users and its direct connections. For a given two users S and P, find minimum degree of connection. Degree of directly connected users is 1. Follow up: Find the path.
Design a system for aggregating metrics.
Design a system which takes stream of linkedin posts and form a inverted index of all the words in the post. The user will query a list of words, you have to return all the post ids which has all the given list of words.
Summary
I applied for a Software Engineer role at LinkedIn and underwent a 6-round interview process including DSA, technical communication, system design, and hiring manager discussions. The experience was generally positive with new learnings, despite some challenges in system design, and I am currently awaiting the result of the 15-day process.
Full Experience
Application - applied on linkedin itself, post which recruiter reached out.
Total Rounds - 6
Phone screen
Two DSA question
1. Similar to https://leetcode.com/problems/bulb-switcher.
2. https://leetcode.com/problems/shortest-word-distance-ii.
Gave optimal answer for both , questions on resume. Got result on the same day for moving to onsite.
Round 1 - DSA
1. Question related to turning tree upside down with 0 /1 right child.
2. Question similar to number of island.
Solved both optimally, interviewed tried to confuse with an non existing case, got a little confuse but then cleared it with interviewer they were satisfied.
Round 2 -DSA
1. max consecutive one , similar to this with wrap around follow up
2. falling leaves question https://leetcode.com/problems/find-leaves-of-binary-tree/
Solved both optimally along with time complexity discussion, interviewer was satisfied.
Technical Communication - was asked to explain a project we did and went into details along with follow ups and trade off discussion, most interesting and had a good discussion.
System Design - Design Calendar, discussed mainly about API, also asked SQL query (I wasnt prepared for this hence it took some time to figure out), API discussion and DB Schema design took sometime couldn’t discuss HLD much.
Hiring Manager - This round was interesting and had a nice discussions around the probleam faced during work, some behavioral questions, discussed details around different databases and its usecase, HM also gave me a problem to just figure out how would I approach to it, I didn’t have to do all things on my own and can ask for help, such as which all team will you reach out , how to structuure approaches doing POCs, and other usual behavioural questions.
Recruiter was super responsive and replied quickly on any doubts, the experience was quite good with new learnings. All the best whoever is appearing for interviews, just giving back to the community.
Except System Design everything was really good, system design I could have done better. Overall process took around 15 days.
Result Awaiting
Interview Questions (9)
A Data Structures & Algorithms question involving turning a binary tree upside down, specifically with conditions related to 0/1 right children.
A Data Structures & Algorithms question similar to the 'Number of Islands' problem.
A Data Structures & Algorithms question similar to 'Max Consecutive Ones' with a follow-up involving wrap-around.
I was asked to explain a project I had worked on, including details, follow-up questions, and discussions around trade-offs.
I was asked to design a calendar system, focusing on API design, SQL queries (which I found challenging), and DB schema design. I couldn't discuss High-Level Design much.
The Hiring Manager presented a problem and asked how I would approach it, including which teams I would reach out to, how to structure approaches, and conducting PoCs, emphasizing that I didn't have to solve everything alone.
Summary
I had a L2 Backend screening round at LinkedIn with two interviewers. I fumbled a design follow-up and both easy DSA problems, resulting in a rejection.
Full Experience
There were two interviewers, both asked for intro and one project detail each. One asked a design related follow-up which I fumbled. Each gave one DSA problem both easy (Again fumbled both)
-
A variation of https://leetcode.com/problems/can-place-flowers/description/ in place of flowers it was people
-
Given the standard mapping from English letters to digits on a phone keypad (1 → "" 2 -> a,b,c 3 -> d,e,f 4 -> g,h,i 5 -> j,k,l 6 -> m,n,o 7 -> p,q,r,s 8 -> t,u,v 9 -> w,x,y,z), write a program that outputs all words that can be formed from any n-digit phone number from the list of given KNOWN_WORDS considering the mapping mentioned above. KNOWN_WORDS= ['careers', 'linkedin', 'hiring', 'interview', 'linkedgo'] phoneNumber: 2273377 Output: ['careers'] phoneNumber: 54653346 Output: ['linkedin', 'linkedgo']
Was able to come up with approaches for both but was a bit slow in identifying edge cases, there was no way to submit the problems and run against test cases on LinkedIn platform(they use coderpad). Asked to specify space and time complexity for both.
Interview Questions (2)
A variation of the 'Can Place Flowers' problem where instead of flowers, it was people. (Refer to LeetCode problem: https://leetcode.com/problems/can-place-flowers/description/)
Given the standard mapping from English letters to digits on a phone keypad (1 → "" 2 -> a,b,c 3 -> d,e,f 4 -> g,h,i 5 -> j,k,l 6 -> m,n,o 7 -> p,q,r,s 8 -> t,u,v 9 -> w,x,y,z), write a program that outputs all words that can be formed from any n-digit phone number from the list of given KNOWN_WORDS considering the mapping mentioned above. KNOWN_WORDS= ['careers', 'linkedin', 'hiring', 'interview', 'linkedgo'] phoneNumber: 2273377 Output: ['careers'] phoneNumber: 54653346 Output: ['linkedin', 'linkedgo']
Preparation Tips
Advice: Please have a proper sleep, I pulled an all nighter and fumbled on basic discussions too(not an excuse I know), also focus on easy to easy-medium questions for screening(I guess). I was grinding LC hard/medium(graphs, DP and all) and fumbled on easy stuff embarrasing myself.
Summary
I interviewed for a Staff Software Engineer role at LinkedIn India in June 2025 and received an offer. The interview process consisted of 6 rounds, including DSA, System Design, and Behavioral, covering various aspects of staff-level expectations.
Full Experience
Hi Leetcoders, I am posting my interview experience with LinkedIn India for the Staff Software Engineer role. For the Staff role, they have total of 6 rounds: 1 Screening and 5 online rounds
Here is the breakdown of all the rounds:
Round 1: ScreeningIn this round, Firstly, I was asked to give my detailed career intro along with leadership/project related questions:
- Conflicting situations faced in any critical project
- Impactful project from which I was able to move out to other project with minimal disruption
Few follow-ups were there and this discussion lasted for around 20 mins
Then, I got a LC Hard DSA question : https://leetcode.com/problems/max-stack/
I discussed 2-3 most optimal approaches and the interviewer agreed on one of the approaches to code it for all the helper methods along with discussion on Space and Time Complexity. Also, I was asked to dry run on a pre-written TC.
Rating : Strong Hire
Round 2: DSA 1: Staff Coding - AppsQ1: https://leetcode.com/problems/minimum-window-substring
The problem was extended to a condition when the source string is wrapped around.
Q2: Shortest path between LinkedIn connections. An adjacency list is given, a source and a target. Find the connection distance between source and target. Print the path as well.
I discussed the optimal solution : Bi-directional BFS and coded for the same.
Rating : Strong Hire
Round 3: DSA 2: Staff Coding & Algorithms 2Q1: https://leetcode.com/problems/word-ladder
I gave the most optimized O(M*N) approach inspired by the below link:
https://leetcode.com/problems/word-ladder/submissions/1595132398
Q2: https://leetcode.com/problems/shortest-word-distance-ii
Gave the optimal 2-pointer approach.
Extension: For the scenario if one string's occurences are less than other, used binary search for the more frequent string.
Rating : Strong Hire
Round 4: System DesignInitially, this round started with project and leadership based questions. Don't remember the exact questions, Apologies.
Next, the interviewer covered the most complex project I recently led and covered about the security aspects and challenges faced. There were multiple follow-ups to understand my roles and responsibilities working as a tech lead.
Next, I was given the below system design problem:
Design a flexible in-memory cache with customizable capacity and eviction policies.
The cache should allow users to define:
- Capacity: Specify how much data the cache can hold based on memory resources and data size.
- Eviction Policy: Choose strategies for removing items when the cache is full, such as Least Recently Used (LRU) or Lowest Priority.
This flexibility ensures the cache can be tailored to meet specific requirements, balancing resource usage and performance.
Once the LLD created was agreed with the interviewer, it was extended from HLD perspective for multiple nodes in distributed system setup covering all the challenges and other adhoc scenarios like hot key issue for a write-heavy setup. Also, discussion went around few Redis related internals.
Rating : Hire
Round 5: CraftsmanshipThis is mostly a behavioral based round for Staff role. It covered 8-10 scenario questions with internal follow ups. Questions were as follows:
- How do you define a quality product/system?
- Describe your strategy regarding code reviews
- Talk about a project that had many junior engineers and how I kept the project quality high/ If your team keeps growing and you get more junior engineers, what do you do?
- As a hypothetical situation, Imagine you join LinkedIn on a massive team that owns a legacy application. The application lacks adequate testing and monitoring and has slow response times. Consumers complain about this. Deployment of the application often contains bugs. What efforts would you do as a Staff SWE?
- Rank the following in terms of priority: bugs, no testing, no monitoring, slowness. What do you tackle first? How do you eventually turn this into micro services?
- What do you look for when determining the success of a service?
- What are your principles of mentorship? How do you manage technical and non-technical mentorship?
- Talk about a time where you helped grow engineers
- Few questions which were aligning with the LinkedIn values. Don't remember the exact questions.
Note: Please be well-versed about Linkedin values.
Rating : Strong Hire
Round 6: Host ManagerThis round started with an elaborate introduction of both me and the interviewer.
Questions were as follows:
- Talk in detail about the most complex and challenging project I led in the recent times which had a very large scale. I framed my answer step-by-step as follows (along with few follow-ups from the HM):
-> Team and My role
-> Customer Problem & Business impact
-> Key architectural decisions led/taken by me
-> Biggest challenges faced and how did I overcome
-> How did I maintain timely execution of the project
-> Changes in reqs/unexpected blockers
-> Ensuring alignment with stakeholders - Why looking for change? Why LinkedIn?
- Describe a situation where you showed operational excellence.
- Describe a situation where you suggested improvements in the project which other engineers in the team could leverage from.
Then at the end, he threw a HLD problem for designing a LinkedIn internal notification system which can handle a very large scale.
There were few cross-questions regarding the different internal microservices and Kafka being used for async handling.
This just had 10-15 mins at the end. Luckily, I was able to create the HLD diagram covering all the components.
Verdict : Selected for the staff role after a week.
Compensation details :
Base salary: 88 LPA
Target bonus : 13.2 LPA (min 15%)
PF : 4.25 LPA
RSU: 350k for 4 years, 75.6 LPA
Relocation bonus/services: ~5 L
Net CTC per year : 1.85 Cr PA
YOE : 10
Current CTC : 63 LPA (Microsoft : Senior SWE)
Had another competing offers from Atlassian and Salesforce (~1.4 Cr PA), but finally I accepted the LinkedIn offer due to better role and compensation.
Thanks to the Leetcode community for helping during my preparation and it's my time to give back to the community. Cheers!
Interview Questions (21)
Conflicting situations faced in any critical project.
Impactful project from which I was able to move out to other project with minimal disruption.
Given an adjacency list representing LinkedIn connections, a source and a target. Find the connection distance between source and target. Print the path as well.
Given two words, beginWord and endWord, and a dictionary wordList, return the number of words in the shortest transformation sequence from beginWord to endWord, such that: Only one letter can be changed at a time. Each transformed word must exist in the wordList. If there is no such sequence, return 0.
Design a flexible in-memory cache with customizable capacity and eviction policies. The cache should allow users to define: 1. Capacity: Specify how much data the cache can hold based on memory resources and data size. 2. Eviction Policy: Choose strategies for removing items when the cache is full, such as Least Recently Used (LRU) or Lowest Priority. This flexibility ensures the cache can be tailored to meet specific requirements, balancing resource usage and performance. Once the LLD created was agreed with the interviewer, it was extended from HLD perspective for multiple nodes in distributed system setup covering all the challenges and other adhoc scenarios like hot key issue for a write-heavy setup. Also, discussion went around few Redis related internals.
How do you define a quality product/system?
Describe your strategy regarding code reviews.
Talk about a project that had many junior engineers and how I kept the project quality high/ If your team keeps growing and you get more junior engineers, what do you do?
As a hypothetical situation, Imagine you join LinkedIn on a massive team that owns a legacy application. The application lacks adequate testing and monitoring and has slow response times. Consumers complain about this. Deployment of the application often contains bugs. What efforts would you do as a Staff SWE?
Rank the following in terms of priority: bugs, no testing, no monitoring, slowness. What do you tackle first? How do you eventually turn this into micro services?
What do you look for when determining the success of a service?
What are your principles of mentorship? How do you manage technical and non-technical mentorship?
Talk about a time where you helped grow engineers.
Talk in detail about the most complex and challenging project I led in the recent times which had a very large scale. I framed my answer step-by-step as follows (along with few follow-ups from the HM): Team and My role, Customer Problem & Business impact, Key architectural decisions led/taken by me, Biggest challenges faced and how did I overcome, How did I maintain timely execution of the project, Changes in reqs/unexpected blockers, Ensuring alignment with stakeholders.
Why are you looking for a change? Why LinkedIn?
Describe a situation where you showed operational excellence.
Describe a situation where you suggested improvements in the project which other engineers in the team could leverage from.
Design a LinkedIn internal notification system which can handle a very large scale. There were few cross-questions regarding the different internal microservices and Kafka being used for async handling.
Preparation Tips
Thanks to the Leetcode community for helping during my preparation and it's my time to give back to the community. Cheers!
Summary
I recently completed my first round interview with LinkedIn, where I was asked to solve a problem involving calculating the total weights of a nested list of NodeIntegers. My initial attempt during the interview timed out, but I later solved it quickly using a two-recursion method.
Full Experience
I recently completed first round of interview with LinkedIn, where I was asked to solve the following problem.
Given a list of node integers, I have to calculate the total weights of the list. The weight calculated as follows, {{1,2},2,{1,2}} = 1x1 + 2x1 + 1x1 + 2x2 + 2x2 = 8 i.e. innermost depth multiplier is 1, in this case it is {1,2} & {1,2} and a layer outer to that multiplier is 2, in this case it is 2
similarly for, {{1,2}, 3, {4, {6}, 5}} = 6x1 + 4x2 + 5x2 + 3x3 + 1x2 + 2x2
I know I have to solve maxDepth first (by first recursion) and then use recursion (second) by reducing the depth by 1 on each inner level. But, instead of implementing the solution I tried to simplify it further by calculating the weight and depth in single recursive call. Eventually timed out. Feeling sad for missing this simple problem which I know can be solved in less than 10 mins. I actually solved the problem after the interview in 5 mins but of no use. Not sure if it is the only approach or any other better approach is available.
// implementation of NodeInteger
public class NodeInteger { // returns true if this node has integer rather list public isInteger();
// returns the integer this node holds public getInteger();
// returns the list of child NodeIntegers public getList(); }
Interview Questions (1)
Given a list of node integers, I have to calculate the total weights of the list. The weight calculated as follows, {{1,2},2,{1,2}} = 1x1 + 2x1 + 1x1 + 2x2 + 2x2 = 8 i.e. innermost depth multiplier is 1, in this case it is {1,2} & {1,2} and a layer outer to that multiplier is 2, in this case it is 2
similarly for, {{1,2}, 3, {4, {6}, 5}} = 6x1 + 4x2 + 5x2 + 3x3 + 1x2 + 2x2
// implementation of NodeInteger
public class NodeInteger { // returns true if this node has integer rather list public isInteger();
// returns the integer this node holds public getInteger();
// returns the list of child NodeIntegers public getList(); }
Summary
I was asked a challenging data structures and algorithms question involving phone keypad mapping and word generation using a Trie, but unfortunately, I received a rejection email despite providing a solution.
Full Experience
I was asked this question in the interview: Given the standard mapping from English letters to digits on a phone keypad (1 → "" 2 -> a,b,c 3 -> d,e,f 4 -> g,h,i 5 -> j,k,l 6 -> m,n,o 7 -> p,q,r,s 8 -> t,u,v 9 -> w,x,y,z),
write a program that outputs all words that can be formed from any n-digit phone number from the list of given KNOWN_WORDS considering the mapping mentioned above.
KNOWN_WORDS= ['careers', 'linkedin', 'hiring', 'interview', 'linkedgo']
phoneNumber: 2273377 Output: ['careers']
phenoNumber: 54653346 Output: ['linkedin', 'linkedgo']
Solution:
public class WordFinderFromPhoneNumber {
private static final String[] KEYBOARD = {
"", // 0
"", // 1
"abc", // 2
"def", // 3
"ghi", // 4
"jkl", // 5
"mno", // 6
"pqrs", // 7
"tuv", // 8
"wxyz" // 9
}; // Already Given
private static final List<String> KNOWN_WORDS = Arrays.asList(
"careers", "linkedin", "hiring", "interview", "linkedgo"
); // Already Given
private TrieNode root;
public WordFinderFromPhoneNumber() {
root = new TrieNode();
buildTrieNode(KNOWN_WORDS);
}
public List<String> wordsFromPhoneNumbers(String phoneNumber) {
List<String> result = new ArrayList<>();
Map<Character, Set<Character>> digitToCharMap = new HashMap<>();
for (int i = 2; i <= 9; i++) {
char digitChar = (char) (i + '0');
for (char ch : KEYBOARD[i].toCharArray()) {
digitToCharMap.computeIfAbsent(digitChar, x -> new HashSet<>()).add(ch);
}
}
backtracking(phoneNumber, 0, digitToCharMap, result, root);
return result;
}
private void buildTrieNode(List<String> words) {
for (String word : words) {
TrieNode curr = root;
for (char c : word.toCharArray()) {
curr.childrens.putIfAbsent(c, new TrieNode());
curr = curr.childrens.get(c);
}
curr.word = word;
}
}
private void backtracking(String digits, int index, Map<Character, Set<Character>> map,
List<String> result, TrieNode curr) {
if (index == digits.length()) {
if (!curr.word.isEmpty()) {
result.add(curr.word);
}
return;
}
char digit = digits.charAt(index);
if (!map.containsKey(digit)) return;
for (char letter : map.get(digit)) {
if (curr.childrens.containsKey(letter)) {
backtracking(digits, index + 1, map, result, curr.childrens.get(letter));
}
}
}
private static class TrieNode {
Map<Character, TrieNode> childrens = new HashMap<>();
String word = "";
}
}
Even after giving this solution, got the rejection email.
Interview Questions (1)
Given the standard mapping from English letters to digits on a phone keypad (1 → "" 2 -> a,b,c 3 -> d,e,f 4 -> g,h,i 5 -> j,k,l 6 -> m,n,o 7 -> p,q,r,s 8 -> t,u,v 9 -> w,x,y,z),
write a program that outputs all words that can be formed from any n-digit phone number from the list of given KNOWN_WORDS considering the mapping mentioned above.
KNOWN_WORDS= ['careers', 'linkedin', 'hiring', 'interview', 'linkedgo']
phoneNumber: 2273377 Output: ['careers']
phenoNumber: 54653346 Output: ['linkedin', 'linkedgo']
Summary
I received an offer for a Software Engineer - Applications role at LinkedIn. The interview process included a phone screen, two coding rounds, a technical communication round, a hiring manager interview with behavioral and high-level system design questions, and a dedicated system design round. I felt lucky to be familiar with the questions and overall had a positive experience, eventually receiving an offer.
Full Experience
Hello! It's time for me to finally give back to the community.
Some stats:
2 yoe
~300 leetcode questions
Applied through referral
Phone Screen:
https://leetcode.com/problems/maximum-subarray/
https://leetcode.com/problems/maximum-product-subarray/description/
Onsite:
Coding 1:
https://leetcode.com/problems/max-consecutive-ones-iii/description/
With multiple follow-ups.
Needed a few hints with the follow-ups. At the very end we ran out of time so I had to answer them verbally.
Technical Communication:
I felt like my past projects were very lackluster. My last role was very domain specific, and the project itself was adding a new configuration to a pipeline that was already established by rock-star engineers before me. Because of this, the design choices I made were very straightforward with little to no tradeoffs to consider. I talked about the infrastructure of the pipeline, and the data flow that is involved with the new configuration.
When asked what I would change I talked about possible modifications to the infrastructure and the effect it would have. But with the tradeoffs considered I would stick to the original design of the engineers before me.
Coding 2:
https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/
In asking clarifying questions I inadvertently increased the scope of the question and had to implement something extra. I needed a few hints but was able to complete the question. We ended with 15 minutes to spare and I was a bit confused as I was expecting 2 questions. Finished the rest of the interview chatting about linkedin and their experiences.
HM:
Was asked behavioral questions and data processing questions. They asked some high level System Design question related to metrics gathering. At the very end of the interview they kept talking to the point where the next round of interviewers came in and had to cut things short. This was my favorite interaction in the entire interview, as I really enjoy people sharing the things they’re passionate about.
System Design:
Design a calendar. I was most nervous about this, as it was my first time in an official System Design interview. I think I spent a little too much time on the high-level API’s and gathering requirements, where at the end of the interview we didn't get a chance to discuss too much into scalability (which I think is the fun part). But overall I was able to get a decent high level design that solved the problem, and was able to answer all of their questions.
Final Result: Offer
I got really lucky that I was relatively familiar with the questions I received. All interviewers were very kind and I felt like I vibed with all of them. If I had to prep again I would focus on the top LinkedIn tagged questions, and the rest on System Design. I did mock interviews for all of the interviews above categories and it really gave me confidence on the big day.
For those that were impacted by layoffs don't give up! End of last year I was laid-off and was driving home from work crying. I felt like a failure and my confidence and self-worth was at an all-time low. But reading everyone’s posts on their interview grind gave me the motivation to keep on going. If anyone reading this is going through anything similar I want you to know that with enough time and luck things will eventually get better.
Interview Questions (5)
Design a system that allows users to create, view, and manage calendar events. Considerations include API design, data storage, and basic functionality for event scheduling.
Preparation Tips
If I had to prep again I would focus on the top LinkedIn tagged questions, and the rest on System Design. I did mock interviews for all of the interviews above categories and it really gave me confidence on the big day.
Summary
I interviewed for a Senior Software Engineer (SSE) role at LinkedIn in April 2025. The interview covered past experience, CS fundamentals, Java, and a Data Structures & Algorithms problem. I was ultimately rejected due to issues with my implementation during the coding round.
Full Experience
Recently a Linkedin recruiter reached out on Linkedin for a SSE role in their infrastructure team.
Round 1
Questions on past experience - discussed about one project in depth.
Questions on CS fundamentals - paging, thrashing, threads, process, mutex, semaphore
Questions on Java - final, finally, finalize, GC
DSA: https://leetcode.com/problems/shortest-word-distance-ii/
Verdict: Rejected. Messed up the implementation on coderpad - interviewer expected successful compilation and execution.
Summary
I had a 1-hour phone interview for a Staff Software Engineer role, which included a behavioral round followed by a coding question on implementing a Max Stack.
Full Experience
Total duration 1 hour. First 30 mins introduction and behavioral round. Later part coding question
Summary
This post details a comprehensive 6-round interview experience at LinkedIn for an IC3 FullStack Engineer role, covering a broad range of topics from frontend theory, JavaScript puzzles, UI/UX design, to data structures, algorithms, and system design, including specific LeetCode problems and large-scale system architecture discussions.
Full Experience
Round 1 : Preliminary Screen Round
Discuss Theory Question Like HTTP Methods POST, GET, PUT and Delete WHy cannot we use POST to fetch data and GET to send data, what happens?
Discuss Accessibility.
What is the Output of the following code?
let Foo = function(a) {
function bar() {
return a;
}
this.baz = function() {
return a;
};
};
Foo.prototype = {
biz: function(a) {
return a;
}
};
Follow up on output classes and constructor.
Final Code this in coderpad using html, css: https://imgur.com/a/table-free-layout-Rwnqk
Round 2 : product and technical taste hybrid
- Discuss the Projects i have done
- Advantages of typescript? would you move your application to typescript.? how would you convience people
- Explain any project end to end. Challenges face and how do you handle.
- Technical website/forums usually visited? online and offline.
- Interaction design, visual design, information acrichture, which is important when building ui
- When to write UT and when to not. any scenario when not writing UT is good?
- If you have to change anything in linkedlin
- techinal problem i stuct at and how do i solve it
- How to Choose a Framework?
- Any leadership initiative taken in terms of technical.
Round 3 : Pragmatic UI
Design calculator focus on functioality only, skin memory m mc things from screen https://drive.google.com/file/d/0B7MB0kH2SO8MZzdGM1lNUklqaHc/edit?resourcekey=0-LUdqEyhWmAlQhDmZFvYew
**Follow up Question ** follow up how will you implement this behaviour, this old time calculator
- [key] | display ---------+--------- {{init}} | 0 [1] | 1 [2] | 12 [+] | 12 [3] | 3 [4] | 34 [=] | 46
Round 4 : Coding DSA
- LinkedIn is designed to connect people together, so that in people search and other related areas and LinkedIn will show a connection distance between two users.
E.g., Bob connects with Alice, and Alice connects with Frank, assuming there is no other connections, then Bob and Frank's connection distance is 2.
- https://leetcode.com/problems/all-oone-data-structure/description/ Same to same no change
Round 5: System Design and Architecture (UI Focus)
Discuss design for linkedln live comment section..How will you design comment section of Linkedln Live/ Ig live comment section. Discuss Scalibility How will system work if user join at mid of the live video. How things will work if a user has slow connectivity.
Round 6: Host Leader(Hiring Manager)
Discuss Projects I have done, in each company what is my role. How would you handle multiple responsibility And other Standard hiring manager questions based on the work i have done.
Last One system design question: How will you design recommendation system for Linkedln Jobs. (Both Frontend + Backend). Focus more on backend.
Interview Questions (13)
Discuss Theory Question Like HTTP Methods POST, GET, PUT and Delete WHy cannot we use POST to fetch data and GET to send data, what happens?
Discuss Accessibility.
What is the Output of the following code?
let Foo = function(a) {
function bar() {
return a;
}
this.baz = function() {
return a;
};
};
Foo.prototype = {
biz: function(a) {
return a;
}
};
Follow up on output classes and constructor.
Final Code this in coderpad using html, css: https://imgur.com/a/table-free-layout-Rwnqk
Advantages of typescript? would you move your application to typescript.? how would you convience people
Interaction design, visual design, information acrichture, which is important when building ui
When to write UT and when to not. any scenario when not writing UT is good?
How to Choose a Framework?
Design calculator focus on functioality only, skin memory m mc things from screen https://drive.google.com/file/d/0B7MB0kH2SO8MZzdGM1lNUklqaHc/edit?resourcekey=0-LUdqEyhWmAlQhDmZFvYew
**Follow up Question ** follow up how will you implement this behaviour, this old time calculator
- [key] | display ---------+--------- {{init}} | 0 [1] | 1 [2] | 12 [+] | 12 [3] | 3 [4] | 34 [=] | 46
LinkedIn is designed to connect people together, so that in people search and other related areas and LinkedIn will show a connection distance between two users.
E.g., Bob connects with Alice, and Alice connects with Frank, assuming there is no other connections, then Bob and Frank's connection distance is 2.
Discuss design for linkedln live comment section..How will you design comment section of Linkedln Live/ Ig live comment section. Discuss Scalibility How will system work if user join at mid of the live video. How things will work if a user has slow connectivity.
How will you design recommendation system for Linkedln Jobs. (Both Frontend + Backend). Focus more on backend.
Summary
I interviewed for a Staff Software Engineer, Systems Infrastructure role at LinkedIn, progressing through multiple rounds including OA, screening, coding assessments, system design, and hiring manager interviews. After three weeks without an HR response, I consider it a rejection.
Full Experience
OA - 2 or 3 Med/Hard problems. Couldn't remember
Screening :
Some OS & Java fundamentals and 2 DSA :
- Similar to : https://leetcode.com/problems/bulb-switcher/description/
- Given list of words and a phoneNo. return the words which can be formed using given phoneNo. Pretty standard one.
CA1 :
- Exactly : https://leetcode.com/problems/all-oone-data-structure/description/
- Similar to https://algo.monster/liteproblems/366 . But it was N-ary tree instead of Binary tree.
CA2 :
- No of Island problem. Little twisted.
- Celebrity Problem
Design :
Design Metrics aggregation System
HM :
Past experiences mostly and behavioral questions.
Been more than 3 weeks and not getting any response from HR. So I consider it as a Reject.
Interview Questions (8)
Given a list of words and a phone number, return the words that can be formed using the digits of the given phone number (like T9 prediction).
A slightly twisted version of the classic 'Number of Islands' problem.
The classic Celebrity Problem.
Design a system for aggregating metrics.
Questions related to past experiences and general behavioral aspects.
Summary
I interviewed for a Senior Software Engineer (SSE) role at LinkedIn two weeks ago, and after not receiving any communication from the recruiter despite follow-ups, I consider it a reject.
Full Experience
Hi All,
My interview took place 2 weeks back and I did not hear back anything from my recruiter even after follow up so its a reject.
Coding 1:
- LCA of BST
- Get Random values in a list [implement add, getRandom, deleteRandom]
Coding 2:
- Find if its a same tree or not
- Shortest distance between LinkedIn Connections
Design: Top K system with 5 mins, 1 hr and 24 hrs window
TC: Challenging project, Resume related questions
HL: My day at work, Challenging project, hypothetical questions
Interview Questions (7)
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.
Implement a data structure that supports inserting a value, deleting a value, and getting a random value, all in O(1) average time. Assume duplicate elements are not allowed.
Given the roots of two binary trees p and q, write a function to check if they are the same or not. Two binary trees are considered the same if they are structurally identical, and the nodes have the same value.
Find the shortest distance (number of connections) between two specific users in a social network like LinkedIn. This implies a graph traversal problem.
Design a system to efficiently find the Top K most frequent items within specified time windows (e.g., last 5 minutes, last 1 hour, last 24 hours).
I was asked to discuss a challenging project from my resume and respond to general questions related to my professional experience.
I was asked to describe a typical day at work, discuss challenging projects, and respond to hypothetical scenarios.
Summary
I underwent a month-long interview process for a Senior Staff Software Engineer role in System Infrastructure Engineering at LinkedIn, Bangalore, which included an OA, telephonic, and four onsite rounds. Despite receiving a 'Not Hire' feedback due to performance in a coding round and the Hiring Manager's feedback, I encountered several specific coding and system design challenges.
Full Experience
Linedkin Recruiter reach out to me via linkedin, The entire process took 1 month exactly consist of 1 Intro round, 1 OA (online assesment), 1 telephonic, 4 Onsite Round(Online Rounds).
Current stack : SDE-3 (Golang/Backend Engineer)
Intro Call: HR asked questions related to profile and looking out for candidates with good system knowledge.
Telephonic Round: Asked 1 Coding Question, It is java specific role so they asked java questions mostly oops related
OA: Hackerrank Assesment having 3 questions, able to solve 2 completely and 1 partially with 2 cases going TLE.
Onsite Rounds:
Coding Round1: Question 1: given the logs find out time taken by each function, inclusive and exclusive time Question 2: LCA of BST.
Feedback: Hire
Coding Round 2: Question 1: Merging 2 B+ tree Question 2: Djikstra Algorithm, initially it was solved with Queue because it was considered to be unit distance and later they have given distances.
Feedback: Not able to solve 1st question entirely.
System Design Round: Asked to implement Key Value Store, Discuss FR and NFR and able to come up with approach where storing the data in the Ram and for HA/Backup keeping it in FileStorage. Have been asked a good follow up question. Feedback: Hire - Average rating
Hiring Manager Round: 15 mins late to interview and gave the negative feedback stating didnt have depth knowledge of the things worked on.
Hire: Not Hire
Note: Just use linkedin tag questions for round 1 and round2. they are enough but they usually give it with class and method signature to make it tricky. Focus on Designing the system from scratch. and All the best if your hiring manager is not good fit for the role :P.
Feedback: Not Hire. Feeedback receieved that they are looking out for strong hire candidated. From my side I was not able to do good in 2nd coding round.
Interview Questions (6)
Given logs, find out the time taken by each function, including both inclusive and exclusive times.
Find the Lowest Common Ancestor (LCA) of a Binary Search Tree.
Merge two B+ trees.
Apply Dijkstra's Algorithm, initially for unit distance edges, and then extending to weighted edges.
Design a Key-Value Store. Discuss Functional Requirements (FR) and Non-Functional Requirements (NFR).
Summary
I got rejected at the phone screen round for an SSE position at LinkedIn India, despite solving both DSA questions optimally and explaining them thoroughly. I am disheartened by the rejection and did not understand the reason.
Full Experience
Wanted to share my experience for SSE interview at LinkedIn India position. Got rejected at phone screen round even after solving both of the DSA question within time frame with optimal solution, explained the code thoroughly with test case. Feeling disheartened and still not able to believe I got rejected, didn't understand the reason why I got rejected even after performing good in the round. Below are the question asked, hope it will help others:
Interview Questions (2)
The problem can be found at: https://leetcode.com/problems/nested-list-weight-sum/description/
Cinema Hall seat allocation Problem.
Summary
I successfully interviewed for a Frontend Software Engineering role at LinkedIn with 2 years of experience. I cleared all 7 rounds, which included technical, system design, and product taste discussions, and subsequently received and accepted an offer.
Full Experience
Role Applied For: Software engineer, Frontend YOE: 2 years
I recently went through the interview process for a frontend software engineering role at LinkedIn, and wanted to share my experience in case it helps someone else.
There were 7 rounds in total, including the initial phone screen. I applied via referral and heard back from HR within a week. I asked for a bit of prep time, so the first interview was scheduled the following week.
Round 1: Phone Screening Round
-
This was one of the trickiest rounds. The panel initially asked about the differences between HTTP requests. What seemed simple at first quickly turned more complex, and we ended up discussing idempotency and browser caching in GET requests, among other things.
-
After this discussion, we quickly moved on to machine coding, where I was asked questions about prototypical inheritance, closures, constructor functions, and the concepts of
bind,call, andapply. -
Then, I was asked to implement a
memoizationhigher-order function (HOF).
I received a call from HR the next day confirming that I had cleared this round, and there would be 6 more rounds.
Round 2: Browser JavaScript Round
This one was mostly about core browser + JS knowledge.
- This round focused on JavaScript, particularly DOM manipulation and browser-based JS. The interviewer quickly went into depth and tested my understanding of core concepts throughout
- Q1: Re-implement the
includesmethod for any DOM node’s class list. Discussed good edge cases around it - Q2: Efficiently parse query strings from a given URL.
The interviewer dug deep into time and space complexity, even for built-in methods. Definitely worth brushing up on browser APIs and their internals.
Round 3: Product Taste
No coding here — just a product and thought process round.
- This round was a mix of product and technical discussions, with no machine coding involved. The goal was to assess my understanding of how a product works and whether I can think beyond just the technical aspects.
- I was asked questions about good testing practices, working style etc
- One interesting question:
What’s a feature you think LinkedIn is missing?
Round 4: UI focused DSA
There were two questions in this round.
- The first question involved extending the
Stringprototype in JavaScript and implementing a custom function for repeating any string n times.
"abc".repeat(3) should give "abcabcabc"
- O(n) was very obvious and she asked me to think about O(log(n)) only
- The second question was about efficient
DOM tree traversal. Given two nodesnode1andnode2, check ifnode2is a descendant ofnode1somewhere in the DOM. Focus was on efficient tree traversal and edge cases
Round 5: Frontend system design
This one was more open-ended and definitely fun.
- The initial task was to display a blip on a world map every time someone joins LinkedIn.
- I mentioned choosing between
pollingandsockets. The interviewer made sure I wasn't just using jargon and spent a good amount of time evaluating whether I was making a calculated choice between the two. - After I finished the basic solution, the interviewer added a twist — we could now fetch data only every 5 minutes, but still had to show a real-time view on the map. It made things more interesting, and the round turned into a collaborative problem-solving session, which was actually pretty fun
Round 6: Pragmatic UI
Tough but interesting round — very real-world.
- The task was to design a filters section like on Amazon, handling
fetching and storing filters,rendering and toggling them,syncing filter state with the UI,making efficient POST requests on changes - Discussed debouncing in detail
- Honestly, it was difficult to think through and implement everything in just one hour, but thankfully, the interviewer was more interested in the implementation than the time constraint
Round 7: Hiring manager round
Very chill round compared to the others.
- Mostly about past projects, team dynamics, and growth plans.
- The manager was super friendly and kept things conversational
Interview Questions (8)
Implement a memoization higher-order function (HOF).
Re-implement the includes method for any DOM node’s class list. Discussed good edge cases around it.
Efficiently parse query strings from a given URL.
What’s a feature you think LinkedIn is missing?
Extend the String prototype in JavaScript and implement a custom function for repeating any string n times. Example: "abc".repeat(3) should give "abcabcabc". The interviewer asked to achieve this in O(log n) time complexity.
Given two DOM nodes node1 and node2, check if node2 is a descendant of node1 somewhere in the DOM. Focus was on efficient tree traversal and edge cases.
Design a system to display a blip on a world map every time someone joins LinkedIn. Discussed choosing between polling and sockets. Twist: fetch data only every 5 minutes, but still show a real-time view on the map.
Design a filters section similar to Amazon, covering aspects like fetching and storing filters, rendering and toggling them, syncing filter state with the UI, and making efficient POST requests on changes. Discussed debouncing in detail.
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.
Summary
I recently completed an interview process for a Senior Data Engineer (IC3) role at LinkedIn. The process included an Online Assessment, a Telephonic Screening, and five on-site rounds covering DSA, Data Manipulation, System Design, Technical Discussion, and a Hiring Manager interview. Overall, I felt the interviews went well, and I'm currently awaiting the final decision.
Full Experience
I interviewed for a Senior Data Engineer (IC3) position at LinkedIn. The process started with an Online Assessment on Hackerrank, which lasted 2 hours. I had to solve two Leetcode Medium DSA questions and two SQL medium questions. I successfully completed all four problems within the given time, passing all test cases.
Following the OA, I had a 1-hour Telephonic Screening. Two interviewers from the hiring team joined, and the emphasis was on optimizing code and queries. I was given one Leetcode Medium DSA question with follow-ups and one SQL Medium question focusing on window/rank functions, also with follow-ups. I felt this round went well and was confident about receiving an on-site invitation.
After receiving positive feedback from Round 0, HR scheduled my on-site interviews for a single day. Each interview round lasted one hour.
Round 1: DSA
In this round, I tackled a Leetcode medium question related to "top k elements," and I made sure to present an optimal approach. Additionally, I was presented with a scenario-based question where my choice of data structure and the complexities of various use-cases within that scenario were evaluated. I felt good about this round, rating it around 7/10.
Round 2: Data Manipulation
This round involved two scenarios with different dataset schemas. I faced multiple questions for each scenario, primarily dealing with timestamps and ranks. My task was to solve each use case using optimized SQL Queries or pyspark. I thought this round also went well, rating it 8/10.
Round 3: System Design / Data Architecture
Here, I engaged in an end-to-end data system design discussion, covering various use cases. The main focus was on ETL pipelines and data storage. We delved into how data would be stored and optimized for querying, discussing the scenario, multiple corner cases, and how to address them in the data architecture. I felt this was another solid round, rating it 7/10.
Round 4: Technical Discussion
This round involved discussing my technical projects. I shared challenges I faced while working on my current project and explained how I resolved them. We also covered multiple behavioral/technical questions related to project planning and feature designing/implementation. I felt this round went very well, rating it 8/10.
Round 5: Hiring Manager
The final round was with the Hiring Manager. This round primarily consisted of behavioral questions, discussions about my projects and skills, and back-and-forth communication regarding how things operate at LinkedIn. I was also asked about my motivations for choosing LinkedIn and my aspirations. Hiring Manager rounds are always crucial and can be tricky, so I'm never overly confident about them. I rated this round 7/10.
Overall, I'd rate my entire interview experience around 7.5/10. I might be under-estimating my performance, possibly due to hints I received from the interviewers. I'm currently waiting for the final decision.
Interview Questions (3)
During my telephonic screening, I was asked a medium-difficulty SQL question that required the use of window functions and ranking. There were also several follow-up questions.
In the DSA round, I encountered a LeetCode medium question focused on finding 'top k elements'. The expectation was to provide an optimal approach for solving it.
I was given a scenario to design an end-to-end data system. The discussion focused on various use cases, ETL pipelines, and data storage strategies. I had to explain how data would be stored and optimized for querying, including handling multiple corner cases within the data architecture.
Summary
I had a phone screen interview for a Senior Software Engineer position in Systems Infrastructure at Linkedin in Sunnyvale. The interview covered my project experience, core operating system concepts, Python language specifics, and a LeetCode algorithmic problem.
Full Experience
I recently participated in a phone screen interview with Linkedin for the Senior Software Engineer, Systems Infrastructure role in Sunnyvale. The interviewer started by asking me to walk through one of my chosen projects and discuss what I might have done differently in retrospect. Following that, we delved into a series of conceptual questions focused on operating systems, including the distinctions between processes and threads, mutexes versus semaphores, and an in-depth discussion on deadlocks, paging, and page faults.
The interview also covered specific Python language intricacies, such as the difference between the 'is' and '==' operators, and when to use 'copy' versus 'deepcopy'. Finally, I was given a LeetCode problem, Nested List Weight Sum II, which required an algorithmic solution.
Interview Questions (4)
Describe one project of your choice in detail. What aspects of it would you have done differently, and why?
Explain the differences between processes and threads. Discuss mutexes versus semaphores. What are deadlocks and how can they be prevented or handled? Explain paging and page faults in memory management.
Explain the difference between is and == operators in Python. Also, differentiate between copy and deepcopy operations for objects.
Given a nested list of integers, nestedList, where each element is either an integer or a list. The problem asks to return the sum of all integers in the list weighted by their depth. Unlike standard depth-weighted sums, here the weight is calculated from bottom to top: the deepest level integer has a weight of 1, the next level up has a weight of 2, and so on. This implies an integer at depth d in a list with maximum depth maxDepth will have a weight of maxDepth - d + 1.
Summary
I interviewed with LinkedIn for an SDE-3 backend role in Bangalore in December 2024. Despite successfully solving both coding problems in the first round, my application was unexpectedly rejected without any specific feedback.
Full Experience
Hey everyone, hope you're doing well! I currently work as an SDE-2 at Amazon and recently had the opportunity to interview with LinkedIn for an SDE-3 backend role. The recruiter reached out to me by email, and we had an initial call discussing my current roles and responsibilities, as well as the details of the position they were hiring for. They were particularly interested in whether I had dealt with concurrency issues in the past, so it's good to be prepared with specific instances.
Round 1
I was presented with two coding challenges. I managed to solve both problems within an hour, though I did require a small hint for the second one. I was quite hopeful for the subsequent rounds after this performance, but unfortunately, I was unexpectedly rejected without receiving any specific feedback on my interview.Interview Questions (2)
You're an usher at a theater, responsible for seating guests.
Given a row of seats represented as an array, where 1 indicates an occupied seat and 0 indicates an empty seat, determine whether you can seat a given number of people under the condition that no one wants to sit next to another person.
Implement a function that takes the seat arrangement and the number of people to be seated and returns whether it's possible to accommodate them.
A tournament tree is a binary tree where each parent node holds the minimum value of its two children. Given such a tree, find the second minimum value.
Constraints:
- Each node has either two children or none.
- Leaf nodes have distinct and unique values.
Summary
I recently interviewed for an SDE position at LinkedIn in Bangalore. My experience involved a phone screen, two DSA rounds, a system design round, and a hiring manager discussion. Unfortunately, despite my efforts, I received a rejection, primarily due to what I believe was my performance in the System Design round.
Full Experience
I was reached out by a recruiter on LinkedIn for an SDE role. I have 2.5 years of experience and currently work as a Software Engineer at a FAANG-level company, having completed my B.Tech from an NIT.
Phone Screen Round
The interview started with a discussion about my current project, followed by technical questions on Operating Systems, Java, JVM internals, and SQL. After about 15 minutes, the interviewer presented a medium-hard graph problem: finding a path for a knight on an infinite 2D grid from a start to an end point. I explained both DFS and BFS approaches, detailing why BFS would be more suitable here, and then implemented my solution. The interviewer seemed satisfied. Two days later, I was informed that I had cleared this round and would proceed to four more.
Round 1: DSA Round
This round was heavily focused on Data Structures and Algorithms. The first problem was a hard-level n-ary tree problem that required representing it as a graph to explore combinations for an optimal solution. I explained my approach and coded it, but couldn't find a way to further optimize the time complexity beyond evaluating all combinations, despite the interviewer's suggestion. The second problem involved powers and mathematical interpretation. I shared my approach, implemented the code, and solved it successfully.
Round 2: DSA Round
After introductions, we immediately delved into two DSA problems within an hour. The first was a tree problem requiring level order traversal and indegree calculations. I proposed multiple approaches, including reversing the level order traversal, before explaining the optimal one and implementing it. This took around 40 minutes. The second problem was a classic 1D DP problem using the pick-and-not-pick strategy. I quickly explained how to achieve O(1) space complexity and coded it, finishing just as the time ran out.
Round 3: High-Level System Design
Two interviewers conducted this round, asking me to design a job scheduling system. The core discussion revolved around scaling the solution, identifying bottlenecks, and addressing security concerns. It was a very interactive session with numerous follow-up questions on components like load balancers and API gateways.
Round 4: Hiring Manager Round
This 30-40 minute round involved general discussions about my typical day at work, the tech stack I've used, and my motivations for seeking a change from my current company.
Outcome and Reflection
Two days later, the recruiter informed me that the feedback was not positive. I tried to get more details on my performance but did not receive a response. Based on my assessment, I believe the System Design round might have been the reason for my rejection. While the experience was valuable, I felt the expectations in some rounds, like solving one hard and one medium-hard problem within an hour, were unrealistic. It felt like interviewers lacked empathy for time constraints. Nevertheless, it was a good learning opportunity to identify areas where I need to improve my efficiency and competence.
Interview Questions (2)
The problem was a medium-hard graph problem. It involved finding the shortest path for a knight on an infinite 2D grid from a given start coordinate to an end coordinate.
I was asked to design a job scheduling system. The discussion focused on scaling the solution, identifying potential bottlenecks, and addressing security concerns. We also discussed components like load balancers and API gateways, with the interviewers asking many follow-up questions during the design process.
Summary
After enduring a challenging period of rejections from several top companies, I successfully secured a Software Staff Engineer (SSE) offer from LinkedIn. This experience reinforced the importance of persistence and a relaxed mindset during the interview process, ultimately leading to a rewarding outcome.
Full Experience
After facing constant rejections from March this year from companies like Amazon, Google, Microsoft, Uber, Meta, Stripe, and Atlassian, I had zero expectations for the LinkedIn interview. I realized I wasn't handling rejections well and decided to take a month-long vacation to reset. I returned with a fresh perspective, deciding to just put in the effort without worrying about the outcome. Luck certainly played a role in me getting this offer before the year ended. I approached the LinkedIn interviews with a very relaxed mindset.
Here’s how my interview process unfolded:
Round 1 - Technical Phone Screen
This round involved two coding questions. The first was the classic Maximum Subarray Sum (Kadane’s Algorithm), with no modifications. The second was a tree-based data structure question, but unfortunately, I don't recall the exact problem. I received a strong hire verdict for this round.
Onsites - Round 1 DSA
I was given two questions in this round. One was very similar to K Closest Points to Origin on LeetCode. The second was a hard array question that I also can't recall. I managed to solve the first, but for the second, I could only discuss my approach as I ran out of time.
Onsites - Round 2 DSA
This was the most challenging round for me, featuring two hard questions. The interviewer was very kind and extended the time by 15 minutes. The first question was exactly Sliding Window Maximum, which I was somehow able to implement. The second question was quite challenging: finding the top k elements after multiplying values from two arrays (e.g., arr1 = [1, 2, 5, 9], arr2 = [1, 3, 4, 6]). The interviewer explicitly stated that the brute-force approach of multiplying all pairs was not expected. I could only discuss my approach before time ran out.
Onsites - Round 3 Host Leader
This was a typical hiring manager round, focusing on my experience and motivations. It went quite well.
Onsites - Round 4 Technical Communication
In this round, I was asked to explain the most challenging project I had worked on. I articulated the complexities and my solutions effectively, and this round also went very smoothly.
Onsites - Round 5 System Design
The system design problem was to design a Top K system to gather exceptions from different services and display the top K exceptions within a 24-hour window. I discussed various architectural approaches and data pipelines, and I felt this round went pretty well too.
I was ultimately selected and will update compensation details soon. I hope my experience helps others facing rejections; persistence is truly underrated, and sometimes, a bit of luck plays its part.
Interview Questions (6)
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. The problem was exactly the same as the standard Kadane's Algorithm problem with no modifications.
Given two arrays, arr1 and arr2, find the top k elements from the list of all possible products where each product is formed by multiplying one element from arr1 and one element from arr2. The brute force approach of multiplying all pairs and then finding top K is not expected. For example, if arr1 = [1, 2, 5, 9] and arr2 = [1, 3, 4, 6], find the top k products.
Describe and explain the most challenging project you have worked on, including the problems faced and how you overcame them.
Design a system to gather exceptions from various services and display the top K most frequent exceptions within a 24-hour time window. I discussed different architectural approaches and data pipelines.
Preparation Tips
My preparation involved solving approximately 900 LeetCode questions over time. Despite facing many rejections previously, for this particular interview, I approached it with a relaxed mindset, focusing on putting in effort without undue stress about the outcome, which I believe contributed to my success.
Summary
I recently interviewed at LinkedIn for an SSE role in India. The interview process covered a technical screening, two coding rounds, a system design challenge, and a behavioral discussion, focusing on a mix of data structures, algorithms, and system architecture.
Full Experience
My interview journey at LinkedIn for the SSE position in India involved several distinct rounds.
The Tech Screening started with theoretical questions about operating system concepts like processes vs. threads and virtual memory. Following this, I was asked to design a data structure capable of adding an element and removing a random element, both in O(1) time. I explained a solution involving an ArrayList where a random element is swapped with the last element before removal.
Coding Module 1 presented two problems. The first involved connected components of a graph, which I was able to solve. The second was the well-known Celebrity Problem. I could only come up with an O(n^2) brute-force solution, and an optimal solution was expected.
Coding Module 2 also had two problems. The first was to find the k closest elements to a target in a Binary Search Tree (BST) within O(n) time and O(k) space. I struggled with this, contemplating an in-order traversal with a k-size Deque but couldn't finalize it. The second problem was to design a data structure that supports incrementing/decrementing keys and retrieving keys with max/min frequency in O(1) time. I approached this using concepts similar to the LRU cache problem, and believe I provided a valid solution.
The Complex System Design round focused on designing a Metric Collection System, specifically emphasizing the data store component.
Finally, the Host Manager round was a general discussion about my past projects, diving deep into a recent one, my role, impact, and the challenges I faced.
Interview Questions (5)
Design a data structure that can perform the following operations in O(1) time:
- Add an element
- Remove a random element
Identify the 'celebrity' in a group of people, where a celebrity is someone who is known by everyone else but does not know anyone. The problem typically involves querying a knows(A, B) function to determine if A knows B.
Given a Binary Search Tree (BST) of integer numbers and a target value, find the k closest points (nodes) to the target. The target may not be present in the BST, and 'closest' refers to the absolute distance. The solution should aim for O(n) time complexity and O(k) space complexity.
Example:
10
/
5 20
/\ /
1 6 19 35
7
Given target=8, and k=3, it should return 6,7,10.Given
target=6, and k=3, it should return 5,6,7.Implement a data structure, AllForOne, that supports the following operations in O(1) time:
incrementKey(String key): Increments the frequency of a key by 1. If the key is not present, adds it with frequency 1.decrementKey(String key): Decrements the frequency of a key by 1. If its frequency becomes 1, removes the key. Do nothing if the key is not present.getMaxKey(): Returns one of the keys with the maximum frequency, or an empty string if no keys are present.getMinKey(): Returns one of the keys with the minimum frequency, or an empty string if no keys are present.
Design a system for collecting metrics, with a particular focus on the data storage component.
Summary
I recently went through an on-site interview process with LinkedIn for a Systems and Infra role. The interview included multiple rounds covering coding, algorithms, system design, and behavioral aspects, across a phone screen and four on-site rounds.
Full Experience
My interview process began with a phone screen. The technical part involved a problem called RetainBestCache, where I was asked to make it thread-safe and identify potential race conditions for each locked section. Additionally, we discussed fundamental operating system concepts such as the differences between processes and threads, the roles of heap and stack memory, and methods for inter-process communication.
The first on-site round was dedicated to coding and algorithms. I was presented with two problems: Closest Binary Search Tree Value II and Paint House.
The second on-site round was with a hiring manager. This round focused on behavioral questions and an in-depth discussion about my past projects and experiences.
The third on-site was another coding round. Here, I had to solve Number of Islands and Binary Tree Upside Down.
Finally, the fourth on-site was a system design round. We started with approximately 10 minutes discussing my previous projects. Following that, the core problem involved designing a high-level system for scheduling cron jobs with fixed intervals.
Interview Questions (8)
I was asked to design a RetainBestCache and then make it thread-safe. A crucial part of the problem was to provide specific examples of race conditions for each section of the code where I applied a lock.
This part of the phone screen involved discussion-based questions covering foundational operating system concepts. We discussed the distinctions between processes and threads, the allocation and usage of heap versus stack memory, and various mechanisms for inter-process communication.
There are a row of n houses, each can be painted with one of three colors: red, blue or green. The cost of painting each house with a certain color is different. I needed to paint all the houses such that no two adjacent houses have the same color. I had to find the minimum cost to paint all houses.
This round primarily consisted of standard behavioral interview questions. Additionally, there was an in-depth discussion about my past projects, where I elaborated on my contributions, challenges faced, and lessons learned.
Given an m x n 2D binary grid which represents a map of '1's (land) and '0's (water), I needed to count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. I could assume all four edges of the grid are all surrounded by water.
The system design question focused on creating a High-Level Design (HLD) for a system capable of scheduling and executing cron jobs with fixed intervals.
Summary
I interviewed for a Senior Software Engineer position at LinkedIn in Bangalore in 2022. The process involved multiple rounds covering system design, data structures, algorithms, and concurrency. Unfortunately, I was rejected, primarily because I struggled with finding all palindromic subsequences.
Full Experience
My interview process at LinkedIn started with a telephone screen. After a brief introduction, I was asked to draw a High-Level Design (HLD) of the services I was currently working on. We delved into details such as TPS in each service, queuing write semantics, DB consistency levels, authorization and authentication mechanisms (whether home-grown or LDAP), and challenges I faced in my projects. Following this, I was tasked with designing a thread-safe HashMap from scratch.
Round 1 focused on algorithms. I was given a list of strings denoting function names, 'START' or 'END' markers, and timestamps. The problem required me to calculate the inclusive and exclusive time for any given function call, considering nested calls. The second question in this round involved checking if a given list of undirected edges formed a valid tree among 'n' nodes.
Round 2 presented two more algorithmic challenges. The first was to order tree nodes based on a 'falling' sequence, where child nodes fall first, followed by their parents whose children have already fallen. The second, and ultimately my downfall, was to find all palindromic subsequences in a string.
Round 3 was a system design interview. The scenario involved a large deployment with hundreds of machines, each exposing thousands of statistics as [source, metric-name, value] tuples. I needed to design a scalable system to collect and aggregate these tuples, with consumers like engineers needing to see application latency over a month, an alert service, and the ability to query metrics for specific sources within a time range.
Finally, Round 4 was a concurrency-focused round. After some basic questions, I was asked to design a blocking queue that would be written to by 'n' writers and read by '1' reader. This problem was then extended to support 'n' readers and 'n' writers.
Despite my efforts, I was rejected because I couldn't solve the 'find all palindromic subsequences' problem.
Interview Questions (8)
The interviewer asked me to draw a High-Level Design (HLD) of the current services I am working on. We then discussed aspects like TPS in each service, queuing write semantics, database consistency levels, authorization and authentication mechanisms (home-grown or LDAP etc), and challenges faced in current projects.
I was asked to design my own thread-safe HashMap. The code I provided was:
class HashMap {private static int bucketSize = 1000; List<Entry>[] map = new List[bucketSize];//value; public void put(String key, String value) { int idx = hashCode(key, bucketSize); synchronized { if(map[idx] == null) map[idx] = new ArrayList(); for(Entry e : map[idx]) { if(e.key == key) { e.value = value; return; } } map[idx].add(new Entry(key, value); } } public String get(String key) { int idx = hashCode(key, bucketSize); List<Entry> list = map[idx]; if(list==null) return "Key not found"; for(Entry e : list) { if(e.key == key) return e.value; } return "Key not found" }}
public class Entry { String key, value; public(String key, String value) { this.key = key; this.value = value; } }
I was given a list of strings, each denoting a function name, a 'START' or 'END' marker, and a timestamp. Calls can be nested, and one function can call child functions. Inclusive time is defined as all the time spent on a particular function, including time spent on its child calls. Exclusive time is defined as the time spent on a particular function only, excluding time spent on its child calls. For example, if function 'abc' starts at 100 and ends at 200, and a child function starts at 150 and ends at 180, then inclusive time for 'abc' is 200-100=100, while exclusive time for 'abc' is (200-100) - (180-150) = 70. I needed to figure out the inclusive and exclusive time for any given function call from such a list.
Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), I had to write a function to check whether these edges make up a valid tree.
For example:
Given n = 5 and edges = [[0, 1], [0, 2], [0, 3], [1, 4]], return true.
Given n = 5 and edges = [[0, 1], [1, 2], [2, 3], [1, 3], [1, 4]], return false.
I was asked to order tree nodes in the sequence in which they would fall. The rule was that child nodes fall first, and then parent nodes fall only after all their child nodes have already fallen.
The problem was to find all palindromic subsequences in a given string.
I was presented with a scenario involving a large deployment with hundreds of machines, each exposing thousands of statistics, represented as [source, metric-name, value] tuples. The task was to design a system to collect and aggregate these tuples in a scalable manner. The main consumers for this system included engineers needing to view application latency over the last month, an alert service for setting up alerts, and the ability to query metric values for specific sources within a given time range (t1 to t2).
I was asked to design a blocking queue that supports n writers and 1 reader. This problem was then extended to support n writers and n readers. My approach included the following Java code:
import java.util.PriorityQueue; import java.util.concurrent.Semaphore;public class BlockingQueue {
PriorityQueue heap; Semaphore read; Semaphore write; BlockingQueue() { write = new Semaphore(1); read = new Semaphore(0); this.heap = new PriorityQueue<Tuple>((a,b) -> a.key - b.key); } public void write(Tuple tuple) throws InterruptedException { synchronized (heap) { write.acquire(); heap.add(tuple); write.release(); read.release(); } } public Tuple read() throws InterruptedException { read.acquire(); synchronized (heap) { Tuple t = (Tuple)heap.peek(); heap.poll(); return t; } }}
public class Tuple {
int key; int value; public Tuple(int key, int value) { this.key = key; this.value = value; }
}
Summary
I'm sharing my interview experience at LinkedIn for a Software Engineer position in Bangalore. I went through an Online Assessment and five onsite rounds. Despite clearing the coding rounds, I was unfortunately rejected due to my performance in the system design round.
Full Experience
I recently completed my job hunt and wanted to contribute back by sharing my interview experience at LinkedIn. I interviewed for a Software Engineer role in Bangalore, with approximately 3.9 years of experience.
Online Assessment: 90 minutes, 4 questions
This round consisted of four questions. I encountered problems like Paint House and Minimum One Bit Operations to Make Integers Zero. Additionally, there was an easy question about finding the max of power and another to find the length of the longest substring with at most K normal characters.
Onsite Interviews: 5 rounds on a single day
All onsite rounds had two interviewers.
Round 1: Coding
I was asked to solve problems such as Find the Celebrity and Binary Tree Upside Down.
Round 2: Host Manager
This round involved a briefing about the team I might be joining, followed by questions about my past work, current role, and responsibilities at my previous company.
Round 3: Coding
In this coding round, I tackled Find K Closest Elements and a problem involving transforming word1 to word2 using a dictionary, with only one letter change allowed per transition.
Round 4: Technical Communication
This round primarily focused on a detailed discussion around my current projects.
Round 5: System Design
I was challenged with designing a stats collector capable of showing the top 200 queries executed in the last 24 hours, keeping in mind a very large traffic volume.
Unfortunately, I could not perform well in the system design round, which ultimately led to my rejection.
Interview Questions (8)
Find the length of the longest substring with at most K normal characters.
Transform word1 to word2, using a dictionary and allowing only one letter change per transition.
Design a stats collector that shows the top 200 queries executed in the last 24 hours, considering very large traffic.
Summary
I interviewed at Linkedin for a Senior Software Engineer (AI/ML) role in Seattle. Despite receiving an offer, I ultimately declined it due to a down-level from Senior Software Engineer to Software Engineer.
Full Experience
I had an onsite interview at Linkedin for a Senior Software Engineer (AI/ML) position. The interview process consisted of several rounds:
ML Round 1: This was an open-ended problem focused on a specific Linkedin product. I found it challenging to grasp the problem initially, which consumed a significant amount of my time. We then delved into various use-cases and strategies for data collection and preparation, concluding with a discussion on model deployment and feedback loops.
ML Round 2: This round involved both coding and discussion. One problem was a modification of a binary search problem, which I hadn't encountered on Linkedin before. There was also a problem related to large-scale random sampling, described as a modification of Random Pick with Weight, which I struggled with.
ML Round 3: This round required me to derive a modified popular ML theorem. I had difficulty understanding the problem statement, and the derivation itself took a considerable amount of time. We also discussed real-world examples and potential issues a data scientist might face, which was outside my expertise and took me a long time to fully comprehend.
ML Round 4: This was with an engineering manager. The discussion centered around my past projects, experiences, challenges faced, and how I resolved conflicts. We also tackled an open-ended problem related to the manager's team, discussing trade-offs and other relevant aspects.
Coding Round 5: This round was quite straightforward. I was asked to:
- Detect cycle in an undirected graph
- Detect cycle in a directed graph
- Solve a problem related to Permutation in String
Ultimately, I received an offer, but it was for a down-leveled position as a Software Engineer instead of Senior Software Engineer. Consequently, I decided to decline the offer.
Interview Questions (4)
I encountered a problem that was a modification of the standard Random Pick with Weight. It involved large-scale random sampling, and I struggled significantly to even understand the approach, let alone solve it.
I was asked to implement an algorithm to detect if a cycle exists within an undirected graph.
I was tasked with detecting a cycle within a directed graph.