I submitted my application online and was contacted by a member of the Human Resources department. The HR representative was polite and amiable, and provided me with details about the company's hiring needs.
During our conversation, the HR representative inquired about my reasons for wanting to leave my current position and asked whether I had any familiarity with the company's products.
Unfortunately, the coding interview that followed was not a satisfactory experience. The session was scheduled to include two interviewers, but only one appeared. This was a discouraging and unprofessional start, as we waited for about four minutes before the interview began. The interviewer introduced the session as a coding interview and attempted to make it a conversational interaction. I was relieved to hear this, as I prefer not to have a silent interview.
Next, the interviewer presented a problem statement that involved designing a robot vacuum that follows commands such as "B(ack)," "F(orth)," "L(eft)," and "R(ight)." A Cartesian coordinate was given to represent the robot's position, so the direction the robot was facing was not relevant. In the first phase, we were tasked with moving the robot based on simple commands. In the second phase, the problem became more complex, and involved an actual room object with coordinates for the charger and obstacles. Depending on the command, the robot may or may not be able to move in a particular direction, and its charge may deplete, causing it to stop moving. The task description was lengthy, verbose, and time-consuming, encompassing over 60 lines of text, including the output examples. The interviewer emphasized that we should have something functional before refactoring, even though there was considerable duplicated code for all four directions.
Around 20 minutes into the interview, a second junior interviewer joined and apologized insincerely for being late. Despite the first interviewer's assurance that it would be a conversational process, they did not seem inclined to offer assistance or proactively contribute. When I requested clarification, the responses were brief and unenthusiastic. There was no sense of spontaneity or collaborative spirit during the coding process. After completing phase 2, I ran a quick dry run, identified some bugs, and corrected them. I mentioned multiple times that there was a lot of duplication that could be refactored if more time was available. However, I felt that their interest in me had waned. When I asked if I should format the output like their demo, they said yes. I recognized that this was a significant red flag during the interview, as it was a time-consuming task that added little value in terms of logic, it just means, here something to kill your time. Nonetheless, I proceeded with the task anyways.
The interview was extended by five minutes, and I was given the opportunity to ask a few questions. However, I did not feel that they were genuinely interested in answering them. The next day, I received feedback that indicated that there were numerous duplications in my code, and I had not planned well or communicated effectively. I found this ironic, as they were the ones failed to plan to arrive the interview on time, not to mention 20 minutes. Moreover, I had highlighted the issue of duplication several times, and I felt that they had rushed the interview from the outset. I had to prepare for the worst, including ensuring that I had something functional before refactoring it, since I never knew if they would extend the interview or not. As for the communication of the task requirements, the instructions were clear, and it was a simple task to design a robot vacuum. As an owner of a robot vacuum, I was familiar with the process, and I acted on it promptly, delivering a working solution.
Although I appreciated the company's product, the behavior of the interviewers was not conducive to a positive experience for potential employees.