Job Scheduling / Capacity Management (Greedy / Priority Queue)Problem: You are given $N$ jobs arriving one by one in order, where job $i$ arrives at time $t = i$. Once a job is picked, it starts depleting the system's maximum capacity by job[i] per second. You need to choose a subset of jobs to maximize the total number of jobs completed without ever fully depleting the maximum capacity.
Batch Processing Cost Minimization (Dynamic Programming)Problem: You have a batch of $N$ requests, some of which are premium requests. You can split an even-sized batch into smaller batches and send them to different servers to minimize the total cost.If a batch contains only regular requests, the cost is a flat rate: R.If a batch contains any premium requests, the cost is: P * (size of the batch) * (number of premium requests in that batch)
Binary String Swaps (Combinatorics / DP)Problem: You are given a binary string of length $N$ ($N < 2000$) and a number of operations $K$ ($K < 1000$). In one operation, you must swap exactly one 0 and one 1. Find the total number of unique binary strings that can be formed after performing exactly $K$ operations.
Topics Covered: Object-Oriented Programming (OOPs) and Database Management Systems (DBMS). Project Deep Dive: The interviewer wanted total clarity on my resume projects. A major focus was on deployment failures—they asked detailed questions about how the project could break or fail in a real-world production environment (e.g., handling server crashes, scalability issues, or edge cases).
DSA Questions Q1. Find Median from Data Stream (Running Median): Expected Approach: Use the classic Two Heaps pattern. Maintain a Max-Heap for the lower half of the numbers and a Min-Heap for the upper half to keep the time complexity at $O(\log N)$ for insertion and $O(1)$ for finding the median.
Q2. Search in a 2D Matrix: Given a grid where both the rows and the columns are sorted in ascending order, find the most optimal way to search for a target element. Expected Approach: Don't use binary search on every row. Instead, start from the top-right corner (or bottom-left). If the current element is greater than the target, move left. If it is smaller, move down. This solves it in $O(N + M)$ time complexity.