Mobikwik (SSE, 4yoe)
Summary
I interviewed for a Senior Software Engineer role at Mobikwik. The process included one virtual round covering dynamic programming, variations of the staircase problem, and core Java concepts.
Full Experience
I recently had an interview for a Senior Software Engineer position at Mobikwik after receiving an HR call via a referral. The first round was a virtual, face-to-face interview. During this round, I was presented with two algorithm questions focusing on variations of the climbing stairs problem. Following that, I was asked several questions testing my knowledge of core Java concepts, thread management, and my experience with message queues and different types of databases.
Interview Questions (9)
You can climb either 1, 2, or 3 stairs at once. What is the total number of distinct ways to climb N stairs?
This is a variation of the previous question. If at any point you have taken x steps, you cannot take less than x steps again in subsequent moves. For example, (1,1,2) would be a valid sequence, but (1,2,1) would not. You need to provide all unique ways to climb N stairs adhering to this rule.
Explain the key differences between an abstract class and an interface in Java.
What access specifiers are used for methods and variables within a Java interface?
Consider a class with a final static variable that is not initialized. Will it compile? If not, how would you fix it?
Describe the different methods available to create a thread in Java.
How do we start a thread? What happens when run() is called directly instead of start()? Which method does start() internally invoke?
Have you used any message queue systems in your projects? If so, which ones?
What type of databases have you worked on (e.g., relational, NoSQL)?