BlackRock Java Software Engineer NY Interview

Status: Working as a Software Engineer at a major investment bank in New Jersey
Position: BlackRock Java Software Engineer
Location: New York, NY
Interviewed from: New York, NY

1 x HackerRank (90 mins)
1 x Onsite (if hackerrank goes well) (5 interviews back to back)
1 x Video Interview (45 mins)

I had applied through LinkedIn and the recruiter contacted via email and shared the hackerrank link. They didn’t give a deadline but asked to complete it as soon as possible.

Hackerrank x 1 (90 mins):
The hackerrank test had 3 questions. 2 were algorithm hackerrank style and 1 was object oriented design. I hadn’t seen the problems before on hackerrank or leetcode. I would say easy-medium level. I chose Java as my preferred language.
Concepts covered: char-ascii, 2D array, maps, sets.

Onsite x 1 (1 hour) :
Standard algorithm, data structure questions. Did 4 questions during this round.
i. queue using 2 stacks, ii. min stack, iii. buy sell stock 1, iv. given a sorted array, create balanced BST
Solved all these.

Onsite x 2 (1 hour) :
Given a project and some enhancements - understand the current code and implement the enhancements. Concepts covered: object oriented design, dependency injection, priority queue, hashmap, and general problem solving.
Implemented the changes right before the end of the hour

Onsite x 3 (45 mins) :
Started with a design question. A version of word-count problem using map-reduce. Discussed this and count min sketch algorithm. After this, was given a string problem – given 2 strings s1 and s2, find if s2 is a cyclic version of s1. example: 1. s1: abc, s2: cab - true. 2. s1: abc, s2: cba. false.
Explained the approach and interviewer seemed content.

Onsite x 4 (45 mins) :
Discussion about multithreading and deadlocks. Was asked how a system identifies a deadlock situation and explain programmatically.
Struggled with this one.

Onsite x 5 (1 hour) :
How is a hashset implemented in java
Difference when trying to equate String literal and String obj
Some java streams questions
questions about hashCode() and equals()
question about having a custom object as key in hashmap
Answered all of these.

Video Interview x 1 (45 mins) :
Started off with high level discussion about messaging queues and apis with a trading system example. Moved on to lower level discussions about issues in multithreading, like, how to make sure objects with same id are picked up by the same thread. Then some questions about Java multithreading/concurrency apis.
It was a good discussion where I needed hints here and there to come up with convincing answers.

Got an email about a week later from recruiter saying they decided not to move forward. They said, they wanted somebody with more experience in development on message queue, apis and distributed systems.

Overall Experience: Most organized interviewing I have experienced by a finance firm. Was surprised why I was interviewed by just the one team when my resume never had the skills they rejected me for. Apart from this, I really enjoyed the interview process.

Hope this helps.