RazorPay | Lead Software Engineer | Bangalore
Lead Software EngineerRazorpay SDE2 Interview
SDE IIRazorpay round 1 interview experience
SDE IIRazorpay | OA (1st Round) | Senior MLE | Bengaluru
Senior Machine Learning EngineerRazorpay Machine Coding Round [Rejected] [SSE]
Senior Software Engineer9 more experiences below
Summary
I successfully interviewed for the Lead Software Engineer role at RazorPay in Bangalore, securing an offer after a comprehensive process that included system design, machine coding, and leadership discussions.
Full Experience
I applied for the Lead Software Engineer role at RazorPay via LinkedIn at the end of August and received an interview call approximately one week later. With about 6 years of experience and a Tier 1 education, I come from a product-based startup where I was a core team member, deeply familiar with all systems.
Round 1: System Design (45 mins)
My first round was a system design interview where I was asked to design a job scheduler. Despite it being my initial system design interview, I felt I performed quite well, and the verdict was a 'Hire'.Round 2: Machine Coding (2 hours)
This round focused on machine coding, requiring me to design a Load Balancer. It was specified to be a REST application with several endpoints for managing configurations, such as adding/removing backend servers, updating timeouts, and healthcheck endpoints. Beyond these config APIs, all other routes needed to be load balanced and directed to real (mocked online) backend servers. The expectation was a fully working, extensible code capable of handling dynamic config changes and various algorithms. I was permitted to use online resources but had to avoid direct code generation or copy-pasting. I nearly completed the working code, though I couldn't demonstrate actual online requests due to restrictions on my company laptop. I received a 'Hire' verdict.Round 3: System Design + LLD (45 mins)
The third round combined System Design and Low-Level Design. The task was to design Google Docs with a focus on Access Control Lists (ACL). The discussion heavily centered on storage solutions, database schema, and the actual implementation of synchronization. I again received a 'Hire' verdict.Round 4: Hiring Manager (30 mins)
This round with the Hiring Manager primarily focused on my current role, responsibilities, and my expectations for a new position.Round 5 & 6: Talent Acquisition + HR (30 mins)
The final rounds involved discussions with Talent Acquisition and HR, similarly focusing on my current role and my career expectations.I received an offer approximately 2.5 weeks after my last interview. Compensation details were shared separately.
Interview Questions (3)
Design a system for a job scheduler. This was my first system design interview, and I felt I performed pretty well.
The task was to design a load balancer as a REST application. It needed endpoints to manage configurations such as adding/removing backend servers, updating timeouts, and healthcheck endpoints. All other routes were expected to be load balanced and sent to real (online mocked) backend servers. The expectation was a fully working code that was extensible for dynamic config changes and various algorithms. I was allowed to refer to online resources but had to avoid generating or directly copy-pasting code.
The discussion focused on designing Google Docs, specifically emphasizing storage mechanisms, database schema, and the actual implementation of synchronization, along with Access Control Lists (ACL).
Preparation Tips
My preparation was not extensive, as I began job hunting shortly after news of my company's situation (RMG news) emerged. Being a member of the core team helped me significantly. I spent about one week on Data Structures and Algorithms (DSA), focusing on topics frequently asked in Google's last six months of interviews. For system design, I scanned major concepts on the ByteByteGo website. I also prepared for Low-Level Design (LLD) and machine coding using resources from CodeWithAryan.
Summary
I recently completed an online assessment for the SDE2 role at Razorpay, which involved MCQs and a challenging Low-Level Design question to build a Git-like version control system. Despite significant technical issues with the platform's IDE, I managed to submit my attempt.
Full Experience
I was contacted by a recruiter after a cold DM on LinkedIn regarding an SDE2 position at Razorpay. I took the online assessment in October 2025. The assessment was hosted on a platform called Evaluate and, while not strictly timed, had a 5-day expiration window.
The assessment began with 15 MCQs covering topics like RAG, temperature, TopP, and TopK, which I was unfamiliar with. Each MCQ had a strict 30-second time limit.
The core of the assessment was a Low-Level Design question where I needed to design a Version Control System similar to Git, with a strong emphasis on extensibility. The problem detailed specific functionalities to be implemented: init, add <regex>, checkout {-b}, reset HEAD~{int}, commit (-m and -am), status, log, diff, and help.
Interestingly, the assessment was proctored, but using an AI Code Assistant was explicitly permitted for the LLD problem. I utilized this by researching Git concepts and using ChatGPT to generate some prototype code within the platform's IDE. Unfortunately, the IDE proved buggy; it reverted to a state from several hours prior, causing me to lose all my recent work. Given that it was late and the link was close to expiring, I had to submit what I had. The IDE also presented numerous other bugs throughout the experience.
Interview Questions (1)
Design a Version Control System (VCS) similar to Git, with a strong emphasis on keeping the code extensible. The system should implement the following functionalities:
init: Initialize a new repository.add <regex>: Stage files matching the given regex.checkout {-b}: Switch branches or create a new branch if-bis specified.reset HEAD~{int}: Reset to a previous state, discarding changes.commit (-m and -am): Commit staged changes with a message, with options for direct commit and staging+commit.status: Show the working tree status.log: Display commit history.diff: Show changes between commits, working tree, etc.help: Provide usage information.
Preparation Tips
My preparation involved researching Git's architecture and functionalities. During the assessment, I leveraged an AI Code Assistant (ChatGPT) to help prototype code for the Low-Level Design problem, as this was explicitly allowed by the instructions.
Summary
I had my first round interview at Razorpay for a Senior Software Engineer role, where I was tasked with designing an in-memory SQL-like database. Unfortunately, I was rejected after this round.
Full Experience
Recruter reached out via naukri Exp: 4 years Role: SSE
Round 1:
Design a in memory SQL like databases
- You should be able to store rows
- Column could be of int, string or boolean datatype
- We should be able to set a primary key or set of primary keys
- Create index on the primary key
- Should not break on concurrent operations
- Should be able to create tables, rows and columns
You can find more details about this quesiton on other interview experience on leetcode
Suggestions:
- Don't just directly jump into the problem understand the problem you should know how will you store the data and index the columns that is the important part.
- Keep input sanitization in mind for eg if you give a empty column name or things like that
Verdict: Rejected
Interview Questions (1)
Design an in-memory SQL-like database with the following features:
- You should be able to store rows.
- Column could be of int, string or boolean datatype.
- We should be able to set a primary key or set of primary keys.
- Create index on the primary key.
- Should not break on concurrent operations.
- Should be able to create tables, rows and columns.
Summary
I recently completed an Online Assessment at Razorpay in June 2025 for a Senior Machine Learning Engineer role. The test consisted of three algorithmic problems, including LFU cache implementation, a string partitioning challenge, and a knapsack variant.
Full Experience
Recently I gave Online Assesment at Razorpay in June 2025 and these were the questions which were asked. I have 4 years of experience as a data scientist, the role was Senior Machine Learning Engineer.
Platform: HackerEarth
Mode: Online Coding Test
Round: 1 (Online Assessment)
No. of Questions: 3
Duration: 90 Minutes
Difficulty: Medium to Hard
Interview Questions (3)
Implement a cache using the Least Frequently Used (LFU) eviction policy. When the cache reaches its capacity, remove the least frequently used key. If there's a tie, remove the smallest key among those with the least frequency.
Function Signature:
def solve(N: int, Q: int, operations: List[List[int]]) -> List[int]
Parameters:
N: Capacity of the cacheQ: Number of operationsoperations: List of operations where:- Type 1:
1 key→ Get value from cache - Type 2:
2 key value→ Insert/Update key-value pair
- Type 1:
Constraints:
1 ≤ N ≤ 5 * 10^41 ≤ Q ≤ 2 * 10^51 ≤ key ≤ 2 * 10^51 ≤ value ≤ 10^9
Sample Input:
2
5
1 2 -1
2 1 3
2 2 4
2 4 5
1 2 -1
Sample Output:
-1 4
You're given a string S. Split it into parts such that each character appears in at most one part. The score of a part is the square of its length. Minimize the total score across all parts.
Function Signature:
def solve(S: str) -> int
Scoring Rule:
- For part of length
x, score =x^2
Constraints:
1 ≤ len(S) ≤ 500S[i]contains lowercase letters
Sample Input:
eccbbbbdec
Sample Output:
100
You're given N types of chip packets, each with:
- happiness
A[i] - weight
B[i] - cost
C[i]
Alice wants at least X happiness and at most Y total weight while minimizing the cost.
Function Signature:
def solve(N: int, A: List[int], B: List[int], C: List[int], X: int, Y: int) -> int
Parameters:
A: Happiness values (length N)B: Weights (length N)C: Costs (length N)X: Minimum required happinessY: Maximum allowed total weight
Constraints:
1 ≤ N ≤ 1001 ≤ A[i], B[i], C[i], X, Y ≤ 1001 ≤ C[i] ≤ 10^4
Sample Input:
5
1 2 3 4 5
1 2 3 4 5
5 4 3 2 1
10
10
Sample Output:
5
Preparation Tips
The test had a mix of system design logic (LFU cache), greedy optimization, and classic DP (knapsack). All questions were algorithmically rich and tested core CS fundamentals. Strong understanding of hash maps, priority queues, and dynamic programming is essential for clearing this round.
Summary
I interviewed for a Senior Software Engineer role at Razorpay, which involved a machine coding round focused on designing a search engine system. Despite presenting an optimal solution, I was rejected due to feedback on modularity and extensibility.
Full Experience
I recently interviewed for a Senior Software Engineer position at Razorpay after being referred. The interview took place on June 23rd, 2025, and included a machine coding round. I was tasked with designing a search engine-like system that needed to support adding and removing documents (treated as strings), efficiently returning all documents containing all words in a search query, and enabling document search via tags. I quickly understood the problem and implemented what I believed was the most optimal solution. However, I received feedback stating that my code lacked modularity and extensibility. I had even asked the interviewer for more details on potential future features to incorporate patterns for extensibility, but was told to stick to basic requirements. I also strongly disagree with the feedback regarding validations and edge cases, as we thoroughly tested these during the call, and my code was working fine. Unfortunately, I was rejected for the role.
Interview Questions (1)
Design a search engine-like system with the following functionalities:
- Ability to add and remove documents (consider documents as strings).
- Efficiently return a list of all documents containing all words in the search query.
- Documents should be searchable via tags (efficient dataset for storing documents was mentioned).
Summary
I interviewed for an SDE 1 Frontend Engineer role at Razorpay, completing Machine coding, Web Fundamentals/JS, and HR rounds. During the machine coding round, I was asked to build a carousel component. Despite completing functionalities, I was rejected due to incomplete animations and UI.
Full Experience
I applied on linkedin and got a call from HR. She discussed the rounds I was gonna appear for i.e, 1. Machine coding 2. Web Fundamentals and JS 3. HR round
- Machine coding round: I was asked to build a carousel component.
Although I never practiced this feature before the interview, I built and completed the functionalities but failed to complete the animations and failed to provide better UI. I was also asked some of the followup questions regarding UI/UX improvements.
Got rejection mail within 2 days.
Interview Questions (1)
Build a carousel component. I was also asked some of the followup questions regarding UI/UX improvements.
Preparation Tips
My suggestions: Please go through the Machine coding playlists available on youtube (Roadside coder, Akshay Saini). Practice all the questions thoroughly and try to understand each and every point discussed in the video.
Summary
I interviewed for an SSE role at Razorpay, completing two rounds focusing on Low-Level and High-Level Design, both of which I felt went well; however, I have not heard back and believe it's a rejection.
Full Experience
Round 1: LLD Desing in-memory Pub-Sub model With feature of producer, consumer, siubscription, handling offset, and etc. Designed a fully working code in Java with using interfaces of memory based approach and queue interface as well For me seems like interviewer was fully satisfied.
Round 2: HLD Desing some config manager service which is being called by internl and external serviced which can serve some custom config for certain user. Discussion went good i present approach as well later on afger discussion he asked about for logging and monitoring what we can do etc. He seems convinced and happy for the approach
Its been 3 days since Interview but didn't heared back from HR, he is not picking the call as well
Once more rejection ADDED :)
Interview Questions (2)
Design an in-memory Pub-Sub model with features like producer, consumer, subscription, and handling offsets.
Design a config manager service that can be called by internal and external services to serve custom configurations for specific users. The discussion also included logging and monitoring.
Summary
I interviewed for an SDE2 role at Razorpay, which included rounds on Low-Level Design (LLD), High-Level Design (HLD), and a Hiring Manager discussion.
Full Experience
LLD: design pub/sub queue
Implement a persistent pub-sub queue mechanism with guaranteed delivery of every published message for all the subscribed consumers in that subscribed topic in the same order.
HLD: design job scheduler
accept a file(job) and time/cron expression and schedule the jobs
HM: past experiences + resume
Interview Questions (2)
Implement a persistent pub-sub queue mechanism with guaranteed delivery of every published message for all the subscribed consumers in that subscribed topic in the same order.
accept a file(job) and time/cron expression and schedule the jobs
Summary
I interviewed for a Senior Software Engineer role at Razorpay in April 2025. The experience included a machine coding round for an in-memory search engine and a system design round focused on LeetCode's leaderboard. Despite positive feedback initially, I was eventually rejected after the HLD round.
Full Experience
Exp : 2 Years, 10 Months
Current Comapany : SaaS Startup in Blr
Application Process: Applied via Referral
Round 1 - Machine Coding
Duration : 90 Minutes (Inlucding Intro, Question Explnation, Running the test cases and explaining the question)
Basic into and then interviewer gave this question
Expecation - Running Code
Your organization has started a new tech blog with interesting tech stories and you’re responsible for designing and
implementing an in-memory search engine, supporting the search functionality on the blog content.
Requirements:
- It should be possible to create a dataset in the search engine.
- It should be possible to insert and delete documents in a given dataset. Each document is simply a piece of text.
- It should be possible to search through documents for a search pattern in a given dataset.
- It should be possible to order the search results
This is a frequently asked question at Razorpay and has been shared by multiple people on leetcode already.
I presented a simple CRUD application. Sharing the code for Serach Service in the end of the post.
I was able to run all the 4 requirements. The intervievier then asked me about inverted index & if I know about it. My solution didn't involve creating inverted index, but I did know what it is and explained the apporach via inverted index in the end.
If you are prepping for Razorpay, I highly reccommend soliving this question via Inverted Index and have some knowledg about suffix & prefix tree.
public class SearchService {private DocumentService documentService; // pattern = search Query public List<SearchResult> search(String blogName, String dataSet, String pattern, SortOrder sortOrder){ Collection<Document> documentCollection = documentService.getAllDocuments(blogName,dataSet); List<SearchResult> results = new ArrayList<>(); for(Document doc : documentCollection){ int freq = countOccurance(doc.getText(),pattern); if(freq>0){ results.add(new SearchResult(doc.getId(),freq)); } } results.sort((a,b) -> sortOrder == SortOrder.ASC ? Integer.compare(a.getFreq(),b.getFreq()) : Integer.compare(b.getFreq(),a.getFreq())); return results; } private int countOccurance(String text, String pattern) { int count = 0 , index = 0; while (true){ int foundIndex = text.indexOf(pattern,index); if(foundIndex==-1){ break; // no more to mach } count++; index = foundIndex + pattern.length(); } System.out.println("Count of pattern " + pattern + " in content " + text + " = " + count); return count; }
}
Verdict : Positive and next HLD round was scheduled.
Round 2 - HLD Round
Duration : 60 Minutes
Question - Design Leetcode - Foucs on LeaderBoard Design.
I presented a basic CRUD, some security and caching optimzations.
The interviewer had various questions towards the end but we were running out of time and I was not able to answer all.
This is not the best Design. I'm sharing whatever I was able to draw in the interview w/o optimizing.
There is a lot of stuff which was verbally explanined to the interviwer which is not written in this HLD diagram.


