Tip 1: Focus on understanding the "why" behind each technology or concept, not just how it works—this will help you explain decisions confidently in interviews.
Tip 2: Practice problem-solving regularly, especially with real-world scenarios, to build both speed and clarity in your thought process.
Highlight Core Skills: Emphasize expertise in technologies such as Spring Boot, Kafka, RabbitMQ, MongoDB, and strong problem-solving abilities in DSA.
Project Experience: Include relevant projects that demonstrate system design, scalability, and backend development, showcasing practical knowledge in real-world applications.
The online coding test lasted for 60 minutes and included two medium-level DSA questions on LeetCode. The timing was reasonable and not late at night. The environment was comfortable and stress-free since it was conducted remotely. The test itself was straightforward, with no interaction with an interviewer during this phase.



The approach to solving the 'Longest Substring Without Repeating Characters' problem involves using a sliding window technique. You maintain a window of characters by using two pointers and a set to track unique characters. As you move the window, you update the maximum length whenever a valid substring is found.



Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
3 is written as III in Roman numeral, just three ones added together. 13 is written as XIII, which is simply X + III. The number 25 is written as XXV, which is XX + V
To solve the 'Roman to Integer' problem, iterate through the string of Roman numerals while using a mapping of Roman symbols to their integer values. If a numeral is smaller than the next one (indicating subtraction), subtract its value; otherwise, add it. This approach ensures an accurate conversion.
The interview was conducted during the day, so it wasn’t late at night. The environment was professional and focused, allowing for constructive discussion. I was asked to explain my current design-based projects, followed by a challenge to design a payment system, which encouraged in-depth technical dialogue.
In designing a payment system, I focused on ensuring robust failure handling and clear transaction states, including pending and completed. The system is designed to flag payment providers for the first 60 minutes in case of downtime, allowing for swift recovery actions. If the provider remains unresponsive beyond this period, we take responsibility for blocking payments. Additionally, the system incorporates a mechanism for processing refunds efficiently, ensuring that customers receive their money back promptly if needed. This architecture prioritizes reliability and user trust, essential for a seamless payment experience in a dynamic environment. It was a high-level discussion with no coding round.
1. Implement State Management: Clearly define transaction states (pending, completed, failed) to track payment progress effectively.
2. Timeout and Recovery Logic: Establish a 60-second timeout for payment provider responses to automatically manage failures and mitigate risks.
3. Refund Mechanism: Integrate a robust refund processing system to swiftly handle customer requests and maintain user trust.
The interview took place during the day, not late at night, in a focused and professional environment. I was tasked with designing a team creation service for Dream11, with an emphasis on high scalability and robust failure handling. The system needed to prevent users from entering teams after a contest had started, allowing a maximum of 11 players per team with specific constraints on player types. This challenge encouraged me to think critically about the architecture and scalability of the service, showcasing my ability to address complex requirements effectively. The interviewer was engaging and provided constructive feedback throughout the discussion.
In the interview, I was tasked with designing a team creation service for Dream11, focusing on both functional and non-functional requirements. The service needed to allow users to create teams of up to 11 players, enforcing constraints on player types and preventing modifications once a contest started, to ensure fairness.
For the non-functional requirements, the system required high scalability to handle many concurrent users, low-latency data retrieval, and robust error handling. I proposed using Aerospike for its high-performance capabilities and MongoDB for its flexibility in managing unstructured data.
However, I struggled to articulate the rationale behind my choices. When asked about Aerospike, I realized I needed a deeper understanding of its internal workings. Similarly, I couldn't convincingly justify selecting MongoDB over relational databases like PostgreSQL. This experience highlighted the importance of understanding the "why" behind technology selections, which ultimately affected my performance in the interview.
Tip 1: Understand the core functionalities and internal workings of the technologies you choose to effectively explain their suitability.
Tip 2: Be prepared to articulate the reasoning behind your technology selections, focusing on how they meet both functional and non-functional requirements.
Tip 3: Practice explaining your design decisions clearly and confidently, emphasizing trade-offs and benefits to demonstrate your thought process.

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