Tip 1: Practice problem-solving regularly and learn to approach questions step by step, especially in coding and system design scenarios.
Tip 2: Strengthen core fundamentals in JavaScript and React, and focus on explaining concepts clearly using real project examples.
Tip 1: Focus on highlighting relevant skills and projects, and clearly mention your role, responsibilities, and impact in each project.
Tip 2: Keep the resume concise and well-structured, using bullet points and quantifiable achievements to enhance readability.
Timing: The interview was conducted during normal working hours, not late at night.
Environment: The environment was calm, professional, and well-organized, making it comfortable to communicate.
Other activities: The interview mainly focused on technical discussion and problem-solving, with no additional activities beyond the interview process.
Interviewer: The interviewer was professional, polite, and supportive, allowing sufficient time to think and explain answers.



Input: ‘N’ = 5, ‘TARGET’ = 5
‘BOOK’ = [4, 1, 2, 3, 1]
Output: YES
Explanation:
Sam can buy 4 pages book and 1 page book.
First, I sorted the array in ascending order to apply the two-pointer technique efficiently.
I initialized two variables (pointers): one at the start of the array (left) and one at the end of the array (right).
I calculated the sum of the values at both pointers.
If the sum was equal to the target, I returned true.
If the sum was smaller than the target, I moved the left pointer to the right to increase the sum.
If the sum was greater than the target, I moved the right pointer to the left to decrease the sum.
I repeated this process until the pointers crossed. If no matching pair was found, I returned false.



The width of each bar is the same and is equal to 1.
Input: ‘n’ = 6, ‘arr’ = [3, 0, 0, 2, 0, 4].
Output: 10
Explanation: Refer to the image for better comprehension:

You don't need to print anything. It has already been taken care of. Just implement the given function.
First, I understood that the water trapped at any position depends on the maximum height on its left and right sides.
I initialized two pointers: one at the start of the array (left) and one at the end (right).
I also maintained two variables to track the maximum height seen so far from the left and from the right.
I compared the heights at both pointers, as the smaller height determines how much water can be trapped at that position.
If the left height was smaller, I moved the left pointer forward and updated the left maximum.
If the current height was less than the left maximum, the difference contributed to the trapped water; otherwise, I updated the maximum height.
I followed the same logic on the right side when the right height was smaller.
The second round focused mainly on in-depth technical discussions. It involved explaining project architecture, system design concepts, and questions related to microservices. The interviewer evaluated my understanding of design decisions, scalability, and the interactions between different components in a real-world application. This round required greater clarity in architectural thinking and communication compared to the first round.
In my project, I needed to manage real-time chat functionality, allowing users to send and receive messages instantly. The main challenge was ensuring low latency, reliable message delivery, and proper synchronization between users. This involved handling real-time connections, broadcasting messages, and maintaining consistency across clients while keeping the system scalable and responsive.
Tip 1: Break the problem into smaller components, such as connection handling, message delivery, and data storage, before designing the solution.
Tip 2: Use real-time communication mechanisms like WebSockets or SignalR to ensure instant message exchange.
Tip 3: Consider scalability early by planning how messages will be handled when multiple users are online simultaneously.
Tip 4: Focus on reliability by addressing edge cases, such as connection drops and message ordering.
Payment system design involves gateway integration, transaction validation, retry mechanisms, failure handling, and ensuring consistency across services.
Tip 1:Clearly define the payment flow from initiation to confirmation and handle each step as an independent, well-validated process.
Tip 2: Design the system to be idempotent to avoid duplicate transactions in case of retries or network failures.
Tip 3: Handle failure scenarios gracefully by implementing retries, timeouts, and proper rollback or compensation mechanisms.

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