
Candidates describe Bank of America software engineer interviews as a mix of resume-driven behavioral questions and technical depth in Java, Spring Boot, OOP and system design, with some reports of coding and SQL.
$131K
Avg. Base Comp
$160K
Avg. Total Comp
3 rounds
Typical Rounds
Not reported
Process Length
Bank of America software engineer candidates describe a process that leans on your own projects and core engineering fundamentals more than on pure algorithm drilling. Some reports mention a HireVue or online assessment, followed by a Superday with back-to-back interviews that mixes behavioral and technical questions. Others describe a recruiter screen, a technical round and a managerial or HR conversation.
Java comes up most. Reported topics include HashMap internals, Java memory allocation, collections, multithreading, synchronization, Future and CompletableFuture, ExecutorService, Spring Boot, REST status codes and SOLID principles. Two candidates were asked to design high-volume transaction or payment systems, one with high availability. Another candidate discussed building Kafka-based event-driven systems. Others report OOP basics such as classes and encapsulation, plus foundational SQL and database questions.
Coding is real but varies. Reports include a medium array or string problem, a multithreading and optimization task, and a Python round with linked lists, stacks and Fibonacci where optimal complexity mattered. That Python candidate described the problems as medium to hard, while others found the technical bar moderate. Interviewers repeatedly probed resume projects and technical decisions.
Outcomes are mixed. Several candidates received offers, and others did not advance, so prepare to explain your work and tradeoffs aloud. Practice talking through a problem as you solve it.
Synthesized from 10 candidate reports by our editorial team.
Had an interview recently?
Share your experience. Unlock the full guide.
Real interview reports from people who went through the Bank Of America Merrill Lynch process.
Three rounds. Java was easy—my prep paid off. Then came the whiteboard: mapping a Node.js schema. I flatlined, then pivoted hard. I left fried. You don't conquer; you survive a corporate street fight.
Questions asked:
Concurrency & Memory:
"How does ConcurrentHashMap achieve thread safety in Java 8+ compared to Java 7's segment-locking approach?" (Looking for CAS operations, synchronized on bucket head nodes, and red-black tree conversion under high collision).
"Walk me through how Garbage Collector (specifically G1 or ZGC) identifies GC Roots and manages the evacuation phase without causing prolonged Stop-the-World pauses."
"What actually happens when a Virtual Thread (Project Loom) blocks on I/O vs when a platform thread blocks? When does thread pinning occur?"
Spring Boot Framework Internals:
"If you call a @Transactional method internally from within the same class using this.myMethod(), why does the transaction fail to start? How do Spring’s CGLIB vs JDK dynamic proxies handle this?"
"By default, @Transactional only rolls back on unchecked exceptions (RuntimeException). How do you handle rollback for checked exceptions or custom domain errors without polluting business logic?"
The Main Schema & Workflow Prompt:
"Scenario: A user changes their phone number on the profile service. However, three downstream services (Auth/2FA, Order Notifications, and Marketing) store indexed phone records. Design a phone number disassociation workflow."
Follow-up: "Draw the PostgreSQL schema for the user_phone_mappings table. How do you handle unique constraint indexes when soft-deleting a disassociated phone number so the same number can be immediately re-bound by another user?"
Edge/Node.js component: "If the ingress gateway uses a Node.js edge worker for lightweight token validation, how do you handle asynchronous event propagation down to Java/Spring Boot microservices without losing context?"
Cloud Control Plane & Resiliency (AWS focus):
"If the downstream Notification service in AWS starts throwing 503 errors during a traffic spike, how do you implement Circuit Breaking (e.g., Resilience4j) and Dead Letter Queue (DLQ) retry strategies so the primary API doesn't fail the user’s request?"
"How do you ensure idempotency across asynchronous event consumers when processing phone disassociation events out of order?"
System Failure & Debugging:
"Your Spring Boot service is suddenly hanging in production. CPU usage is low, but thread pool utilization is at 100%. Walk me through your first 15 minutes of diagnostics using thread dumps (jcmd/jstack) or heap analyses."
"How do you detect and resolve connection pool starvation in HikariCP under heavy load?"
Team Leadership & Architecture Governance:
"You are migrating a legacy monolith REST controller to microservices. Half the team wants to do a big-bang rewrite; the client wants zero downtime. How do you pitch and execute the Strangler Fig pattern to stakeholders?"
"How do you handle a scenario where a junior engineer continuously bypasses architectural guidelines to hit aggressive sprint delivery dates?"
Share your own interview experience to unlock all reports, or subscribe for full access.
Sourced from candidate reports and verified by our team.
Topics based on recent interview experiences.
Featured question at Bank Of America Merrill Lynch
Implementing a priority queue used linked lists.
| Question | |
|---|---|
| Capital One Chatbot Design | |
| Secure Messaging Platform | |
| Triangle as Binary Array | |
| Deciding Between Solutions | |
| Testing Constraints | |
| Client Solution Pushback | |
| Why Do You Want to Work With Us | |
| Your Strengths and Weaknesses | |
| 2nd Highest Salary | |
| Employee Salaries | |
| Merge Sorted Lists | |
| Subscription Overlap | |
| Closest SAT Scores | |
| Empty Neighborhoods | |
| Top Three Salaries | |
| Monthly Customer Report | |
| Rolling Bank Transactions | |
| Find the Missing Number | |
| Maximum Profit | |
| Bagging vs Boosting | |
| String Shift | |
| Prime to N | |
| Comments Histogram | |
| Top 5 Turnover Risk | |
| Like Tracker | |
| Find the First Non-Repeating Character in a String | |
| Size of Joins | |
| Total Spent on Products | |
| Google Maps Improvement |
Synthesized from candidate reports. Individual experiences may vary.
Some candidates report starting with a HireVue-style video interview or an online assessment. Questions typically ask for a resume overview, past experiences and motivation for the role. Prepare concise project stories you can deliver directly to a camera.
One candidate reports a roughly 15-minute recruiter call after applying through a staffing agency. It covered their background, visa status, expectations, availability and Java, Spring Boot and cloud experience. Other candidates mention an initial HR screening before technical rounds, so this step may vary by route.
Candidates report one or two technical sessions, sometimes back-to-back in a Superday. Reported topics include Java collections and concurrency, Spring Boot, REST, SQL, OOP, payment or transaction system design, and a coding problem. Most describe the difficulty as moderate, though one candidate found the coding medium to hard.
Candidates report behavioral questions on challenges, teamwork, group work, why they want to switch roles, and handling live production issues. Some report this as a separate managerial or HR round, while others describe behavioral questions mixed into technical sessions. Expect follow-ups based on your resume.