Some questions -
What if AWS Lamda goes down?
What if Redis Goes down?
AWS Lambda Cold Start?
How will we run test cases?
Stale Data?
What is the reason behind choosing a NoSQL/SQL DB? My response for this was that it really doesn't matter which DB we choose, because for our use case both SQL & NoSQL would work perfectly fine. This is a completely fine answer in my opinion but I'd strongly suggest here to have some points to explain some pros of the DB you are choosing.Just let the interviwer know you know about the DB you are choosing.
There is a lot of stuff which was verbally explanined to the interviwer which is not written in this HLD diagram.
Called the HR for Feedback - Rejected
Learning - Need to do basic CRUD design faster in HLD to be able to optimize the system and answer interviwers questions later.
Interview Questions (8)
Design and implement an in-memory search engine supporting search functionality on blog content. Requirements include:
- It should be possible to create a dataset in the search engine.
- It should be possible to insert and delete documents in a given dataset. Each document is simply a piece of text.
- It should be possible to search through documents for a search pattern in a given dataset.
- It should be possible to order the search results
Design the LeetCode platform, with a specific focus on the Leaderboard design. I shared diagrams for my proposed design. 

What if AWS Lambda goes down?
What if Redis goes down?
How to handle AWS Lambda Cold Start?
How will we run test cases for the designed system?
How to handle stale data in the designed system?
What is the reason behind choosing a NoSQL/SQL DB?
Summary
I recently appeared for the Razorpay SDE intern online assessment. It was a challenging experience with objective questions and three coding problems, and I was able to solve only one.
Full Experience
I recently appeared for the Razorpay SDE intern online assessment, and it was quite challenging yet insightful. The assessment was divided into two main sections. The first section was an objective section that consisted of 10 hard-level questions, covering concepts such as FCFS and SJF scheduling algorithms, along with stack and queue operations. Following this, there was a coding section which presented three problems of varying difficulty levels. Despite my best efforts, I was only able to solve one of these problems. This experience, while tough, truly highlighted areas where I need to improve, especially in dynamic programming, graph algorithms, and binary search, and provided valuable insights for future preparation.
Interview Questions (3)
You are given three integers N, M, and K, and you need to find the count of N-digit numbers satisfying the following conditions:
- Prime-indexed positions (e.g., 2, 3, 5, 7...) should have prime digits (2, 3, 5, 7).
- Non-prime-indexed positions (e.g., 1, 4, 6, 8...) should have non-prime digits (0, 1, 4, 6, 8, 9).
Example: For N=3, M=4, K=2, valid numbers include: 122, 422, 622, 822, 922.
The goal was to count all such numbers modulo 10^9 + 7.
You are given n servers numbered from 1 to n, with server n being the master server. Each server can send a message forward or backward based on a given time. The task was to calculate the minimum time required for each server to send a message to the master server. If a server couldn’t reach the master, the result should be -1.
You are given N wooden cubes with distinct side lengths arranged in non-decreasing order. The first and last cubes are fixed. The task was to remove exactly K cubes to minimize the maximum difference (diff) between the side lengths of two adjacent cubes.
Summary
I successfully interviewed for the SDE-1 position at Razorpay, completing three rounds including Low-Level Design, Hiring Manager, and HR discussions, ultimately receiving an offer.
Full Experience
My interview journey at Razorpay for the SDE-1 role spanned 20 days and consisted of three distinct rounds.
The first round was focused on Low-Level Design (LLD) and lasted 90 minutes. I was tasked with designing a photo-sharing application, which needed to incorporate a minimum of six core features plus a bonus feature. The discussion heavily revolved around various design patterns, specifically MVC (Model-View-Controller) and Singleton patterns.
Following that, I had a 1-hour Hiring Manager interview. This round delved into my previous projects, my approach to scaling strategies, and the technology choices I've made. There were also managerial questions concerning teamwork dynamics and conflict resolution.
The final round was a brief 15-minute HR interview where we discussed benefits and salary expectations. The HR representative was quite friendly and provided all the necessary information.
Interview Questions (1)
I was asked to design a photo-sharing application. The design needed to incorporate a minimum of six distinct features, and there was also a bonus feature to consider. The subsequent discussion primarily focused on demonstrating understanding of design patterns like MVC (Model-View-Controller) and Singleton.
Summary
I successfully interviewed for a Senior Software Engineer role at Razorpay, receiving an offer after multiple rounds. However, I declined the offer due to a significant discrepancy in compensation.
Full Experience
I participated in several interview rounds for the Senior Software Engineer position at Razorpay. The process included a Machine Coding round where I was asked to design a rate limiter, two Low-Level Design (LLD) rounds which included designing a wallet system, and a High-Level Design (HLD) round that also delved into my past projects, leadership skills, and behavioral aspects. An additional LLD round was conducted for me to assess my potential fit for a Lead Software Engineer role, given my prior experience and current compensation expectations. I cleared all rounds and was extended an offer for the Senior Software Engineer position, but I ultimately declined it as the proposed compensation was at least 30% lower than my current earnings.
Interview Questions (2)
Design a rate limiter system and implement it using the sliding window algorithm.
Design a complete wallet system.
Summary
I interviewed for an SDE position at Razorpay, which involved a machine coding round and a hiring manager round. Despite successfully completing the machine coding challenge, I was ultimately rejected.
Full Experience
HR contacted me in mid-May for the SDE position and initiated the interview process. There were two main rounds:
- Machine Coding Round: I was asked to design a Rating service. The initial requirement was for a single user, which then needed to be scaled for multiple users, much like a survey system. I successfully coded and tested my solution and cleared this round.
- Hiring Manager (HM) Round: This round involved in-depth discussions about my past projects and the tech stack I've worked with. There were a few questions related to automation, which I struggled to answer. I clearly communicated to the interviewer that my experience was purely on the backend side and I had no prior knowledge of automation. I realize I might need to upskill in that area and be more precise about related workflows in the future.
Unfortunately, the final verdict was a rejection.
Interview Questions (1)
Design a Rating service with the initial requirement for a single user, then extend it to support multiple users. The service should function similarly to a survey system where users can provide ratings.
Summary
My interview experience at RazorPay for a Product Engineer -2 (Backend) role involved an online assessment, two technical rounds, and a final hiring manager round. Unfortunately, I was rejected after the hiring manager round, despite feeling confident about my performance in most of the earlier stages.
Full Experience
I was initially contacted by a recruiter on Instahyre and received an OA link. The first round, an Online Assessment, consisted of 20 MCQ questions and two LeetCode medium-level problems.
The second round, Tech 1, was an interview with two POS team engineers who were both very supportive. They asked me questions on data structures like 'zigzag traversal of matrix', 'finding a loop in a linked list', and 'finding the intersection node of two linked lists'. There were also several questions related to Spring Boot and Java.
The third round, Tech 2, was with a principal engineer from the POS team. He began with an introduction and shared some background on working at RazorPay. I was able to answer almost all questions, except for one or two Java-related ones. The technical questions included 'given an array (1 -> n) find the non-duplicate number (allowed to modify input array)' and 'find a number which occurred twice in a sorted array (using binary search) and an unsorted array (using XOR logic)'. Additionally, there were questions about my projects, and specific topics like Java, Kafka, and Spring Boot. I managed to answer most of these, with only one or two Kafka-related questions posing a challenge.
The final round, with the Hiring Manager, was quite a frustrating experience. The HM was late by about 10 minutes, so I informed the recruiter and dropped the call. After some time, the recruiter called me back, saying the HM was available, so I rejoined. The HM immediately asked me to solve a LeetCode question without writing it down, just stating 'given an array find maximum sum subset'. I clarified if it was 'find the max sum of subarray' or 'find the max sum of subset'. I knew the optimal solution using Kadane's algorithm but tried to explain a brute-force approach first, detailing its time and space complexity. She seemed to misinterpret my explanation, wrongly swapping time and space complexities, which made me feel she was determined to reject me. I then explained and coded Kadane's algorithm. I initially presented a general approach, planning to address the all-negative numbers case later, but she pointed that out, so I fixed it. Following this, she asked some situation-based questions. I thought the round went well and was expecting a positive outcome, but I later received a rejection, with feedback stating that I was 'not able to find and check all possible scenarios for the given problem'. This feedback came as a surprise given my performance. Despite the HM round, all other interviewers were nice and helpful.
Interview Questions (6)
Implement a function to perform a zigzag traversal of a given matrix, printing elements alternately from left-to-right and right-to-left for each subsequent row.
Given the head of a singly linked list, determine if it contains a cycle. A cycle means that some node in the list can be reached again by continuously following the next pointers.
Given the heads of two singly linked lists, headA and headB, return the node at which the two lists intersect. If the two lists have no intersection at all, return null.
Given an array containing numbers in the range 1 to n, where all numbers appear twice except for one which appears once, find that non-duplicate number. You are allowed to modify the input array.
Given an array, identify and return a number that has occurred exactly twice. Provide a solution for when the array is sorted (hint: use binary search) and another solution for when the array is unsorted (hint: use XOR logic).
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. I clarified with the interviewer if the question was to find the maximum sum of a subarray or a subset.