HomeBlog › Bank of America Coding Interview Questions

Bank of America Coding Interview Questions: Digital Banking at Scale

A bank that millions of customers use through a mobile app every day. Here is what consumer digital banking at scale means for the interview, how a very large technology organisation and its early-career programs shape the process, and the problem types worth preparing.

Bank of America is one of the largest banks in the US, headquartered in Charlotte, North Carolina, and for many of its customers the bank is effectively an app: checking balances, depositing checks by phone, paying bills, sending money to friends, and asking Erica, the app's virtual assistant, about their spending. Behind that app sits a very large technology organisation, which also supports wealth management under the Merrill brand and investment banking and markets under BofA Securities.

That combination - a consumer product used at very large scale, and an engineering organisation big enough to run many different hiring pipelines - is what shapes the interview. Candidates generally describe a fundamentals-based coding bar, and the follow-ups worth preparing for are about what happens when a feature is used by a very large number of people at once, on patchy mobile connections, on app versions released long ago. This guide covers what that scale changes, how the process tends to run for experienced hires and for the early-career programs, and the problem types to prepare - patterns, not invented leaked prompts.

What consumer digital banking at scale changes

A banking app looks simple: a sign-in screen, a list of accounts, a list of transactions, and a few buttons that move money. The difficulty is in the numbers behind it - a very large customer base, predictable peaks around paydays and bill due dates, and older versions of the app that stay installed long after a new release ships. In an interview, that becomes a particular kind of follow-up: your solution works, so what breaks when it runs at that scale?

The naive version, and what breaks at scaleWhat to say instead
Offset pagination for transaction history (skip 40, take 20): new transactions shift every page, so customers see repeats, and deep pages get slowerKeyset (cursor) pagination on a stable sort key, such as timestamp plus ID
Recomputing account summaries every time the app opens: the busiest read path runs the heaviest queriesPrecomputed or cached summaries with a clear freshness and invalidation story
Every device polling for updates: a flood of requests that mostly return nothingPush notifications or event-driven updates, with polling only as a fallback
Renaming a field in an API response: older app versions that customers have not updated breakAdditive, versioned API changes and a support window for old clients
Unlimited sign-in attempts: an open door for credential stuffing and account takeoverRate limits per account, device, and network, plus step-up verification
Releasing a change to everyone at once: one bug reaches every customer at the same momentFeature flags, staged percentage rollouts, and a tested way to turn a feature off

None of this means designing a global platform inside a coding round. It means noticing, unprompted, that your code has users - a lot of them, on imperfect networks and devices - and saying one or two precise sentences about it.

Payments in the app: the client side of money movement

Money movement is where mistakes are most visible to customers. Bank of America's app offers person-to-person payments through Zelle alongside transfers, bill pay, and scheduled payments, and interviews for consumer-facing teams can probe the path from a tap on a phone to a confirmed payment. The ledger side - idempotency keys, balance updates, and audit records - is worth knowing, and our Wells Fargo guide works through that pattern in code. On a consumer-digital team, the experience layer around it tends to get more of the attention:

One company, a very large technology organisation

Bank of America's technology workforce is very large, and it supports far more than the consumer app: payments infrastructure, cybersecurity, data platforms, the systems behind Merrill and BofA Securities, and the shared infrastructure everything runs on. Two consequences follow for candidates.

First, the same job title can lead to very different interviews. A software engineering opening might sit on a mobile team, an API platform team, or a data team, so the posting and your recruiter are the best guides to what will be tested. Second, hiring at this volume tends to rely on consistent screening early in the process, so your fundamentals need to be dependable before any team-specific depth matters. Role families commonly tilt the interview like this:

How the process tends to run

Reported processes differ between experienced hiring and the structured early-career programs, which are covered in the next section. For experienced roles, candidates commonly describe stages like these; the number and order of rounds vary by team, level, and location.

Confirm with your recruiter: ask which team or program you are interviewing for, what each stage covers, and whether there is a design, SQL, or platform-specific component. A company this size runs many hiring pipelines and processes change over time, so treat any public description - including this one - as a starting point rather than a schedule.

Early-career technology programs

Bank of America recruits students and recent graduates into structured technology programs, historically including a summer analyst internship and a full-time analyst program for graduates, listed under names such as Global Technology Summer Analyst and Global Technology Analyst. Names, locations, timelines, and stages change from year to year, so the live listing on the bank's campus careers site is the source of truth.

Candidates commonly describe one or more online steps early on - an assessment, and in some pipelines a recorded video interview - followed by a final round of short back-to-back interviews. The bigger difference from experienced hiring is the question the interviewers are trying to answer:

For broader early-career preparation - assessments, recorded interviews, and behavioral basics - see our new grad interview guide.

What to study for a Bank of America software engineer interview

For structured algorithm coverage, our LeetCode patterns guide spans the easy-to-medium range candidates commonly report.

Representative problem types

Described as categories so you prepare the pattern rather than a single prompt:

Here is the flavour of problem that fits a consumer-digital team - serving transaction history to the app one page at a time, in a way that stays correct while new transactions keep arriving.

