BNY · Software Engineer
Updated · 2026-10-02

BNY Software Engineer
Interview Guide

THE 60-SECOND BRIEF

BNY is a financial institution, and candidates describe the engineering work as supporting treasury services, cash processing and other financial platforms. The project areas they list include cloud infrastructure, API-driven services, moving legacy mainframe systems onto newer platforms, Java-based full-stack applications and database automation. In this role you translate business requirements into technical specifications, write and test code, tune databases, refactor older components and integrate cloud services, working with product managers and operations colleagues while following compliance and security protocols.

This guide is for Software Engineer candidates preparing for BNY. It covers the three reported stages, the thirteen questions candidates report (data structures and algorithms, system design and architecture, behavioral and motivation), the project deep dive candidates describe, and the fundamentals (OS, DBMS, networks) they say come up. The stack candidates mention is Java or another object-oriented language, SQL and relational databases, cloud platforms (AWS or Azure) and Angular or a similar front-end framework.

Candidates report three stages over roughly 3-5 weeks: an Online Assessment, two to three Technical Interviews that mix coding, system design and project discussion, and a final Behavioral Interview that is sometimes managerial. The exact shape varies by team and region.

DSA (Data Structures & Algorithms) CodingData StructuresAlgorithms

30 min read

Browse Software Engineer questions

See the practice prompts

14Practice promptsAcross five skill areas

The loop is short but uneven. After the Online Assessment come two to three technical rounds, and candidates say the weight differs by team: some lean on data structures and algorithms, others spend most of the time on your past projects. Because you cannot tell in advance which kind of team you will meet, prepare both halves: timed coding in Java (or your strongest object-oriented language), and a rehearsed, detailed account of everything on your resume.

The algorithm material candidates list is arrays and strings, trees and graphs (traversal, cycle detection, shortest paths), dynamic programming with memoization, and stating Big-O for time and space. Reported example problems are the longest palindromic substring and cycle detection in a directed graph. The reported questions add array versus linked-list trade-offs, the three binary-tree traversals, sliding window or dynamic programming, merge sort complexity and binary search edge cases. Candidates also say operating systems, database and networking basics come up, so keep a short review sheet for those.

The architecture side is built around money-moving systems and older estates: processing high-volume financial transactions, choosing between SQL and NoSQL, migrating a legacy application to the cloud, and securing APIs across a distributed system. For the transaction question, a throughput number alone is not an answer; plan to talk about duplicate submissions, ordering, durable records, reconciliation and audit trails. Candidates also describe project deep dives such as walking through a database schema you designed or the hardest bug you debugged, so have specifics ready.

The last stage is described as behavioral or managerial, with attention to stability and an understanding of the financial domain. Prepare three structured stories (a team disagreement, learning a technology quickly, working to a tight deadline) and a specific answer to why you want BNY rather than another financial institution.

01

Online Assessment

reported

Candidates report that the process opens with an online assessment that works as a technical filter. The reported material does not spell out its format or contents, so prepare for timed, unaided coding in general. Candidates who prepared for it point to graph, dynamic programming, array and string problems. Pick one language, practise in a plain editor, and get into the habit of reading the constraints first, writing a few edge-case tests of your own and stating complexity in one sentence before you submit.

What to demonstrate

  • Correct, working code in an online, timed format
  • Choosing an algorithm that fits the constraints and stating its time and space cost
  • Handling edge cases such as empty input, single elements and duplicates

