Round 1: With other engineers

My first every physical interview woot. The interview was with about 5 other engineers (wow, most number I have ever experienced). One of the engineers, Eugene (he is one level below director, and a few weeks after this interview, he left DSO to be an MD in Accenture), is Clovis’ friend, and he recognised me and asked me how I got to know Clovis.

I started by doing a self introduction and went through my internship experiences. Afterwards, I asked them if they wanted to know more about my personal projects, but they said they wanted to ask some questions from my internship experiences. Here begins the deep drilling…

Eugene wanted to know more about the entire Kafka UX project very deeply. So how I got the statuses from each of the backend service, and how the statuses are stored. I was unable to answer it as I only had a small part of the information. Again, I should not have been siloed to worked on my project only. I did not care how the statuses were derived from and just got the statuses and displayed it in the UI. At the end of this section, Eugene mentioned that Kafka has some sort of mechanism that checks the status of a message that was consumed. (not sure what this mechanism is, need to check)

Eugene then also asked more about my time at foodpanda, how the marketing banners are tracked. Again, I did not think of this during my time at foodpanda, all I did was implement a field that allows the managers to hard code a link. I did not think about the business side of things. How are the banners tracked? How do they record who clicked on what?

Next we moved on to some whiteboarding exercise. It was a classic binary insert with duplicates. Not sure why, but I was quite stumped, and I started writing code on the whiteboard. My thoughts were messy and I’m pretty sure my code was wrong. I failed to explain the idea and just started writing the code. On hindsight, I should have started off by running through with an example.

Next, was some object oriented question, to create a class diagram to represent something about commands and machine. I don’t think I came up with the best of solutions but they seem pretty happy with my answer.

Learnings:

  • Again, do not be project siloed, and work only on the aspect of the project that I am assigned to, try to get the full picture of what is going on
  • Do not immediately write code during whiteboarding exercise, explain the general idea then run it through with an example. I think I did this p well in the Rakuten interview