Summary
I interviewed for a Senior Software Engineer position at M2P Fintech in Chennai. The process involved four rounds covering coding, Java fundamentals, system design, and culture fit, with an emphasis on practical problem-solving and architectural thinking.
Full Experience
I applied for the Senior Software Engineer role through the company portal. My interview process consisted of four rounds.
Round 1 – Coding
This round involved 3 LeetCode medium-level questions covering BSTs, Strings, and Arrays.Round 2 – Coding + Java
This round tested my knowledge of Core Java concepts and Spring Boot fundamentals. I was asked to solve the problem of rotating an array by k times. Additionally, there was a LeetCode medium-level binary tree traversal question.Round 3 – System Design
The system design round focused on designing BookMyShow, with a deep dive into database schema design, indexing, and partitioning strategies. There were also scenario-based Spring Boot questions and discussions on related trade-offs, along with relational database concepts and optimization techniques.Round 4 – Culture Fit
The final round assessed my culture fit. The questions revolved around my approaches to conflict resolution, strategies for escalating issues to higher management, and how I handle disagreements with leadership decisions.Interview Questions (5)
Given an array, rotate the array to the right by k steps, where k is non-negative.
Design a system like BookMyShow, focusing specifically on database schema design, appropriate indexing strategies, and partitioning techniques to handle large scale and high concurrency.
Discuss your approaches to resolving conflicts within a team or with stakeholders.
Explain your strategies for escalating issues or concerns to higher management.
Describe how you handle disagreements with leadership decisions.
Summary
I recently interviewed for a Java Backend SDE 2 role at M2P fintech, completing 5 rounds including technical screening, problem-solving, coding, system design, and culture fit. I successfully navigated the process and received an offer.
Full Experience
Current Experience
I currently have 3+ years of experience at a product-based MNC.
Interview Process Overview
I appeared for a Java Backend SDE 2 role at M2P fintech, which consisted of 5 rounds, each lasting approximately one hour.
Screening Round (Intervue.io)
This round started with introductions. The interviewer then asked questions related to Spring Boot and Core Java. I also had to code a few easy programming questions, with a specific requirement to use Java streams. It involved some brainstorming around Java code puzzles.
Problem Solving Round
After introductions, I was asked to code a couple of problems:
- Singleton Design Pattern: I implemented the Singleton design pattern.
- Substrings with Only Vowels: I was asked to return a list of all substrings consisting only of vowels. I presented an O(n^3) solution, then optimized it to an O(n^2) solution. I was prepared to discuss an O(n) sliding window approach, but the interviewer did not request further optimization.
Towards the end, I was asked questions related to API endpoint security.
Coding Evolution Round
This round began with introductions, followed by questions on Spring Boot and Core Java. There were also a few simple coding tasks related to Java streams. The primary coding question I faced was:
Design Round
This was my first ever High-Level Design (HLD) round. After introductions, the interviewer immediately presented a design problem: to design a system related to credit cards with two main requirements. First, to notify the user at the beginning of the expiry month that their card would expire at the end of the month. Second, to automatically expire the card and send a notification to the user once it had expired. I clarified whether it was HLD or LLD, and we proceeded with HLD. I began by listing the functional requirements and then drew a simple architectural diagram involving a couple of services. The interviewer cross-questioned me on performance aspects, and through discussions, I was able to refine the design. The interviewer was satisfied with the final design, and was quite helpful, providing hints throughout the round.
Culture Fitment Round
This was a 30-minute round with an interviewer who had about 15 years of experience. After introductions, we discussed common behavioral questions:
- How do I try to avoid bugs in my code?
- What is Agile methodology? What are its pros and cons?
- How do I communicate with different stakeholders while working on tasks in Jira?
- How do I handle work delivery pressure?
- Have I had any conflicts with teammates, and how did I resolve them?
At the end, I asked for feedback, and the interviewer mentioned that my responses were good and that I was well-adapted to agile methodologies and the field overall.
Overall Experience and Outcome
I found some difficulties in the screening and design rounds, but the other rounds felt relatively easy. The entire process took about a month. A couple of days later, I received positive feedback and am currently in the negotiation phase, which means I have an offer.
Interview Questions (9)
Implement the Singleton design pattern.
Given a string, return a list of all substrings that consist of only vowels. I discussed O(n^3) and O(n^2) solutions and intended to propose an O(n) sliding window approach.
You are given two integer arrays nums1 and nums2, sorted in non-decreasing order, and two integers m and n, representing the number of elements in nums1 and nums2 respectively. Merge nums2 into nums1 as one sorted array. The final sorted array should not be returned by the function, but instead be stored inside the array nums1. To accommodate this, nums1 has a length of m + n, where the first m elements denote the elements that should be merged, and the last n elements are set to 0 and should be ignored. nums2 has a length of n.
Design a system related to credit cards with two main requirements: 1. Notify the user at the start of their card's expiry month that the card will expire at the end of the month. 2. Automatically expire the card itself and send a notification to the user once it has expired. This was approached as a High-Level Design (HLD) problem.
How do you try to avoid bugs in your code?
What is Agile methodology? What are its pros and cons?
How do you communicate with different stakeholders while working on tasks managed in Jira?
How do you handle work delivery pressure?
Have you experienced any conflicts with your teammates, and how did you handle them?
Preparation Tips
I found some difficulties in the screening and design rounds. This indicates that I should have prepared more thoroughly for core Java puzzles, advanced Java stream usage, and especially for High-Level System Design. The other technical rounds felt relatively straightforward due to my existing preparation.
Summary
I recently completed my first interview round for the SDE1 position at M2P Fintech, which covered core Java, Spring Boot, database fundamentals, and two specific Data Structures & Algorithms problems.
Full Experience
I had my initial interview round for the SDE1 role at M2P Fintech. The session began with a standard self-introduction, followed by an in-depth discussion where I explained my past projects. The interviewer then moved on to core Java concepts, asking about multithreading and synchronization, as well as features introduced in Java 8. We also covered basic Spring Boot questions, focusing on annotations and the Inversion of Control (IOC) principle. Database concepts such as isolation levels and locking mechanisms were discussed, along with the differences between abstract classes and interfaces. Finally, I was presented with two Data Structures and Algorithms problems to solve.
Interview Questions (2)
The problem involved implementing or explaining Kadane's Algorithm to find the maximum sum of a contiguous subarray within a given array of integers.
Given the root of a binary search tree and two integers, low and high, the task was to trim the tree such that all its elements lie within the [low, high] range. The structure of the tree should be maintained as much as possible, and the result must still be a valid Binary Search Tree (LeetCode 669).