I interviewed with Indeed in Sept-October and my experience was fantastic like one of the best out of all the firms that I interviewed with.
Phone screen with K*r*t -- I don't remember the exact questions but they asked questions related to system design and architecture for the first 20 mins. Later on, I solved 2 DSA questions fully and started with the 3rd question when the time ran out. They want us to solve as many questions as possible in the 30-35 mins that we get for DSA so if anyone is able to solve 1 question fully and 2nd one partially, it's pretty much sure that you've passed the K*r*t round.
After 2 days, I got to know from the recruiter that I had cleared the K*r*t round and they would be scheduling next set of interviews. At Indeed, they take onsite rounds in 2 phases
--
Phase 1 Onsites
Round 1 (DSA) -- It was a question related to storing a binary tree efficiently in memory, i.e. normally when we create a struct TreeNode, we store both the left and right pointers and the value. The interviewer wanted me to optimize the space being used so I suggested that we can store the binary tree as an array. The rest of the discussion revolved on this approach where we discussed about complete and sparse trees.
Round 2 (System design) -- I had to design a company review system for Indeed. It's a commonly asked question and I think I did fairly well in this one. The interviewer was also quite good and he helped me steer through it...we discussed the requirements, different services, API contracts, DBs, and any tradeoffs that I was making.
The recruiter contacted me 2 days later that I had cleared the phase 1 of onsite rounds and that they want to continue with 2nd phase of onsites.
--
Phase 2 Onsites
Round 1 (DSA) --
Okay, now this was a HARD question. Like they took up a HARD level leetcode question and modified it. Let's look at the question:
Given m sorted lists with each having an average size of n (no duplicates within the same list), find out the most frequently ocurring k elements and return them sorted by the frequency.
Note: Duplicates don't occur in the same list, but they can surely come up across the lists.
Eg. m = 4, k = 2
[1, 2, 4, 8]
[1, 2, 3]
[1, 3, 5, 11, 12, 16]
[1, 2]
Answer: [1, 2]In the above question, we have to return a list containing the K most frequent elements sorted by the frequency.
Now, the naive way to solve it is by iterating over all the lists and storing their frequency in a map. This solution will have TC O(m * n) and SC O(m * n). I gave this brute force solution firstly and the recruiter immediately asked me the follow-up:
What if the lists that we have are huge...so that all the lists may not even fit on a single node. He wanted me to optimize the SC.
I gave a solution using 2 heaps which had a space complexity of O(m + k) and this was the optimal one. I coded it up within time and then we discussed a few follow-ups to this.
Round 2 (Code review) --
This round is unique to Indeed. They give you access to a link where we can see a side-by-side diff of a PR with a couple of files. I chose my language as Java and I had to put comments to that PR like I normally would be doing while reviewing a PR.
I did fairly well but TBH I'm not so good at Java even though I use it at work. This one went okay-ish.
Round 3 (Resume deep-dive) --
This round was taken by a senior engineering manager who asked me to pick up one of the projects that I had worked upon and explain it in-and-out. I had done a lot of preparation for such rounds because of LPs so this one went well too.
Round 4 (Closing round) --
This one was taken by Director of Engineering and he asked me some basic behavioural questions and asked me about the whole interview process and how it went. We discussed a lit bit about the team which he heads and it was just a 30 mins round and I really liked the director and the team.
--
After 2 days, the recruiter verbally told me that the response was positive and that they would be rolling out an offer. I shared the compensation of the other offer that I had and it took another 10 or so days for her to get an official offer letter out.
Thankfully, the offer was rolled out just before Indeed announced a hiring freeze and they specifically told that they won't be rescinding any official offers. I accepted this offer the moment it came out since the recruiter had told me that there was pretty much no scope of negotiation and even I too was tired of giving interviews so I just verbally accepted the offer. (Compensation post -- https://leetcode.com/discuss/compensation/2800651/indeed-sde2-hyderabad-india)
As of today, I've completed the background verification and I'll be joining Indeed this month.
If you have come this far, thank you so much for reading and keep practicing folks...it does pay off in the end. :-)
P.S. For anyone curious, this is how my LC stats look like (and I'm definitely not a competitive coder):

