Took the BofA HackerRank online assessment two weeks ago for a mid-level SWE role. Posting because I had trouble finding specifics and ended up over-preparing for the wrong things.
Format: 2 coding problems, 90 minutes, proctored (webcam + screen share). No system design. No SQL. No multiple choice. Just two algorithm problems.
Difficulty: Both were in the LeetCode medium range. One was a classic two-pointer problem on arrays, the other involved a BFS/DFS on a grid. Nothing that required exotic data structures or hard math. If you can do LeetCode mediums comfortably in 30-40 minutes, you'll be fine on time.
What I didn't expect: The coding environment is basic. No autocomplete. No syntax highlighting on the older version they were using. Write clean code as if you're in a text editor, not an IDE. Test with the sample inputs first, then mentally walk through your edge cases before running.
Language choice: Any mainstream language is fine. I used Python. A friend who did this round a month before me used Java. Both passed.
After the OA: If you pass, you get a 30-min recruiter callback within about a week. No code review of your OA solutions, they just get a pass/fail flag apparently.
What I wish I'd spent time on: BFS/DFS refresher. I hadn't done a grid problem in a while and I wasted time second-guessing my direction vectors. Spend 30 minutes the day before re-doing a couple grid traversal problems and you'll be fine.
Total time from OA to verbal offer was about 4.5 weeks, which felt slow but people kept saying that's normal for BofA. Their approval process is very layered.