def transaction_page(txns, limit, cursor=None):
    """txns: list of dicts with "posted_at" (UTC timestamp), "id", "amount_cents".
    Returns (page, next_cursor): up to `limit` items, newest first.
    The cursor is the sort key of the last item sent - not a page number."""
    if limit <= 0:
        raise ValueError("limit must be positive")
    key = lambda t: (t["posted_at"], t["id"])            # id breaks timestamp ties
    newest_first = sorted(txns, key=key, reverse=True)   # production: an index does this
    if cursor is not None:
        newest_first = [t for t in newest_first if key(t) < cursor]
    window = newest_first[:limit + 1]                    # one extra row: is there more?
    page = window[:limit]
    next_cursor = key(page[-1]) if len(window) > limit else None
    return page, next_cursor

The strong answer is the reasoning around the code. Offset pagination breaks the moment a new transaction lands at the top: everything shifts down one place, so the next page repeats an item the customer has already seen, and deep offsets get slower as the database skips rows. A cursor built from the sort key avoids both problems, the ID breaks ties when two transactions share a timestamp, and fetching one extra row tells the app whether another page exists without an empty final request. Then name what the in-memory version leaves out: in production a composite index on account, timestamp, and ID turns each page into a short range scan however far the customer scrolls; the cursor should be encoded as an opaque token so app versions never depend on its format; and pending transactions that post later with a new timestamp can move, which is a good reason to discuss showing pending items separately.

What interviewers actually score

A note on integrity: prepare thoroughly and reason honestly in the room. Scale and failure follow-ups are where genuine understanding shows, and "I have not built that, but here is how I would reason about it" lands better than a confident guess.

Bank of America versus other big-bank interviews

Large US banks are easy to lump together, but the preparation differs. At JPMorgan Chase, the first question is which line of business and track you are interviewing for, which our JPMorgan guide covers in detail, while other banks lean toward markets technology or backend modernisation. The distinctive thing to prepare for at Bank of America is consumer digital scale: an app used by a very large customer base, payments that customers watch happen in real time, and a technology organisation large enough that structured programs and consistent screening shape how it hires.

A realistic two-week prep plan

  1. Days 1-2: Confirm the role family - mobile, web, back end, data, or infrastructure - or the program you are interviewing for, and what each stage covers. Reread the posting for the language and domain.
  2. Days 3-6: Core patterns - arrays, strings, hash maps, sorting, merging, heaps, and sliding windows - finishing each problem with its complexity and edge cases said out loud.
  3. Days 7-8: SQL and API design for a mobile client: keyset pagination, versioning, error responses, and indexes that match the queries.
  4. Days 9-11: Scale rehearsal - explain the transaction history API, a staged rollout plan, and sign-in rate limiting, each with what breaks first under load. Mobile candidates should add iOS or Android platform fundamentals.
  5. Days 12-14: Behavioral STAR stories about cross-team work and careful delivery, a walkthrough of one project end to end, and a timed mock that ends every problem with "what changes when millions of people use this?"

Real-time structure for your Bank of America rounds

CoPilot Interview is a native desktop app for Windows and macOS that surfaces structured approaches and talking points during live coding, design, and behavioral interviews. It has a permanent free tier, so you can see whether it helps before paying for anything.

Try it free

FAQ

How hard are Bank of America coding interview questions?

Candidates generally describe a fundamentals-based bar, with most reported coding problems in the LeetCode easy-to-medium range. The harder part is often the follow-up: what happens to your solution when a very large number of customers use it at once, on unreliable mobile connections and older app versions. A clean solution with sensible scale and failure reasoning tends to matter more than a rare algorithm.

Does Bank of America have technology programs for students and graduates?

Yes. Bank of America recruits students and recent graduates into structured technology programs, historically including a summer analyst internship and a full-time analyst program. Candidates commonly describe one or more online steps, such as an assessment or a recorded video interview, followed by a final round of short back-to-back interviews. Names, timelines, and stages change each year, so check the current listing on the campus careers site and confirm with your recruiter.

What topics should I study for a Bank of America software engineer interview?

Start with core data structures and algorithms: arrays, strings, hash maps, sorting and merging, heaps, sliding windows, and basic trees and graphs. Then add SQL, API design for mobile clients including pagination and versioning, and the language named in the posting. Experienced candidates should also prepare caching, consistency, and safe rollout practices, and mobile candidates should review iOS or Android platform fundamentals.

How does consumer digital banking show up in Bank of America interviews?

Mostly through follow-up questions about scale and the customer experience. Once your solution works, be ready to discuss pagination that stays correct as new transactions arrive, rate limits on sign-in and payments, caching, older app versions that are still in use, and rolling changes out gradually. You do not need to design a global system, but noticing that your code has a very large number of users is a strong signal.

Are Bank of America mobile engineering interviews different?

They commonly add platform questions to the usual coding round. Depending on the team, that can include the app lifecycle, managing state and offline behaviour, secure storage on the device, accessibility, and the language named in the posting, typically Swift or Kotlin for native apps. Ask your recruiter whether your loop includes a platform-specific round so you can prepare the right depth.