The recruitment process was conducted as a one-day in-person drive. It started with an online coding assessment on Codility, consisting of three coding questions. These included a binary string reduction problem requiring an optimized string-based solution, an array constraint validation problem, and a logic/edge-case–based question.
Before the company visit, candidates were asked to choose a role:
Software Engineer (Java-based interview) or
Data Engineer (Python-based interview)
After clearing the OA, the technical interview lasted around 45 minutes and was quite in-depth. It started with core OOP concepts, after which the interviewer moved to the Java Collection Framework. Questions included internal behavior and concepts, such as the default capacity of an ArrayList when initialized.
The discussion then shifted to Data Structures and Algorithms, and the interviewer covered almost every major topic, including arrays, strings, stacks, queues, linked lists, trees, graphs, and dynamic programming. There were also conceptual questions where the interviewer intentionally mixed greedy and DP approaches to test clarity of understanding. Standard graph algorithms like Dijkstra’s algorithm were also discussed, along with frequent questions on time and space complexity analysis.
A significant part of the interview was dedicated to project discussion, where the interviewer asked detailed questions about implementation, design choices, and also evaluated how well the candidate understood NAB as a company and its domain.
This was followed by a pure HR round of about 20 minutes, which was highly situation-based. Questions focused on teamwork and conflict handling, such as dealing with a non-performing teammate, along with self-reflection questions about failures, critical feedback received, and personal background, including family-related questions.
Overall, the interview process was well-structured, thorough, and strongly focused on fundamentals, clarity of thought, and real-world problem-solving skills.