Interview Experience


This post is to share my interview experience with for a Senior Software Engineer position in Vancouver(July 2019). I applied to a position posted on LinkedIn and things kicked-off from there. I wasn’t in Vancouver at this time, and all the rounds happened over Google Hangouts.

Round 1 - Codility exercise

The first round was an online coding round on Codility and it had 3 questions to be completed in 2 hours.

The 1st question was about writing DB query with joins across 3 tables.

The 2nd was a coding question of easy-medium difficulty using HashMaps.

The 3rd was a hard problem with arrays, and the optimal solution involved DP with memoization.

I don’t remember the exact questions, sorry about that! I solved all 3 questions, but my solution for the 3rd question was sub-optimal and Codility deducted some points for that 😞

Round 2 - Hiring Manager

I think my score was good enough to clear the online coding round. An engineering manager from the company reached out in a couple of days and scheduled a video interview with me. After the usual introductions, he gave an overview about the company and walked me through some of the projects the teams at Article are working on. The following are some of the questions he asked after that:

What is the most recent project you worked on?

What were some of the challenging aspects of the project?

What are you looking for in your next company?

Why do you want to join Article?

Would you be comfortable moving to Vancouver?

At the end, the interviewer mentioned that an engineer from the company will get in touch with me to schedule the technical interviews.

Round-3.1 - With Principal Engineer

The technical interview consisted of 2 Hangout meetings(2 hours each) with a Principal Engineer at the company spread over 2 days. In the first meeting, he introduced himself and talked about some of the projects he was working on and the high-level company roadmap for the near future. This interview covered a whole lot of topics from coding , data structures, system design, CS fundamentals, etc. The following were some of the questions asked:

Tech stack of the previous project you worked on?

Reasons behind the choice of DB? (MySQL in my case)

What are the transaction isolation levels in MySQL?

How is isolation level different from/related to locking?

How do indexes work in a DB? (Probably the most common question across all my recent interviews)

Please describe in as much detail as you can what happens in the browser as your browser loads the page

He then shifted to some coding/design questions afterwards:

Check if an expression has valid matching paranthesis - This question is available on Leetcode, if you wanna check it out. I was asked to code this on Coderpad - The interviewer validated the solution by running a bunch of test cases.

Design a url shortener - This is also a very common System Design question, and you can find a variety of solutions in different interview prep sites - Just a Google search away 😄

Round-3.2 - With (the same) Principal Engineer

This happened a couple of days after the previous round, and focused mainly on coding and data structures.

Find a word in 2d array - The question is avaiable on Leetcode, in case you are eager to try it out.

Design and implement LRU Cache - This is [available on Leetcode] as well, but the interviewer was a bit old-school and prohibited me from using Java’s LinkedHashMap class - I was asked to write a custom LinkedHashMap since he wanted to test my raw coding skills.

Though these are common interview questions, the interviewer was very thorough and had a great eye for detail - He wanted every single corner case be addressed and tested before accepting the solution.

Round 4 - A different Hiring Manager

After I cleared the technical rounds, I had an interview with another Engineering Manager - He mentioned that I will be reporting to him if I ended up joining the company. It was more of a conversation where he talked about many of the things discussed during my previous Hiring Manager round, and then asked a few questions to understand my background and my past work experience.

Tell me about yourself.

What is your ideal team setting?

What are you looking for from your lead/manager?

What kind of manager do you thrive under?

That’s pretty much it - I think it was more of a conversation to get to know each other and less of an interview 😄

Final Thoughts

I got an offer a couple of days after the final round - But I ended up rejecting it because the salary was lower than my expectations and lower than some of the other offers I had. I was also disappointed to know that they don’t offer any stock options to employees - Without this, there wasn’t a lot of incentive to prefer this startup over the other options I had. In hindsight, I should’ve clarified about the salary stock options much earlier in the process - That would’ve save me and the interviewers a lot of time.

See Also