The interview is divided into 2 rounds (big second round).
- First round: Karat
- Second round: Loop Interview (5 rounds) + closing round
Karat interview (60 minutes)
You have 60 minutes for 2 sessions: a domain knowledge session (which takes 10 minutes) and a live coding session(the rest of your time). In the first session, you can choose 3 out of 5 topics. The topics are very wide but it shouldn't be a big problem if you have real-world experience. Do not spend more than 10 minutes in this round so that you can have maximum time in the coding session. As long as your answers are accurate, it doesn't have to be lengthy.
Please also check out another blog for more about the coding session.
Loop Interview x 5
While they might suggest you finish the loop interview in a day, I would suggest you avoid it. Because it’s draining, give yourself a break between the interviews.
Whiteboard coding x 2 (60 minutes x 2 )
Apparently, you have to be excellent on both these rounds to get a "yes". leetcode can be your friend but from a few sources, Indeed coding interview is slightly different from a typical leetcode question, ie inverted a binary tree. Firstly, it's whiteboard coding so because your code does not run, you have to explain line by line to make sure your code runs in their head. Secondly, they focused more on real-world scenarios. For example: giving a stream of data, how do we aggregate the metrics? When giving a large list of raw data, how do we make it efficient to search from it? How do you make one data structure memory efficient? The key here is to practice data structure and algorithms. Besides fundamental data structures like an array, hashmap etc, it's advised to practice more on more advanced data structures such as queue, heap, and bitmap.
Lastly, you can spend a little amount of money to purchase Indeed Coding Question Preparation curated by me. It helps you to revise most of the advanced data structures. I have been collecting feedback from candidates and it has been positive.
Resume deep dive (60 minutes)
You are expected to come up with your past project and use that to show them your experiences and achievements. The key here is to choose your most successful project. Some examples might be:
a multi-team project that you helped to manage, coordinate and lead. Indeed, while they keep their team small, it's natural that this results in increased difficulties in a larger project that needs collaboration and coordination from a different team. This will be something they value.
legacy system migration. Indeed has been around for a long time, so as with many big tech companies, there is always a legacy system and always a migration need.
These are just my recommendation. Since everyone has a different experience, you will have a different story to tell.
Architecture (60 minutes)
Indeed doesn't do a "Design a Twitter" style system design interview. Instead, they will pick one part of their system for you to discuss. If you are looking for inspiration, go and play with https://indeed.com. Things that you might want to put in mind are:
- remember to discuss tradeoffs such as relational vs non-relational database, stream vs queue (Kafka is widely used inside Indeed)
- be very mindful about scaling for every part of your system. Even though you might think your system is a read-heavy system, it's important to use a small amount of time to mention how will you scale your writing as well
Do not spend too much time on details and edge cases because they will take away a lot of your time to explain. Discussion around tradeoffs and scaling is far more important and you can spend more than 60 minutes just focusing on those two.
Code Review (60 minutes)
You might think this is an "easy" round but I have heard candidates that failed despite that they think it was easy. This is a round that you cannot prepare for and totally depend on your code review experience. I think this is something every company should do because it is what we do in real life. The only tip I can give is to use your 60 minutes wisely. You should cover most parts of the code, and as you do you will be running out of time.
Closing round (30 minutes)
This is a non-technical round for you to reflect on your interviews, so chill and relax. This is also a good time for you to tell them what kind of team you are interested in. If you are qualified (congrats !), you will have a team matching meeting with a few team managers (which will take a couple of hours of your time).
It will be a long process, think 2 to 3 months. You probably will want to spend more than a month to prepare as well. After that, not only that you have to wait for a long time to schedule your meeting (they have a long long queue, hopefully, they can scale their interview queue like their Kafka cluster), but there are also meeting with the recruiter (1+ hour) which they explain this long process to you. On top of that, you will have 6.5 hours of interviews. If you make it, you will have to spend some time with your future potential managers.