The interview process for contractor was a live coding session and then a system design.
The coding was really easy and I finished the full test in 15 minutes and the interviewer said I was the quickest so far. This round was really easy one and the intervewer was also really good.
Then moved on to the final system design stage where I had to design a system where I have to display real time top 5 songs based on events received real time from different music devices. I had the worst experience here. Here I suggested multiple options out to the interviewer and then told him I would probably go with the ksqldb which is a streaming SQL engine for Apache Kafka . The interviewer was suprised about this option and have not heard of ksqldb or kafka streams . He was very adament that it can't be used for millions of events and I told him repeatedly that it is being used by companies like Netflix. Then I told him about the internals that these gets stored in Rocksdb which backs all of your stateful operations, then he kept on arguing saying Rocksdb is a timeseries db but I told him no it is a key value store and googled and showed him the proof. At this time I told him nevermind if you are not happy with me using ksqldb I can go with a custom solution but he kept on insisting again to go with the original option of ksqldb as he wants to know more and kept on asking me internal questions about how this is storing the state , which I explained to him and how that writes changelog back to kafka so that it will be replayed again in case of parition imbalances. I know he didn't understand anything I was explaning and also not allowing me to explain the custom non optimal solution he was looking for.
I was in a very difficult position , as not knowing something is fine as we are all learning everyday , there is always space for improvement but you have to be open to listen to new and better way, don't think that what you have is the best solution and always have an open mind. Otherwise you won't develop yourself in the long run .
At the end I had decided that I am not going to accept even if they offer , so the interviewer asked me if I had any questions regarding the role or the company , I just said no I don't have any questions.
One note to the HR, it would be good to run an internal training and probably prepare the interviewers to have an open mind for the solutions to eliminate any kind of bias.
After the interview I did ask ChatGPT for the solution and it did give me the solution almost similar to mine using kafka streams / ksqldb, So in short, it was the worst experience for me and I would never apply to Monzo again as I don't want to be a part of this kind of closed culture.