Real, anonymized candidate journeys from recent (2025) LinkedIn engineering loops β round by round, including what was asked, how the candidate approached it, and the outcome.
One complete journey, start to finish
Round 1 β Screening
A recruiter messaged me on LinkedIn itself, and after a short call the screening round was set up for the following week, one hour on video. The first half was about my career. The interviewer asked me to walk through my last two roles, then asked about a time I had a conflict with a teammate and how I handled moving between projects when a team was reorganised. Then he shared a coding pad and asked me to design a stack with push, pop, top, peekMax and popMax. I started with two stacks, one for values and one for the running maximum, and got the first four operations working in a few minutes. For popMax I popped into a buffer until I hit the max, removed it, and pushed the buffer back. He asked for the complexity, I said O(n) for popMax, and he asked if I could do better. I described a doubly linked list plus an ordered map to get O(log n) and sketched the node structure. We ran out of time before coding it, but the recruiter told me the next day I had a strong hire.
Round 2 β DSA (Apps track)
The next round was about a week later, also one hour. The interviewer pasted the problem: given two strings, find the smallest window of the first that contains every character of the second. I said it was a sliding window with a frequency map, wrote the expand-right, shrink-left loop, and tested it on the sample they gave, which came out as BANC. That took about twenty minutes. Then she said, now treat the first string as circular, so the window can wrap around from the end back to the start. I paused for a bit and then said I could double the string and run the same routine, but cap the window length at the original length so I never counted a character twice. She asked what happens if the best window starts in the second copy, and I explained that it would be the same as one starting in the first copy, so I only need to try start positions in the first half. I wrote that version, walked through one wrap-around example by hand, and we spent the last few minutes on complexity.
Round 3 β DSA & Algorithms
Round three was two days after round two. The problem was word ladder: shortest chain from one word to another, changing one letter at a time, every step in the dictionary. I wrote the plain BFS first, where for each word I compared it against every other word, and said it was O(N squared times M). The interviewer said that was correct but asked me to bring the time down. I suggested precomputing wildcard patterns, so hot becomes *ot, h*t and ho*, and bucketing words by pattern. Then each BFS step only looks up M patterns instead of scanning the list. I rewrote the code with the buckets and traced hit to cog on his example, getting 5. He then asked a second, shorter question about the distance between two strings using two pointers, which I finished with about ten minutes to spare. He asked a couple of questions about how I would test the ladder code and that was the end.
Round 4 β System Design
The design round was the following Monday, one hour. The prompt was to design an in-memory cache with a configurable capacity and a pluggable eviction policy. I asked whether capacity meant entries or bytes and whether multiple threads would use it, and she said assume both. I drew the classes on the whiteboard tool: a Cache holding a hash map of entries, a CapacityManager that says when there is no room, and an EvictionPolicy interface with LRU and LFU as separate implementations. I explained the put path step by step, including the eviction loop, and mentioned a read-write lock first and lock striping if contention became a problem. Around the half-hour mark she said, now this has to run across many nodes. I added a router with consistent hashing in front of the nodes. Then she asked what happens when one key gets most of the traffic. I talked about detecting hot keys with counters, replicating them to several nodes, and a small near cache in the client. We ended by comparing exact LRU with the sampled version Redis uses.
Round 5 β Craftsmanship / Behavioral
This round was a few days later and had no coding at all. The interviewer said upfront that it was about craftsmanship, and then went through a list of eight or nine scenario questions one after another. How do I decide when a piece of code is good enough to ship. What do I do when a review drags on because two people disagree about style. How I have mentored a junior engineer who was struggling. What I did when I inherited a legacy service with no tests and had to change it safely. For each one I gave a short real example from my current job, said what I did first, what happened, and what I would do differently. She took notes and asked one or two follow-ups on each, mostly asking for more detail on the outcome. It felt closer to a values interview than a technical one. The whole thing took about fifty minutes and ended on time.
Round 6 β Hiring Manager
The last round was with the hiring manager, about an hour. He asked me to pick one project where I had led the technical direction and walk him through it from the start. I described how the project began, how I split the work across the team, one decision that went wrong and how we recovered, and how it ended. He asked questions along the way about how I handled a disagreement with another senior engineer and how I kept the team aligned. That took around forty minutes. Then he said we had ten or fifteen minutes left and asked me to sketch a notification system at a high level. I covered events going into a queue, a fan-out step that works out who receives what, deduplicating and batching repeated events, delivering through push, email and in-app, and keeping read and unread state per user. It was quick and conversational rather than a full design. About a week later the recruiter called with the offer.
Key takeaway: At the Staff level, behavioral and leadership rounds carried as much weight as the coding rounds β have concrete stories ready, not just algorithms, and expect system design to extend past a single-node design into distributed tradeoffs.
More real interview journeys
The first round of each journey below is shown in full; the rest of each candidate's journey β every remaining round, verbatim β is part of the Placement-Ready PYQ Kit.
Phone Screen
I applied through a referral and the phone screen was scheduled about ten days later, 45 minutes on a shared coding link. The interviewer gave me the first problem right away: a row of seats, some already taken, and I had to check whether a given number of new people could sit with no two people next to each other. I recognised it as the can-place-flowers pattern, walked through the greedy idea of taking a seat whenever both neighbours are empty, and coded it in about ten minutes. He asked about the edges of the row and I fixed a boundary check. The second problem was a nested list of integers where each number is multiplied by its depth, and he asked me to do it in a single pass. I first said the two-pass version, then he pushed for one pass, and I used a running sum that gets added again at each level so deeper numbers count more. I tested it on a small example. Both problems finished in time and I got the next-round confirmation the following week.
π 5 more rounds β continue this journey in the full kit

