This is my first and only review of the interview process at a company. The interview process is a disrespectful waste of candidate's time. It starts with a recruiter call and then a hiring manager screen, which has questions ranging from ML to software to behavioral, which seemed fair, given the role. However, the problem started the next round where I was assigned an at home NLP project that was compute-intensive, writing-heavy, and time-consuming with a deadline of one week. Was told candidates would be judged on 'problem solving skills'. Was then moved to onsite after them looking at the code shared. Was rejected after the interview, the feedback being 'bugs in the code'. I am not able to understand, why was the code running on my end and has bugs when they ran it. Or why would you waste the candidates day asking them to come onsite, if you found bugs in the code, that are not minor. If bugs in the code is all the company is looking for, why not just have a one hour coding test like other companies do? Why do they need to waste a whole one week during a very stressful and busy time at work? Why would the company ask the candidate to attend an in-person onsite, if they couldn't run the code and that is a deal breaker?
The interviewers likely assumed that every candidate would have had a super computer to work on this task. and that the candidate will take a week off from work and make the code production ready and bug free. Also, the candidate should be well versed with every aspect and application of machine learning, since you wouldn't know what the interviewer knows. Also, why would they call the position a machine learning engineer? It should just have been called a LLM engineer or 'know it all' engineer.
I was also asked to run the preprocessing + evaluation pipeline in 30 minutes on a 8gb macbook air, during the interview, which has compute intense libraries such as Spacy and BERT. Good luck with that! How hard is it to look at the logs of each code to see if it really ran? It is a Jupyter notebook!! If the company is concerned about bugs in the code, why not just talk about it and I would have corrected it during the onsite? if at all, any? Again, the code was running perfectly fine on my computer
After all this hoopla, apparently the solution the interviewer is looking for is using a pre-trained model from hugging face(with an assumption that a candidate with multiple years of exp in ML would not know what hugging face is)! I am unsure why would they call it problem solving if all that they care about is using a pre-trained model. Also, why would they even need a thorough specification document, if all that they care about is knowing how to use hugging face? It could have been a simple Q&A type interview and TC's answer can be "use chatgpt or some zero shot methods" ?Also, not sure what is the point of packaging and sharing the code and the drafts, reead me docs, result logs if the interviewers would not spend any time on it?
If the company is unwilling to spend some time on the doc and the code, and understand what exactly the code does, why would they expect the candidate to spend a full week and a day? Even if there any bugs that arised, when moving the code from J notebook to .py and making it modular for an easier read, shouldnt this have been discussed during the onsite? or before the onsite?