Interview guides · Idfc First Bank
Idfc First Bank Software Engineer Interview Guide
Idfc First Bank Software Engineer interview guide: reported rounds, questions and how candidates describe the process.
The 60-second brief
A Software Engineer at Idfc First Bank plays a critical role in driving the digital transformation of one of India's fastest-growing, tech-led financial institutions. Unlike traditional banking environments, Idfc First Bank operates with a modern tech-stack mindset, treating its engineering division as a core product engine rather than a support function. Engineers here are responsible for building, scaling, and securing high-throughput financial systems, real-time payment gateways, microservices-based lending platforms, and highly intuitive customer-facing mobile and web applications. The impact of this role is immense, directly shaping the financial experiences of millions of customers. You will work on complex transactional systems where security, low latency, and 99.99% uptime are non-negotiable.
This guide is scoped to a Software Engineer candidate at Idfc First Bank.
Focus areas
- DSA (Data Structures & Algorithms)
- DBMS (Database Management Systems)
- System Design
The Idfc First Bank interview process
Idfc First Bank candidates report 4 rounds over 3-5 weeks. The stages below are what candidates describe, not a published process.
Online Assessment
Initial assessment that serves as a major elimination filter for candidates.
What to demonstrate
- Initial assessment that serves as a major elimination filter for candidates
- Depth in DSA (Data Structures & Algorithms)
How to prepare
- Answer aloud and timed: Given an array with duplicate elements, write an efficient algorithm to move all non-duplicate elements to one side of the array.
- Answer aloud and timed: Solve the classic "Rotten Oranges" problem using Breadth-First Search (BFS) to find the minimum time required to rot all oranges.
Technical Rounds
In-depth evaluations conducted face-to-face or via virtual panels focusing on system design and core computer science subjects.
What to demonstrate
- In-depth evaluations conducted face-to-face or via virtual panels focusing on system design and core computer science subjects
- Depth in DSA (Data Structures & Algorithms)
How to prepare
- Answer aloud and timed: Write a program to find the Lowest Common Ancestor (LCA) in a Binary Search Tree (BST).
- Answer aloud and timed: Implement a solution to determine if a given binary tree is a subtree of another binary tree.
Managerial Round
Assessment focused on organizational fit and behavioral alignment.
What to demonstrate
- Assessment focused on organizational fit and behavioral alignment
- Depth in DSA (Data Structures & Algorithms)
How to prepare
- Answer aloud and timed: Write the logic to find a target value within a generated Fibonacci sequence using a hashmap-based optimization algorithm.
- Answer aloud and timed: Design the low-level architecture (LLD) for a movie ticket booking platform like BookMyShow, focusing on class diagrams and concurrency handling.
HR Round
Final evaluation to discuss candidate's fit within the company culture and values.
What to demonstrate
- Final evaluation to discuss candidate's fit within the company culture and values
- Depth in DSA (Data Structures & Algorithms)
How to prepare
- Prepare three examples from your own work, each with a decision you made and an outcome you can quantify.
- Re-read the description of the hr round above and write down what you would ask to confirm before it.
Where candidates lose points
Master Your Resume Projects
Be prepared for an intensive deep dive into any project or technology mentioned on your resume. If you list microservices, Spring Boot, or AWS, expect detailed architectural questions on how they communicate and scale.
Prepare your projects thoroughly
If you list microservices, Spring Boot, or AWS, expect deep architectural questions on how they communicate and scale.
Practice Writing Code on Paper
Several rounds of interviews may require you to write clean, working code on physical paper or a whiteboard. Practice structuring your code clearly without relying on an IDE's auto-complete feature.
Understand Banking Constraints
Familiarize yourself with basic banking concepts such as transaction security, data privacy, and system reliability. Showing an awareness of why security and data integrity are vital in banking will set you apart.
Questions & practice
Given an array with duplicate elements, write an efficient algorithm to move all non-duplicate elements to one
Medium · Data Structures & Algorithms (DSA)
Given an array with duplicate elements, write an efficient algorithm to move all non-duplicate elements to one side of the array.
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Solve the classic "Rotten Oranges" problem using Breadth-First Search (BFS) to find the minimum time required
Medium · Data Structures & Algorithms (DSA)
Solve the classic "Rotten Oranges" problem using Breadth-First Search (BFS) to find the minimum time required to rot all oranges.
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Write a program to find the Lowest Common Ancestor (LCA) in a Binary Search Tree (BST).
Medium · Data Structures & Algorithms (DSA)
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Implement a solution to determine if a given binary tree is a subtree of another binary tree.
Medium · Data Structures & Algorithms (DSA)
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Write the logic to find a target value within a generated Fibonacci sequence using a hashmap-based optimizatio
Medium · Data Structures & Algorithms (DSA)
Write the logic to find a target value within a generated Fibonacci sequence using a hashmap-based optimization algorithm.
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Explain the concept of multithreading in Java. How do you handle thread safety and race conditions in a concur
Medium · Core CS Fundamentals & Web Technologies
Explain the concept of multithreading in Java. How do you handle thread safety and race conditions in a concurrent banking transaction system?
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
Given a database schema for customer transactions, write a SQL query to identify the top 5 customers based on
Medium · Databases & SQL
Given a database schema for customer transactions, write a SQL query to identify the top 5 customers based on their total spending in the current month.
Approach
- Name the grain you start from and join outward from it.
- Check whether any join is one-to-many before aggregating, or the sums inflate.
- Say which index the query would use, and what makes it unusable.
- Handle the rows that do not match: that is usually the actual question.
Follow-up
- How does the query change if that join becomes one-to-many?
- What happens to this when the table is ten times larger?
Explain database normalization from 1NF to 3NF using a practical example of customer accounts and loan disburs
Medium · Databases & SQL
Explain database normalization from 1NF to 3NF using a practical example of customer accounts and loan disbursements.
Approach
- Name the grain you start from and join outward from it.
- Check whether any join is one-to-many before aggregating, or the sums inflate.
- Say which index the query would use, and what makes it unusable.
- Handle the rows that do not match: that is usually the actual question.
Follow-up
- How does the query change if that join becomes one-to-many?
- What happens to this when the table is ten times larger?
Write a query to fetch duplicate records from a user table and explain how you would optimize this query using
Medium · Databases & SQL
Write a query to fetch duplicate records from a user table and explain how you would optimize this query using indexing.
Approach
- Name the grain you start from and join outward from it.
- Check whether any join is one-to-many before aggregating, or the sums inflate.
- Say which index the query would use, and what makes it unusable.
- Handle the rows that do not match: that is usually the actual question.
Follow-up
- How does the query change if that join becomes one-to-many?
- What happens to this when the table is ten times larger?
Design the low-level architecture (LLD) for a movie ticket booking platform like BookMyShow, focusing on class
Medium · System Design & Architecture
Design the low-level architecture (LLD) for a movie ticket booking platform like BookMyShow, focusing on class diagrams and concurrency handling.
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
How would you design a highly reliable and scalable car-pooling application? Explain the high-level components
Medium · System Design & Architecture
How would you design a highly reliable and scalable car-pooling application? Explain the high-level components and data flow.
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
Walk through the system architecture of an e-commerce platform. Draw the database schema, identify primary key
Medium · System Design & Architecture
Walk through the system architecture of an e-commerce platform. Draw the database schema, identify primary keys, and explain how you handle order placement.
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
Explain how you would design a secure and reliable user data management system for video reels on Instagram, f
Medium · System Design & Architecture
Explain how you would design a secure and reliable user data management system for video reels on Instagram, focusing on database partitioning and fast retrieval.
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
Implement the structural design of an entire house using Object-Oriented Programming (OOP) principles, demonst
Medium · System Design & Architecture
Implement the structural design of an entire house using Object-Oriented Programming (OOP) principles, demonstrating inheritance, encapsulation, and polymorphism.
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
How do SQL and NoSQL databases differ in terms of consistency, scalability, and use cases within a banking eco
Medium · Databases & SQL
How do SQL and NoSQL databases differ in terms of consistency, scalability, and use cases within a banking ecosystem?
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
Explain the Java Exception hierarchy and describe how you would design and implement a custom exception in a S
Medium · Core CS Fundamentals & Web Technologies
Explain the Java Exception hierarchy and describe how you would design and implement a custom exception in a Spring Boot application.
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
What happens under the hood when a user enters a URL in a browser? Explain the step-by-step process involving
Medium · Core CS Fundamentals & Web Technologies
What happens under the hood when a user enters a URL in a browser? Explain the step-by-step process involving DNS, TCP handshakes, and API gateways.
Approach
- Say who the caller is and what they do when the call fails halfway.
- Define the identity of a request so a retry cannot double-apply it.
- Separate accepted, pending, failed and confirmed; they are different facts.
- Design the error taxonomy before the success shape; callers branch on it.
Follow-up
- What happens if the caller retries after a timeout?
- How does a client discover it is on an old version of this contract?
Describe the core differences between REST APIs and SOAP, and explain how Spring Boot handles filters and inte
Medium · Core CS Fundamentals & Web Technologies
Describe the core differences between REST APIs and SOAP, and explain how Spring Boot handles filters and interceptors.
Approach
- Say who the caller is and what they do when the call fails halfway.
- Define the identity of a request so a retry cannot double-apply it.
- Separate accepted, pending, failed and confirmed; they are different facts.
- Design the error taxonomy before the success shape; callers branch on it.
Follow-up
- What happens if the caller retries after a timeout?
- How does a client discover it is on an old version of this contract?
Listing latency scales with page size, not with filters
Easy · n+1 · latency · query batching
The tenant listing endpoint reads resource filtered by tenant_id and status, ordered by updated_at DESC, and returns each row plus the owner's display name from app_user and the actor of that resource's latest resource_revision. p99 is 55 ms at 10 rows per page and 1.4 s at 200. Database telemetry shows 401 statements per request, each under 1 ms, and nothing in the slow-query log. Diagnose the cause and give the fix, stating the statement count per request and the p99 you expect afterwards.
Approach
- Read the counters before forming a theory. 401 statements for 200 rows is one driver query plus two per row, and sub-millisecond execution with an empty slow-query log rules out a bad plan. The time is round trips, which is why it is invisible in every per-query metric and scales with rows returned rather than with filter selectivity.
- Name the two per-row statements from their normalised text: a single-row app_user lookup by user_id, and a resource_revision lookup by resource_id ordered by version DESC LIMIT 1. Confirm by dropping those two response fields and watching the statement count fall to one. That locates the calls in the serialisation layer, not the repository.
- Check that the arithmetic accounts for the whole gap. Measure one round trip to the replica in isolation; 400 trips at roughly 3 ms of network plus 0.2 ms of execution is about 1.3 s on top of a 55 ms baseline, which matches. If the multiplication had fallen short, the N+1 would only be part of the story and you would keep looking.
- Batch both lookups. Collect owner_user_ids and resource_ids from the driver query, then issue WHERE tenant_id = $1 AND user_id = ANY($2) for the users, and PostgreSQL's SELECT DISTINCT ON (resource_id) ... WHERE resource_id = ANY($2) ORDER BY resource_id, version DESC for the latest revision, which the UNIQUE (resource_id, version) index serves directly. On an engine without DISTINCT ON, use a lateral join or a row_number window. Three statements per request at any page size.
Follow-up
- The page size is capped at 200 today. What breaks first if it is raised to 2,000, and is it still this bug?
- How do you stop the next N+1 from reaching production, given that no individual query is slow and the endpoint's tests pass?
Suggested practice checklist
Built from the rounds and topics Idfc First Bank candidates report.
Day 1 — Map the Idfc First Bank loop
- Write out the reported sequence: Online Assessment, Technical Rounds, Managerial Round, HR Round.
- For each round, write one sentence on what it is judging, from the description above, and mark the one you are least ready for.
Deliverable: A one-page map of the 4 reported rounds, with the weakest marked.
Day 2 — Work DSA (Data Structures & Algorithms)
- Spend the session on DSA (Data Structures & Algorithms), which Idfc First Bank candidates report being tested on.
- Write one worked example in DSA (Data Structures & Algorithms) and time yourself on it.
Deliverable: One timed worked example in DSA (Data Structures & Algorithms).
Day 3 — Work DBMS (Database Management Systems)
- Spend the session on DBMS (Database Management Systems), which Idfc First Bank candidates report being tested on.
- Write one worked example in DBMS (Database Management Systems) and time yourself on it.
Deliverable: One timed worked example in DBMS (Database Management Systems).
Day 4 — Work System Design
- Spend the session on System Design, which Idfc First Bank candidates report being tested on.
- Write one worked example in System Design and time yourself on it.
Deliverable: One timed worked example in System Design.
Day 5 — Answer out loud: Data Structures & Algorithms (DSA)
- Answer aloud, timed: Given an array with duplicate elements, write an efficient algorithm to move all non-duplicate elements to one side of the array.
- Answer aloud, timed: Solve the classic "Rotten Oranges" problem using Breadth-First Search (BFS) to find the minimum time required to rot all oranges.
Deliverable: Spoken answers to 2 reported Data Structures & Algorithms (DSA) question(s), under time.
Day 6 — Answer out loud: System Design & Architecture
- Answer aloud, timed: Design the low-level architecture (LLD) for a movie ticket booking platform like BookMyShow, focusing on class diagrams and concurrency handling.
- Answer aloud, timed: How would you design a highly reliable and scalable car-pooling application? Explain the high-level components and data flow.
Deliverable: Spoken answers to 2 reported System Design & Architecture question(s), under time.
Day 7 — Answer out loud: Databases & SQL
- Answer aloud, timed: Given a database schema for customer transactions, write a SQL query to identify the top 5 customers based on their total spending in the current month.
- Answer aloud, timed: Explain database normalization from 1NF to 3NF using a practical example of customer accounts and loan disbursements.
Deliverable: Spoken answers to 2 reported Databases & SQL question(s), under time.
Behavioural preparation
Behavioural rounds judge the decision you made and what it cost.
Narrate an outage you owned from page to postmortem
Hard · incident response · blast radius · postmortems
Pick an incident you personally drove, ideally one where writes were affected rather than reads. In six to eight minutes: state the symptom as it first appeared on a dashboard, the blast radius you established before you knew the cause, the mitigation you applied and when, the mechanism you eventually proved, and the follow-up that would prevent a repeat. Bring numbers: error rate, tenants affected, minutes to mitigate, minutes to resolve. If you cannot name what you measured, choose a different incident.
Approach
- Open on the signal rather than the cause: which metric at which percentile moved, on which service, at what time, so the listener follows the same evidence you had rather than a conclusion you already reached.
- Separate mitigation from diagnosis out loud. State what you did to stop the bleeding (flag off, shed traffic, drain a lease, roll back a deploy) and say plainly that you did it before the mechanism was known, because those are two jobs with different deadlines.
- Establish blast radius in countable terms: how many tenants, how many writes, and crucially whether the effect was loss or only delay. An append-only revision table or a pending outbox row means the change survived and the projection was merely behind, which is a repair rather than a data-loss incident.
- Prove the mechanism instead of asserting it. Name the trace span that grew, the plan that flipped to a sequential scan, the lease that expired, plus one alternative you ruled out and the signal that stayed flat while you ruled it out.
Follow-up
- What would you do differently in the first five minutes, given the same dashboard and no more information?
- Which follow-up action did you deliberately not take, and why was dropping it the right call?
Turn a code review disagreement into a decision
Easy · code review · optimistic concurrency · communication
A colleague's change updates a row with UPDATE resource SET version = version + 1 WHERE resource_id = $1 AND version = $2 and treats an affected-row count of zero as a successful no-op. You read that as a silently lost update; they think returning 200 is friendlier to clients than returning a conflict. Describe how you have handled a review disagreement of this shape: what goes in the comment, when you leave the thread, and who decides. Then write the comment you would leave here, in under 80 words.
Approach
- Sort the disagreement before writing anything. A silently discarded write is a correctness claim about data; the choice between 409 and 412 is taste. Only the first justifies blocking a merge, and saying which one you are doing is most of the value of the comment.
- Make the claim reproducible in the comment itself with an interleaving rather than a principle: A reads version 7, B reads version 7, B commits version 8, A's predicate matches zero rows, A is told it succeeded and A's edit is gone.
- Offer the alternative with its cost attached: return 409 carrying the current version and the revision that won, so the client can re-read and re-apply. Note that automatic retry is not the fix, because a retry re-reads the winner's state and reapplies an intent formed against data that no longer exists.
- Apply an escalation rule you can state: two round trips on the thread, then a call, and the service's owner decides rather than the reviewer. A reviewer who cannot be overruled is a bottleneck with extra steps.
Follow-up
- Where would you put the test that fails if someone reintroduces the swallowed zero rowcount?
- The author says clients cannot handle a 409. How do you check whether that is true?
Ship under a deadline and bound the debt you chose
Medium · pagination · technical debt · tradeoffs
You have four days to ship a tenant-facing listing endpoint. The version you would defend uses keyset pagination over (tenant_id, status, updated_at DESC, resource_id DESC); the version you can finish uses LIMIT/OFFSET with no matching index. Describe a deadline call you actually made of this shape: what you shipped, what you knowingly deferred, how you bounded the damage with a mechanism rather than an intention, and the specific numeric condition that would force the follow-up. Name who you told and where you wrote it down.
Approach
- Name the deferred failure precisely instead of calling it slow. OFFSET n makes the database produce and discard n rows, so cost grows with page depth; without an index matching the sort, every matching row is read and sorted before the limit applies; and rows inserted between two page fetches shift across the boundary so items are skipped or repeated with nothing in the response to signal it.
- Bound the blast radius with something mechanical rather than a promise: cap maximum page depth, cap page size, restrict the endpoint to one internal caller, or keep it behind a flag. State which failure each cap removes and which it leaves standing.
- Attach a number to the trigger and wire it to an alarm: the first tenant crossing N resources, or the endpoint's p99 crossing its share of the 400 ms budget, so the debt announces itself instead of waiting to be remembered.
- Write it where the next engineer looks, which is the code and the ticket, not a chat message: what was deferred, why, the cap, and the trigger.
Follow-up
- At what page depth does the offset version breach your latency budget, given your page size and row counts?
- What breaks first when you switch to keyset pagination later, and what does a client holding an old page token see?