How to prepare

  • Solve graph, dynamic programming, array and string problems against a timer in Java or your strongest language, since those are the areas candidates say to drill.
  • Work the two reported example problems end to end: longest palindromic substring (expand around each centre in O(n^2), or a DP table) and cycle detection in a directed graph (three-colour DFS or Kahn's algorithm).
  • Write your own edge-case tests before submitting: empty input, one element, all-equal values, the largest allowed size.
  • After every solution, say the time and space complexity aloud in a single sentence.
BNY Software Engineer candidate reports ↗
02

Technical Interviews

reported

Candidates report two to three technical interviews combining coding, system design and project discussion. A coding stage is where the reported coding questions are practised: array versus linked-list trade-offs, in-order, pre-order and post-order traversal, sliding window or dynamic programming, merge sort complexity and binary search edge cases. The design questions to rehearse cover high-volume financial transactions, SQL versus NoSQL, cloud migration of a legacy application and API security. Candidates also describe a deep dive into projects on your resume, including the trade-offs you made, and say OS, DBMS and networking fundamentals come up. Start coding answers from a brute-force version, then improve it while narrating your reasoning.

What to demonstrate

  • Working code for the coding questions, with complexity stated
  • Reasoning about scalability, data stores and security in a design discussion
  • Explaining your own project decisions, schema and hardest bug
  • Computer science fundamentals: OS, DBMS and networks

How to prepare

  • Write recursive and iterative versions of all three tree traversals, one fixed-size and one variable-size sliding window, one DP problem both top-down and bottom-up, and binary search with careful bounds.
  • Outline a design for a high-volume transaction pipeline: a durable log or queue, idempotency keys, partitioning, a relational store for the ledger, reconciliation and audit records. Practise the SQL versus NoSQL choice as a table of workloads and trade-offs.
  • Prepare two resume projects with architecture, schema, one trade-off, one hard bug and one measurable result each. PracHub's practice question on instances that keep growing in memory is a good drill for the debugging narrative.
  • Make a one-page sheet for OS (process versus thread, deadlock), DBMS (ACID, indexes, isolation levels) and networks (TCP, HTTP, TLS).
BNY Software Engineer candidate reports ↗
03

Behavioral Interview

reported

Candidates describe the final stage as a behavioral or managerial round that focuses on stability and on understanding the financial domain. The reported questions are a disagreement within a team, learning a technology on the fly, handling a tight deadline and why you want BNY compared to other financial institutions. Candidates say behavioral answers carry real weight even though the process is mostly technical. Prepare concrete stories with your own decisions and results, plus a motivation answer that is specific rather than generic.

What to demonstrate

  • How you describe decisions, trade-offs and collaboration through real examples
  • Stability and reliability, as reported for this stage
  • Basic understanding of how financial institutions use technology
  • How you handle pressure and disagreement

How to prepare

  • Write three structured stories (situation, your action, result) for the disagreement, new-technology and tight-deadline prompts, each with a number or a concrete outcome.
  • Write a specific answer to why BNY: connect the work candidates describe (treasury services, cash processing, cloud and API work, legacy modernisation) to something you have built or want to learn.
  • Read up on basic financial-technology ideas such as payment flows, settlement and reconciliation, so you can discuss the domain in plain words.
  • Prepare questions about the team's stack and balance between algorithms and project work, since teams differ.
BNY Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Listing a technology or project on the resume that you cannot explain in depth

Candidates report deep dives into projects, schemas and hardest bugs. For each resume entry, prepare its architecture, one trade-off, one bug and one measurable result, and remove anything you cannot defend.

02

Jumping to the optimized solution, or coding silently, on the sliding window, dynamic programming or graph problems

State the brute-force version and its cost first, then name the inefficiency you are removing. Say what the window, state or visited set represents before writing the loop, and give the final complexity.

03

Off-by-one and boundary errors in binary search, tree traversal or window shrinking

Fix a loop invariant before coding (for example, the answer lies in [lo, hi]). Compute the midpoint as lo + (hi - lo) / 2, and trace empty, single-element, absent-key, duplicate and null-child cases on paper before you declare the solution done.

04

Answering the financial-transactions design question with throughput alone

Add the correctness pieces for money-moving systems: idempotency keys for retries, ordering per account, a durable log, reconciliation and audit records. Then discuss partitioning and failure of a downstream dependency.

05

Giving a generic answer to the behavioral prompts and to why BNY

Use real stories with your decision, a trade-off and an outcome. For the motivation question, tie the treasury, cash-processing, cloud and legacy-modernisation work candidates describe to something specific in your own experience, and skip lines that would suit any bank.

Choose a category, try a prompt, then open its approach, worked solution or follow-up when you need it.

11 technical prompts0 include a worked solution

Explain the difference between arrays and linked lists in terms of memory and performance.

medium
Technical & DSA

Explain the difference between arrays and linked lists in terms of memory and performance.

Approach
  1. Start with layout: an array is one contiguous block, so element i sits at base + i * elementSize and index access is O(1). A linked list is separate heap nodes joined by references, so reaching position i means walking i nodes, which is O(n).
  2. Compare the mutations. Inserting or deleting in the middle of an array shifts the tail, O(n). A linked list splices in O(1) once you hold the node (singly linked: the node before it), but finding that node is still O(n). A dynamic array such as Java's ArrayList appends in amortized O(1) and copies everything, O(n), when it resizes.
  3. Cover memory overhead. Each list node carries one or two references plus, in Java, an object header, so it costs several times more per element than an int[] slot. Note that an ArrayList holds references to boxed Integers, so the values themselves are not contiguous; only primitive arrays are.
  4. Explain the cache effect: sequential array scans use spatial locality and hardware prefetching, while a list traversal chases pointers and misses cache. That is why arrays often beat lists in practice even for workloads with some middle inserts.
  5. Say when a list is the right call: O(1) removal through a node handle, as in an LRU cache built from a hash map plus a doubly linked list, or O(1) work at both ends (Java's LinkedList implements Deque, though ArrayDeque is usually faster).
Follow-up
  • How would you build an LRU cache with O(1) get and put, and why does it need a doubly linked list?
  • Why is ArrayList.add amortized O(1) when some appends copy the whole array?
  • Reverse a singly linked list in place, then do it recursively. What does each version cost in space?

How do you implement in-order, pre-order, and post-order traversals in binary trees?

medium
Technical & DSA

How do you implement in-order, pre-order, and post-order traversals in binary trees?

Approach
  1. Give the three orders exactly. In-order visits left, node, right. Pre-order visits node, left, right. Post-order visits left, right, node. Write the recursive version first: O(n) time and O(h) stack space, where h is the tree height (O(log n) when balanced, O(n) when skewed).
  2. Write in-order iteratively with an explicit stack: push the whole left chain, pop and visit, then move to the popped node's right child and repeat. This avoids StackOverflowError on a deep, skewed tree in Java.
  3. Write pre-order iteratively: push the root; pop, visit, then push the right child before the left so the left comes off first. For post-order, either run node-right-left with one stack and reverse the output, or use one stack with a last-visited pointer so a node is visited only after its right subtree.
  4. Mention Morris traversal for O(1) extra space. It temporarily threads each in-order predecessor's right pointer back to the current node and restores it afterwards, still in O(n) time.
  5. Link each order to its use: in-order on a BST yields sorted keys (BST validation, kth smallest), pre-order serializes or copies a tree, and post-order computes heights or frees children before parents. Test on an empty tree, a single node and a fully left-skewed tree.
Follow-up
  • Validate a binary search tree using an in-order traversal. What do you compare, and how do you handle duplicate keys?
  • Rebuild a tree from its pre-order and in-order sequences. Why does that need unique values?
  • Return the level-order traversal instead. Which data structure replaces the stack?

Write a program to solve a sliding window problem or a dynamic programming challenge.

medium
Technical & DSA

Write a program to solve a sliding window problem or a dynamic programming challenge.

Approach
  1. Decide which pattern fits before writing code. A sliding window fits a question about a contiguous subarray or substring where growing or shrinking the window moves the condition in one direction. DP fits when the answer is built from overlapping subproblems with optimal substructure.
  2. For a variable window, use two pointers: extend the right end, and while the window breaks the condition, advance the left end and update the state (a running sum, a HashMap of character counts or last-seen indices). Each index enters and leaves at most once, so the work is O(n). Longest substring without repeating characters is the standard example.
  3. State the precondition. Shrinking a window to reach a target sum only works when all values are non-negative. With negatives, switch to prefix sums with a HashMap of prefix-sum counts (subarray sum equals k), which is still O(n).
  4. For DP, define the state, the recurrence, the base cases and the fill order. For example, coin change is dp[a] = min over coins c of dp[a - c] + 1, which is O(amount * coins). Write top-down memoization first, then convert it to bottom-up and keep only the rows the recurrence reads.
  5. Check edge cases aloud: empty input, a window larger than the array, every element identical, no valid answer (return -1 or 0 as agreed), and int overflow in running sums (use long).
Follow-up
  • Why does the shrinking-window approach fail when the array contains negative numbers, and what replaces it?
  • Find the longest palindromic substring. Compare expanding around centres with a DP table on time and space.
  • Return the actual subarray or the coins used, not just the length or count. What extra state do you keep?

Explain the time and space complexity of sorting algorithms like merge sort.

medium
Technical & DSA

Explain the time and space complexity of sorting algorithms like merge sort.

Approach
  1. Merge sort splits the array in half, sorts each half recursively and merges them in linear time. The recurrence T(n) = 2T(n/2) + O(n) gives O(n log n) in the best, average and worst case.
  2. Space is O(n) auxiliary for the merge buffer on arrays, plus O(log n) recursion depth. On a linked list the merge relinks nodes, so a bottom-up version needs only O(1) extra space. Merge sort is stable when ties are taken from the left half first.
  3. Compare the alternatives. Quicksort averages O(n log n), but its worst case is O(n^2) with bad pivots (first-element pivot on sorted input); it sorts in place with O(log n) expected stack and is not stable. Heapsort guarantees O(n log n) with O(1) extra space but is unstable and less cache friendly. Insertion sort is O(n^2) in the worst case but O(n) on nearly sorted input, so hybrids use it for small subarrays.
  4. Tie it to Java: Arrays.sort on primitives uses Dual-Pivot Quicksort, where stability does not matter. Arrays.sort on objects and Collections.sort use TimSort, which is stable, O(n log n) in the worst case and close to O(n) on input that is already mostly sorted.
  5. Mention the limits. Comparison sorts need Omega(n log n) comparisons in the worst case. Counting sort (O(n + k)) or radix sort beats that for bounded integer keys. Data that does not fit in memory needs an external merge sort: sort chunks to disk, then do a k-way merge with a min-heap.
Follow-up
  • Why does stability matter if you sort transactions by amount after sorting them by date?
  • How would you sort a file of records far larger than available memory?
  • Count the inversions in an array by modifying merge sort. What is the complexity?

How would you handle edge cases when implementing binary search?

medium
Technical & DSA

How would you handle edge cases when implementing binary search?

Approach
  1. Pick one interval convention and keep it. For a closed range [lo, hi], loop while lo <= hi and set hi = mid - 1. For a half-open range [lo, hi), loop while lo < hi and set hi = mid. Most off-by-one bugs and infinite loops come from mixing the two.
  2. Compute the midpoint without overflow: mid = lo + (hi - lo) / 2, or (lo + hi) >>> 1 in Java. (lo + hi) / 2 overflows int when both are large.
  3. Handle duplicates by writing lower bound (first index with a[i] >= target) and upper bound (first index with a[i] > target). First and last occurrence, counts and insertion points all follow from these. Note that Java's Arrays.binarySearch returns -(insertionPoint) - 1 when the key is missing and does not say which duplicate it finds.
  4. Walk the edge inputs: an empty array, one element, a target below the minimum or above the maximum, and two elements. With two elements, a rounded-down mid plus lo = mid never moves, so make sure each branch shrinks the range.
  5. Generalize to binary search on the answer. When a predicate is monotone over a range (minimum ship capacity for D days, integer square root), search for the first value where it becomes true, in O(log range) times the cost of checking the predicate.
Follow-up
  • Search a rotated sorted array. What changes when it contains duplicates, and what is the worst case then?
  • Compute the integer square root of a large int without overflow.
  • Find the first bad version when each check is an expensive API call. How many calls do you make?

The plan follows the reported loop: algorithm fundamentals first, then trees, graphs and DP, then design and projects, and the behavioral round last. Each day has a concrete output so you can see what is left.

Small steps. Visible outcomes.0 / 7 completed
ONE WEEK · YOUR PACE

Prepare, practise & reflect

One practical outcome each day. Spend longer where you need it.

0 / 7 done
01Map the loop and audit your resume
  • Write the three reported stages and the team variance (algorithm-heavy versus project-heavy) on one page, and mark where you are weakest.
  • For each project on your resume, write its architecture, schema, one trade-off, one hard bug and one measurable result; delete anything you cannot defend.

Deliverable: A one-page loop map and a fact sheet for your two strongest projects.

02Arrays, lists, sorting and binary search
  • Write a comparison of arrays and linked lists covering memory layout, cache behaviour, insertion and lookup cost, and Java's ArrayList versus LinkedList.
  • Implement merge sort in Java and write its time and space complexity, stability and why it is O(n log n).
  • Implement binary search plus first-occurrence and insertion-point variants, and test empty, single, absent, duplicate and large-index cases.

Deliverable: A one-page array versus linked-list comparison, a merge sort file and a binary search file with a table of edge-case tests.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
03Trees and graphs
  • Write pre-order, in-order and post-order traversals recursively and iteratively with a stack, plus level order.
  • Implement directed-graph cycle detection two ways (three-colour DFS and Kahn's algorithm), then BFS and Dijkstra shortest paths.

Deliverable: A Java file with the traversals and graph routines, each with a test and a complexity comment.

Practice prompt ↗
04Sliding window and dynamic programming
  • Solve two sliding-window problems, one fixed-size and one variable-size, and say what the window invariant is.
  • Solve the longest palindromic substring problem with expand-around-centre and with a DP table.
  • Rewrite one DP solution top-down with memoization and bottom-up, and state time and space for each.

Deliverable: Four timed solutions, each with its invariant or recurrence and its complexity written beside it.

Practice prompt ↗
05System design and the data layer
  • Outline a high-volume transaction pipeline with idempotency, a durable log, partitioning, a ledger store and reconciliation.
  • Build a SQL versus NoSQL table of workloads, consistency needs and query shapes with a pick for each.
  • Write a migration plan for a legacy application going to the cloud (inventory, dependencies, data move, cutover, rollback), and an API security checklist (authentication, authorization, rate limits, transport encryption, input validation, secrets).

Deliverable: A design outline, a data-store comparison table, a migration plan and a security checklist.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Project deep dive and fundamentals
  • Narrate each resume project aloud, including a schema walk-through and the choice of stack over alternatives.
  • Practise the hardest-bug story using PracHub's practice question on instances growing in memory to rehearse the debugging method.
  • Review one sheet each for OS, DBMS and networking.

Deliverable: Two recorded project walkthroughs, a debugging narrative and a one-page fundamentals sheet.

Practice prompt ↗
07Behavioral stories and a mixed rehearsal
  • Write structured outlines for the disagreement, new-technology and tight-deadline stories, and a paragraph answering why BNY compared to other financial institutions.
  • Run a mixed rehearsal: one coding problem, one design question and one story back to back.
  • Check your IDE, compiler and screen sharing, and prepare questions about the team's focus.

Deliverable: Three story outlines, a why-BNY paragraph and notes from the mixed rehearsal.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗

Expand any day for tasks and deliverables. Your progress is saved on this device.

Candidates describe the final stage as a behavioral or managerial round with attention to stability and an understanding of the financial domain, and they say project discussion carries into it. For a software role, your stories should show a decision you owned, the trade-off you weighed and the result.

Tell me about a time you faced a disagreement within your team. How did you resolve it?

medium
Behavioral & Leadership

Tell me about a time you faced a disagreement within your team. How did you resolve it?

Approach
  1. Choose a disagreement with real technical stakes, such as an API shape, a schema, a rollout plan or a library choice, where you owned part of the outcome. State both positions fairly, including the strongest argument for the other side.
  2. Spend most of the answer on how it was resolved: the evidence you gathered (a benchmark, a prototype, production data, a review of failure cases), who made the final call and how you kept working with that person.
  3. Show your own movement: say what you conceded or changed, or what you would concede in hindsight. A story in which you were simply right reads as one-sided.
  4. Close with the result and one concrete consequence, and say how the team decides such questions differently afterwards.
  5. The mistake that sinks it is making escalation to a manager the resolution, or casting the colleague as the problem.
Follow-up
  • What would you have done if the other person still disagreed after seeing the evidence?
  • Would you make the same call today, and what would change your mind?
  • How did your working relationship with that colleague change afterwards?

Describe a project where you had to learn a new technology on the fly.

medium
Behavioral & Leadership

Describe a project where you had to learn a new technology on the fly.

Approach
  1. Pick a technology that is on your resume or close to the stack candidates describe (a Java framework, a SQL feature, a cloud service, Angular). Name it, say what the project needed from it, and describe the time pressure in a sentence or two.
  2. Describe your learning loop concretely: what you read first, the small throwaway spike you built to test assumptions, who you asked, and how you compared your first version with the existing system.
  3. Include a mistake you made while learning and how you caught it (code review, a failing test, staging). It shows how you contain the cost of learning on the job.
  4. State what you shipped and the level you reached, and be honest about what you still did not know, because the project may be deep-dived next.
  5. The mistake that sinks it is saying you are a fast learner without naming the technology, the method or the result.
Follow-up
  • How did you decide what to learn first and what to skip?
  • How did you know your first working version was correct?
  • How would you teach that technology to a new teammate today?

How do you handle situations where you are under pressure to meet a tight deadline?

medium
Behavioral & Leadership

How do you handle situations where you are under pressure to meet a tight deadline?

Approach
  1. Set up the situation briefly: what caused the deadline pressure and what was fixed (date, scope, people). Keep it to two sentences.
  2. Show triage: list the work, separate must-ship from deferrable, and put the options in front of the stakeholder (a product manager or operations colleague) early instead of absorbing the problem quietly.
  3. Name the checks you refused to drop, such as tests on the data-correctness path, code review and a rollback plan, and what you cut instead. This matters for systems where precision and reliability are expected.
  4. Report the result honestly: what shipped on time, what moved, the follow-up tickets for deferred work, and what you changed to avoid a repeat.
  5. The mistake that sinks it is making late-night heroics the whole story, or hiding shortcuts you took.
Follow-up
  • What would you have cut next if the date had moved up again?
  • How did you tell stakeholders the scope was reduced, and how did they react?
  • Tell me about a deadline you missed, and what you did next.
  • 01

    Tell me about a time you faced a disagreement within your team. How did you resolve it?

  • 02

    Describe a project where you had to learn a new technology on the fly.

  • 03

    How do you handle situations where you are under pressure to meet a tight deadline?

  • 04

    Why do you want to join BNY specifically compared to other financial institutions?

  • 05

    What was the most difficult bug you encountered in this project and how did you debug it?

  • 06

    Walk me through the database schema you designed for your final project.

PracHub preparation framework ↗
How many rounds are there and how long does the process take?

Candidates report three stages over roughly 3-5 weeks: an Online Assessment, two to three technical interviews, and a final behavioral or managerial round. Teams and regions differ, and the timeline can stretch, so follow up politely and keep preparing.

PracHub Software Engineer practice ↗
What should I practise for the online assessment?

The reported format is a technical filter without further detail. Candidates who prepared for it recommend graph, dynamic programming, array and string problems. Practise those in Java or your strongest language, under a timer, with your own edge-case tests.

PracHub Software Engineer practice ↗
Which languages and technologies matter?

Candidates describe Java or another object-oriented language, data structures and algorithms, and SQL with relational databases as the core. Cloud platforms (AWS or Azure), Angular or a modern front-end framework, and system design exposure are described as additional strengths.

PracHub Software Engineer practice ↗
How much of the interview is about my own projects?

Candidates report project deep dives, and some teams focus on them heavily. Prepare each resume project's architecture, schema, the reason for the stack, one hard bug and one measurable result, and drop anything you cannot explain.

PracHub Software Engineer practice ↗
Do OS, DBMS and networking questions come up?

Candidates say they do. Review process versus thread and deadlock, ACID, indexes and isolation levels, and the basics of TCP, HTTP and TLS, and connect them to your projects where you can.

PracHub Software Engineer practice ↗
Do I need finance experience?

Candidates describe it as not strictly required, but a baseline understanding of how financial institutions use technology helps in the behavioral round. Learn payment flows, settlement and reconciliation in plain words, and link them to a design answer on financial transactions.

PracHub Software Engineer practice ↗
What if the call runs informally or something fails technically?

Candidates say some interviewers join late or run an informal session. Stay professional, and check your IDE, compiler and screen sharing beforehand so a technical glitch is a minor interruption.

PracHub Software Engineer practice ↗
Sources & methodology 3 sources ↗

No official company page is cited. Rounds and questions come from candidate reports and PracHub editorial material; each source shows the date it was read.