Tip 1: Participate in online coding contests.
Tip 2: Work on projects.
Tip 3: Revise core computer science subjects.
Tip 1: Online Coding Profile: Include your online coding profile link to showcase your problem-solving skills and coding proficiency, especially if you've solved a substantial number of questions or achieved a high rank.
Tip 2: Strong Projects: Highlight impactful projects with concise descriptions that demonstrate your technical skills, problem-solving ability, and relevant technologies used. This adds depth to your experience and demonstrates hands-on expertise.
The first round had two hard-level coding challenges to solve within one hour, focusing on math, dynamic programming, graphs, and trees. As this was an elimination round, I was required to provide the most optimized solution for both problems. I solved both questions in 40 minutes and received a call from HR to proceed to the next round.



The given linked lists may or may not be null.
If the first list is: 1 -> 4 -> 5 -> NULL and the second list is: 2 -> 3 -> 5 -> NULL
The final list would be: 1 -> 2 -> 3 -> 4 -> 5 -> 5 -> NULL
Brute Force Method
Recursive Merge
Iterative Merge
In-Place Merge



For the given binary tree and X = 9
{1, 3, 6} is a valid triplet because 6 is a node whose parent is 3 and grand-parent is 1. Also, the sum of these nodes is 1 + 3 + 6 = 10 which is strictly greater than X = 9.
Steps involved in solving the problem:
Create an empty adjacency list ‘T’ to represent the tree structure. For each edge in the tree, add the corresponding vertices to each other’s adjacency lists to represent the connections.
Initialize the variable ‘ans’ to n * (n – 1) * (n – 2) / 6, which represents the total number of tuples (i, j, k) with 1 ≤ i < j < k ≤ N.
Initialize a vector ‘sz’ of size ‘n’, where each element is initialized to 1. This vector will be used to store the size of each subtree rooted at every vertex.
Define a recursive function ‘dfs’ that takes two parameters ‘v’ (current vertex) and ‘pre’ (the parent vertex). The purpose of this function is to calculate the size of each subtree rooted at each vertex and update the ‘ans’ variable accordingly.
Inside the ‘dfs’ function, iterate through the adjacent vertices of ‘v’ (excluding the parent vertex ‘pre’). For each adjacent vertex ‘c’, recursively call the ‘dfs’ function with ‘c’ as the current vertex and ‘v’ as the parent vertex.
Calculate the ‘sum1‘ and ‘sum2‘ values for the current vertex ‘v’ based on the sizes of its subtrees and update the ‘sz’ vector accordingly.
Decrement ‘ans’ by (sum1 * sum1 – sum2) >> 1. This step removes the tuples (i, j, k) that form a simple path containing all three vertices i, j, and k in the tree.
Call the ‘dfs’ function with the starting vertex as 0 (or any other appropriate starting vertex) and the parent vertex as -1 (or any other value indicating that there is no parent).
Finally, print the ‘ans’ value, which represents the number of tuples (i, j, k) that satisfy the condition of not having a simple path containing all three vertices i, j, and k in the tree.
This round lasted 1.5 hours and was conducted with the Team Lead. It was the toughest round for me, focusing on JavaScript and ReactJS. I was asked medium-to-hard-level JavaScript questions and had to design something on the spot.
I managed to solve most of the tasks, and the next day, I received a call from HR for the third round.
I was asked to design the splitwise.
Tip 1: Clarify Requirements: Always ask clarifying questions to fully understand the problem and its constraints before designing.
Tip 2: Prioritize Scalability: Choose designs that can handle growing user bases, data volumes, and traffic patterns.
Tip 3: Explain Trade-offs: Clearly discuss the pros and cons of your design choices to showcase your understanding of flexibility and limitations.
This round lasted about 1 hour with the Engineering Manager. The topics included JavaScript output, AWS, core web vitals, and optimization techniques. We had an amazing discussion, and I managed to answer most of the questions. After an hour, HR called me for the 4th round.
I was asked to design the cricbuzz and some questions related to JavaScript.
Clarify Requirements: Always ask clarifying questions to fully understand the problem and constraints before designing.
Prioritize Scalability: Choose designs that can handle increasing user bases, data volumes, and traffic patterns.
Explain Trade-offs: Discuss the pros and cons of your design choices to demonstrate your understanding of flexibility and limitations.
This was a 40-minute round with the DOE of the company. We discussed my previous work experience and the best work I did at my last company. The interviewer was very knowledgeable, asking about APIs, network calls, Lighthouse LCP, and more. I was able to answer most of the questions, and after two days, I received a call from HR for the 5th round. ️
This was a 40-minute round with the DOE of the company. We discussed my previous work experience and the best work I did at my last company. The interviewer was very knowledgeable, asking about APIs, network calls, Lighthouse LCP, and more. I was able to answer most of the questions, and after two days, I received a call from HR for the 5th round.
This 40-minute round focused on the tech stack used at the company, my previous work, and how well I would fit into the company culture. I did well in this round too, and shortly after, I was invited to the HR round.
This 40-minute round focused on the tech stack used at the company, my previous work, and how well I would fit into the company culture. I did well in this round too, and shortly after, I was invited to the HR round.

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?