← Bank of America Interview Insights

Bank of America·Software Engineer·Technical Phone Screen·Senior

SeniorRejected
Jun 2026Remote

Summary

Went into a senior software engineer technical screen, spent about five minutes on the actual HackerRank problem before copy-pasting it into an AI and telling the interviewer the whole format was a waste of time. Surprisingly, the interviewer agreed completely and we spent the rest of the 90-minute slot just talking shop. No next round is coming, but it was weirdly the best interview conversation I've had in months.

Questions Asked (2)

Q1

Implement a coding solution to a given algorithmic problem on HackerRank.

Algorithms & Data StructuresTechnical Trade-offs
Author's notes

Copied the question straight into Claude, pasted the output back, and then just told the interviewer what I did and why.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the problem constraints and edge cases, then outline your algorithm and its complexity before coding. Write clean, modular code with meaningful variable names, and test with sample inputs and edge cases while explaining your reasoning.

Pro tip: Verbalize your thought process continuously, especially when stuck, and proactively discuss trade-offs between time and space complexity to demonstrate engineering maturity.

1. Understand and Clarify

Restate the problem in your own words, ask clarifying questions about input ranges, edge cases, and expected output format.

2. Plan the Approach

Discuss possible algorithms (e.g., brute force vs. optimized), choose one, and analyze its time and space complexity.

3. Code the Solution

Write clean, well-structured code with comments, using appropriate data structures and handling edge cases.

4. Test and Debug

Walk through sample inputs, test edge cases, and debug any issues while explaining your reasoning.

5. Review and Optimize

If time permits, discuss potential optimizations or alternative approaches and their trade-offs.

Key Points to Mention

  • Time and space complexity analysis (Big O notation)
  • Edge cases and input validation
  • Choice of data structures and their trade-offs
  • Code readability and maintainability
  • Testing methodology (unit tests, sample cases)
  • Communication of thought process and assumptions

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

How would you explain what a translation lookaside buffer is and how it's used?

Algorithms & Data Structures
Author's notes

This came up as context for why I was so fed up going into this screen.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining a TLB as a hardware cache that stores recent virtual-to-physical address translations, then explain its role in speeding up memory access by avoiding a full page table walk. Use an analogy like a 'cheat sheet' for addresses, and connect it to performance in systems with virtual memory.

Pro tip: Mention that TLB misses can be costly and that modern CPUs use multi-level TLBs; relate this to real-world performance tuning in high-frequency trading or banking systems where memory latency matters.

1. Define TLB

State that a TLB is a small, fast cache that holds recent virtual-to-physical address translations, part of the memory management unit (MMU).

2. Explain purpose

Describe how it reduces the time to access memory by avoiding a page table walk for every memory reference, leveraging locality of reference.

3. Describe operation

Outline the process: on a memory access, the CPU checks the TLB; if hit, translation is immediate; if miss, it walks the page table and updates the TLB.

4. Discuss performance impact

Highlight that TLB hits are fast, misses incur latency, and context switches may flush the TLB, affecting performance.

5. Connect to broader context

Relate TLB to virtual memory, caching, and system performance, especially in latency-sensitive applications like banking systems.

Key Points to Mention

  • TLB is a hardware cache for address translations.
  • It speeds up memory access by avoiding page table walks.
  • TLB hits vs. misses and their performance implications.
  • Locality of reference (temporal and spatial) makes TLB effective.
  • Context switches can flush the TLB, causing performance overhead.
  • Modern CPUs have multi-level TLBs (L1 TLB, L2 TLB).

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.