As an undergraduate in computer science, I was looking for an internship for my last summer when I came across Improbable. I knew about their internship on LinkedIn, however I didn’t apply straight ahead. When one of my friends told me he is having his first interview with them, that was when I decided to apply.

Improbable is British tech start up founded in 2012 in London. Now they have three offices, the other two being in Washington and San Francisco, however London is the only engineering office as of the time of writing this post. Improbable’s main product is SpatialOS, which is a distributed cloud computing platform for simulating large scale simulations mainly massive world games. Their product is the first of its kind and it is one of the reasons I liked the company.

My interview process went as follow, after I applied on their website, I was sent an algorithmic coding challenge on hackerrank.

The online coding challenge

The challenge consisted of two questions and it was required to solve them in 70 minutes. The first question was easy and didn’t require using special data structures or algorithms. The second one was difficult and Interesting, I was able to develop a naïve solution easily but as expected it won’t pass all test cases and will exceed the time limit in some of them. A tried to come up with a better solution but couldn’t get it to work before the challenge ended. But I submitted its code as well. I think I was very close to getting it to work correctly. After completing the challenge, a talent partner reached out to me and asked me to schedule a behavioral interview.

The behavioral interview

This was when I started researching more about the company, its product, people and values. I honestly liked the company and was interested in it. The interview went very well. Its purpose was to gauge my interest in the company, which I already had, discuss my past experiences and educational background, and answer questions of the type “tell me about a time when …”. I passed the interview and was asked to carry out another one, this time a technical one.

Online technical/coding interview

The technical interviewers were cooperative and interactive. I had one coding question in 45 minutes and I was able to solve the problem optimally and correctly from the first time. This is basically because I had practiced similar problems to the one I was given and I was able to relate it to the ones I solved before. The interviewer asked me to analyze the complexity of my solution and asked me to provide other possible solutions that had worse runtime (the naïve ones). Since I was able to answers the questions correctly and wrote the full working code including testing it, I passed the interview, after which I was invited to do a final onsite interview.

Onsite Interview!

I haven’t had an onsite interview before and this one was my first. I was sent the interview agenda, which showed that I will be having 3 rounds of interviews, one of them being behavioral. I had about two weeks to prepare for the interview but most of the time was consumed in preparing my travel documents and catching up with college.

I travelled to London for the onsite interview which was on 14th of December. The interview experience was generally good. I was greeted and guided to the room where I will be having the interviews. The first interview was coding one. I was given an algorithmic question like almost any other tech company out there and I was asked to develop a solution and write code for it and analyze the runtime complexity of it. I felt that my performance was good in the interview but it wasn’t my best. I won’t discuss what exactly I was asked in the interviews (it’s unethical and I signed an NDA).

Next up, I had my behavioral interview right after the first one. This one was easy, it was just there to verify my ability to work in a team and this kind of stuff. I believe I did well in this one.

Lastly, I had one more coding interview, this one wasn’t an algorithmic question but one where I was asked to get myself familiar with a piece of technology and build features using it. It was a different kind of interview, not hard, but new. I did well in understanding the technology requested and apply it to build the features I was asked to develop. But I needed to write code using it in Python, which I wasn’t sufficiently familiar with it. So I didn’t write the complete code and it took a large time of the interview. I think my performance was average in this interview.

After that I was escorted by one of the software engineers to have lunch. We had a nice chat over the lunch about the company, its product, his experience working in the company; and basically anything I wanted to ask him about. After lunch, we had a quick tour around the office.

The result

The next day after the interview, which is very quick, I got the result. Unfortunately, I wasn’t selected for the position. The recruiter was nice to give me feedback about the points I needed to improve, and that they will be happy to interview me next year after having more experience.

All in all, it was a great experience for me, even though I didn’t pass the onsite interview. I enjoyed the process, the recruiters/talent partners where helpful and responded very quickly to emails and the process could have been faster but I preferred having sometime to prepare when scheduling interviews. The interviewers where helpful and nice, they aren’t ignorant or annoying as some of the interviewers you might here of in stories on Quora. I was interested in the company and I wish I was accepted but that’s what happened.