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)
Number of Ways to Climb N Stairs (1, 2, or 3 Steps)
You can climb either 1, 2, or 3 stairs at once. What is the total number of distinct ways to climb N stairs?
Number of Ways to Climb N Stairs with Non-Decreasing Steps
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.
Abstract Class vs. Interface
Explain the key differences between an abstract class and an interface in Java.
Access Specifiers in Java Interfaces
What access specifiers are used for methods and variables within a Java interface?
Uninitialized Final Static Variable
Consider a class with a final static variable that is not initialized. Will it compile? If not, how would you fix it?
Ways to Create Threads in Java
Describe the different methods available to create a thread in Java.
Thread Lifecycle: Start vs. Run
How do we start a thread? What happens when run() is called directly instead of start()? Which method does start() internally invoke?
Experience with Message Queues
Have you used any message queue systems in your projects? If so, which ones?
Database Experience
What type of databases have you worked on (e.g., relational, NoSQL)?