The whole process consists of the following:
1. HackerRank code screening
2. On-site white board discussion
3. Skype video interview
Overall, the interview process was not quite well organised and the evaluation criteria was not quite comprehensive and highly opinionated.
HackerRank code screening questions were quite good, including both 3 objective and 3 subjective questions. The total 6 questions were required to complete within 2 hours. The objective ones were 3 algorithm-based coding questions, which were at medium level. The subjective ones were 3 open questions to test your multi-threaded, performance bottleneck and troubleshooting questions.
After passing the HackerRank, I got the invite to their on-site interview, which was not quite well-organised. The on-site interview had 2 rounds and 2 engineers per round. The first round was delayed due to the meeting clash. I was sitting in a room waiting for those 2 engineers about 15 minutes. Clearly, those 2 engineers were not quite prepared for this interview. They asked me a recent project I did in the past and asked a few high-level design questions. The 2nd round was quite tough. Another 2 engineers asked me to solve 2 algorithm questions by writing some pseudo code on the white board. Fortunately, my solution was acceptable and they were quite happy.
Then I got the invite to the final stage, which was a Skype video interview. I was expecting some behaviour questions as the invite email gave the hint (e.g. personality). Yet, it was another data structure question, which I did not understand the question quite clearly and it went not that good.
In the end, I got their rejection and the reason was the failure on the last round. The result was a little disappointing, since their feedback was that, they wanted an engineer instead of developer and I was more of the latter than the former.
Honestly speaking, their 'engineer' perception is a little highly opinionated from my perspective. 'Software Engineer' evaluation criteria should be more comprehensive than one-sided 'data structure and algorithm'. Don't get me wrong, I like 'data structure and algorithm' evaluation as it is part of engineer foundamental. Yet, it should not be the only evaluation criteria. Other things, like programming fundamental, API design pattern, system and infrastructure design, should be taken into account as well. Yet, very little was touched during the whole interview process, especially when their job advertising listed a quite few Java Web technical stack requirements. If they just wanted a Data Engineer, the whole data structured oriented interview process might make sense ... on a 2nd thought, due to their data mining core business, it could explain that those interviewers have stronger 'data structure and algorithm' background and less of other, e.g. web, background, and they would interview candidates as per their own preference and images ...