Tip 1: Practice DSA consistently and analyze every mistake.
Tip 2: Build at least two solid projects and understand them deeply.
Tip 3: Revise core concepts.
Tip 1: Keep projects relevant and be prepared to explain every line of your code.
Tip 2: Highlight your problem-solving skills and core technical strengths clearly.
The test was conducted online and scheduled during the daytime. The environment was calm since it was taken from home. The platform was smooth, with no major technical issues. The round consisted of MCQs followed by coding problems. There was no interaction with an interviewer in this round, as it was purely an online assessment.



If more than one such pair of indices exist, return the lexicographically smallest pair
You may not use the same element twice.
nput: nums = [2, 7, 11, 15], target = 9
Output: [0, 1]
Explanation: nums[0] + nums[1] = 2 + 7 = 9



Input: nums = [-2,1,-3,4,-1,2,1,-5,4]
Output: 6
Explanation: The subarray [4, -1, 2, 1] has the largest sum = 6.
Step 1: I first thought of a brute-force solution by checking all possible subarrays using two nested loops, which would take O(n²) time.
Step 2: I realized this approach would be inefficient for large inputs and needed optimization.
Step 3: Then I recalled Kadane’s Algorithm, where we use Dynamic Programming to maintain the maximum sum ending at each index.
Step 4: I maintained two variables: currentSum and maxSum. For each element, I decided whether to start a new subarray or extend the existing one.
Step 5: This reduced the time complexity to O(n) and the solution was accepted.
The interview was conducted during the daytime, and the environment was calm and professional. The interviewer was supportive and allowed me time to think through my answers. The round focused mainly on core computer science fundamentals, such as Operating Systems and DBMS concepts. The interviewer asked follow-up questions based on my responses to test the depth of my understanding. Overall, it felt more like a discussion than a stressful interrogation, which helped me stay comfortable.
Tip 1: Read Operating System concepts thoroughly from standard books like Galvin (Operating System Concepts) and revise definitions regularly.
Tip 2: Focus on understanding core concepts like synchronization, deadlock, paging, and memory management instead of rote learning.
Tip 3: Practice explaining concepts with real-world examples (e.g., semaphore using producer-consumer problem, virtual memory using RAM vs disk analogy).
The interview was conducted during the daytime over a video call. The environment was professional and calm. The interviewer was experienced and focused on assessing my system design thinking, understanding of scalability, and decision-making approach. The discussion was interactive, and I was encouraged to think aloud while designing solutions. The round mainly evaluated architecture-level thinking rather than coding. After this round, I was informed that I was not selected, but the experience gave me clear insights on how to improve my system design preparation.
Design a Scalable URL Shortener System (like Bitly)
You are required to design a system that:
Step 1: I started by clarifying the requirements, both functional and non-functional, such as scalability, availability, and low latency.
Step 2: I identified core components, including the API layer, database, and encoding strategy.
Step 3: I proposed using a key-value database to store the mapping between short URLs and long URLs.
Step 4: I discussed how to generate unique short keys using Base62 encoding.
Step 5: The interviewer asked scalability-related follow-ups, such as handling millions of requests and database bottlenecks, which helped me understand areas where I needed deeper preparation.

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What's the main risk of a "Chat with Your Codebase" public API tool?