After a phone screen during which we discussed the company, my motivation, the company culture I am looking for etc., I was invited to take a technical interview within a couple of days.
The technical interview consisted of a take home assignment that I had to finish within 2 hours, followed by a 45 minutes call with two interviewers. The purpose of the call was to discuss the submitted solution, but also to code some tasks in real-time.
The take home assignment was easy and I completed it within the given amount of time. The interviewers were very friendly and the overall atmosphere was positive. They seemed to have no objections about my solution. They asked a few technical questions that, to me, seemed random rather than aiming to test specific skills + to code some real-time coding tasks, which I completed. Again, they did not seem to have any objections. We ended the interview with some questions from my side about the company.
During the call, there were three things that I noticed and found weird:
1. I used PyTorch for coding the take home assignment, since I am familiar with it and there was no requirement for or against the usage of a specific framework. One of the interviewers explicitly said he was familiar with Tensorflow and not much with PyTorch, which makes me wonder whether his evaluation of my submitted solution was based on objective criteria or not.
2. One of the real-time coding tasks involved taking a bunch of arrays of fixed length, computing a similarity score for each pair and displaying the pairs that were the least and most similar. I was asked about the time complexity of this solution (which is O(N^2) - two for loops - unless we can make some assumptions) and whether I could improve it. The interviewer was not satisfied with my answer and mentioned vectorization, but agreed that the complexity would still be O(N^2). Sure, there would likely be some speed-up, but it was unclear that he was looking for an "engineering solution", while I was trying to think of an algorithm better than brute force. I probably "lost some points" here as well.
3. At the end, one of the interviewers thanked me for the explanations and said he enjoyed learning new things, in particular about PyTorch. While I do appreciate the politeness, the goal of the interview is (or should be) testing the candidate's skills, not having the interviewer learn new things. I found this remark a bit unprofessional and made me question the objectivity of their evaluation criteria.
I got an email after a few days and was notified that they decided not to move forward with my application. No feedback or explanation were given.
I am not trying to cast a negative image on AbCellera via this review. Maybe it is a great company to work for. And, just like other people have mentioned, I also enjoyed the positive vibe and thought the people were very friendly, but I do believe there is room for improvement in their interviewing process. Maybe they have some specific things they are looking for in candidates, but, at least from my perspective, the interview seemed random and slightly unprofessional.