Razorpay interview experience Real time questions & tips from candidates to crack your interview

Software Developer Intern

3 rounds | 7 Coding problems
upvote
share-icon

Interview preparation journey

expand-icon
Journey
My journey began with learning programming fundamentals and strengthening my understanding of data structures and algorithms. Initially, problem-solving felt challenging, but consistent practice gradually improved my logic and coding ability. Alongside this, I started building full-stack projects and explored various technologies, including HTML, CSS, JavaScript, TypeScript, React, Next.js, Node.js, Express.js, MongoDB, Firebase, REST APIs, Git, GitHub, Tailwind CSS, Bootstrap, Material UI, Clerk authentication, Stripe, Razorpay, and cloud deployment platforms. Working with these tools helped me understand how scalable real-world applications are built.
Application story
My profile was shortlisted, and I received a link for an online assessment. After clearing the assessment round, I was contacted by the recruitment team for further interview rounds. The overall process was smooth and well-structured, and after successfully completing the interview process, I received an offer for the internship.
Why selected/rejected for the role?
I was rejected mainly due to gaps in some advanced concepts and limited experience in certain problem-solving areas. The interview also highlighted areas where I could improve, such as optimizing solutions and explaining my approach more clearly. However, the experience helped me understand my weaknesses and motivated me to work on them through more practice and deeper learning.
Preparation
Duration: 14 months
Topics: Data Structures, Algorithms, Dynamic Programming, Object-Oriented Programming (OOP), System Design, Operating Systems, Database Management Systems (DBMS), Computer Networks, SQL, JavaScript, React, Node.js, Problem Solving, Time and Space Complexity Analysis
Tip
Tip

Tip 1: Practice DSA problems consistently and focus on understanding patterns instead of memorizing solutions.

Tip 2: Build multiple full-stack projects to gain practical development experience.

Tip 3: Revise core CS subjects like DBMS, OOP, and OS, and practice mock interviews regularly.

Application process
Where: Campus
Eligibility: 7+ CGPA. (Salary Package: 9 LPA)
Resume Tip
Resume tip

Tip 1: Practice DSA problems consistently and focus on understanding patterns instead of memorizing solutions.

Tip 2: Build multiple full-stack projects to gain practical development experience.

Interview rounds

01
Round
Medium
Online Coding Test
expand-icon
Duration90 minutes
Interview date30 Sep 2025
Coding problem3

1. Count All Subsequences

Easy
0/40
Asked in company
Razorpay

You are given an array A of N integers. Your task is to find the total number of distinct subsequences that can be formed from this array.


A subsequence is a sequence that can be derived from the array by deleting some or no elements, without changing the relative order of the remaining elements. This includes the empty subsequence.


Since the answer can be very large, you must return the result modulo 10^9 + 7.


Problem approach

Step 1: I first understood the definition of a subsequence and tried to list a few subsequences manually for a small example array.

Step 2: I realized that for every element in the array, we have two choices—either include the element in the subsequence or exclude it.

Step 3: Based on this observation, I understood that each element contributes two possibilities, which leads to a total of (2^N) possible subsequences for an array of size (N).

Step 4: Finally, I calculated the result using the formula (2^N) and explained the time complexity and reasoning behind it to the interviewer.

Save this for later

2. Longest Substring Without Repeating Characters

Moderate
30m average time
65% success
0/80
Asked in companies
Expedia GroupSAP LabsQualcomm

Given a string input of length n, find the length of the longest substring without repeating characters i.e return a substring that does not have any repeating characters.

Substring is the continuous sub-part of the string formed by removing zero or more characters from both ends.

Problem approach

Step 1:
First, I understood the problem and thought about checking every possible substring and verifying if it contains repeating characters. However, this brute-force approach would take O(N³) time, which is inefficient.
Step 2:
I then optimized the idea by generating substrings and checking uniqueness using a set, reducing the complexity to O(N²).
Step 3:
To further optimize, I applied the sliding window technique with two pointers. I maintained a window that expands when characters are unique and shrinks when a duplicate character appears.
Step 4:
I used a set / hash map to track characters currently in the window. When a duplicate character is found, I moved the left pointer forward until the duplicate is removed.
Step 5:
During this process, I continuously updated the maximum length of the window, which represents the longest substring without repeating characters.

Save this for later

3. Longest Increasing Path In A 2D Matrix

Hard
10m average time
90% success
0/120
Asked in companies
OYOIBMRazorpay

You have been given a MATRIX of non-negative integers of size N x M where 'N' and 'M' denote the number of rows and columns, respectively.

Your task is to find the length of the longest increasing path when you can move to either four directions: left, right, up or down from each cell. Moving diagonally or outside the boundary is not allowed.

Note: A sequence of integers is said to form an increasing path in the matrix if the integers when traversed along the allowed directions can be arranged in strictly increasing order. The length of an increasing path is the number of integers in that path.

For example :

3 2 2
5 6 6
9 5 11 

In the given matrix, 3 →  5 →  6 and 3 →  5 →  9 form increasing paths of length 3 each.
Problem approach

Step 1: Understand the structure
The matrix can be viewed as a directed graph:

Each cell is a node.

An edge exists if a neighbor has a greater value.

We need to find the longest path in this directed graph.

Step 2: Avoid brute force
If we start DFS from every cell without optimization, the complexity becomes exponential.
So, we apply DP with memoization.

Save this for later
02
Round
Medium
Face to Face
expand-icon
Duration60 minutes
Interview date10 Oct 2025
Coding problem2

1. Minimum Coins

Moderate
30m average time
70% success
0/80
Asked in companies
RazorpayRed HatOla

Bob went to his favourite bakery to buy some pastries. After picking up his favourite pastries his total bill was P cents. Bob lives in Berland where all the money is in the form of coins with denominations {1, 2, 5, 10, 20, 50, 100, 500, 1000}.

Bob is not very good at maths and thinks fewer coins mean less money and he will be happy if he gives minimum number of coins to the shopkeeper. Help Bob to find the minimum number of coins that sums to P cents (assume that Bob has an infinite number of coins of all denominations).

Problem approach

Step 1: I first understood the problem and identified that it is an optimization problem where we need to find the minimum number of coins required to form a given amount.

Step 2: I realized that this problem can be solved using dynamic programming because the solution for a larger amount depends on the solutions of smaller amounts.

Step 3: I created a DP array where dp[i] represents the minimum number of coins required to make amount i.

Step 4: I initialized dp[0] = 0 because zero coins are required to make amount 0, and initialized the rest of the values with a large number.

Step 5: Then, for each amount from 1 to the target amount, I checked all the coins and updated the DP value using dp[i] = min(dp[i], dp[i - coin] + 1) whenever i - coin is valid.

Step 6: Finally, after filling the DP array, I checked dp[amount]. If it was still a large value, it means the amount cannot be formed, so I returned -1; otherwise, I returned dp[amount].

Save this for later

2. Distinct Islands

Moderate
25m average time
80% success
0/80
Asked in companies
RazorpaySalesforceExpedia Group

You are given a two-dimensional array/list of integers consisting of 0s and 1s. In the list, 1 represents land and 0 represents water.

The task is to find the number of distinct islands where a group of connected 1s(horizontally or vertically) forms an island.

Note:
Two islands are considered to be the same if and only if one island is equal to another(not rotated or reflected) i.e if we can translate one island on another without rotating or reflecting then it would be considered as the same islands. 
For example:
1 1 0
0 0 1
0 0 1

In this example, we have two islands and they would be considered as distinct islands as we can not translate them on one another even if they have the same no of 1's.
For example :
1 1 0 0 0 
1 1 0 0 0
0 0 0 1 1
0 0 0 1 1

In this example, we have two islands and they are the same as we can translate one island onto another island, so our answer should be 1.
Problem approach

Step 1: I first understood that the grid can be treated like a graph where each land cell is a node and connected lands form a component.
Step 2: I traversed the entire grid, and whenever I encountered a cell with a value of '1', it indicated the start of a new island.
Step 3: From that cell, I performed a DFS/BFS to visit all connected land cells in four directions (up, down, left, right).
Step 4: While visiting those cells, I marked them as visited (or changed them to '0') so they are not counted again.
Step 5: Every time a new unvisited '1' was found, I increased the island count.
Step 6: After traversing the entire grid, the final count represented the total number of islands.

Save this for later
03
Round
Hard
Face to Face
expand-icon
Duration60 minutes
Interview date10 Oct 2025
Coding problem2

1. OS Concepts

  • Explain the difference between a process and a thread. (Learn)
  • What are the advantages of multithreading? (Learn)
  • Explain the difference between paging and segmentation. (Learn)
  • What is thrashing in operating systems? (Learn)
  • What is a race condition? (Learn)
  • Explain the critical section problem. (Learn)

2. URL Shortener

Easy
10m average time
90% success
0/40
Asked in companies
AdobeRazorpayMakeMyTrip

Design a URL shortening service (like TinyURL or Bitly). The system should convert a long URL into a short URL and redirect users to the original link when the short URL is accessed.

Problem approach

Tip 1: Start by identifying the main components—URL generation service, a database to store mappings (short URL → original URL), and a redirection service. Discuss how a unique short key can be generated using hashing or Base62 encoding.

Tip 2: Explain the database design, such as a table containing fields like short_url_id, original_url, created_at, and expiry. Mention indexing on the short URL for faster lookups.

Save this for later

Here's your problem of the day

Solving this problem will increase your chance to get selected in this company

Skill covered: Programming

What is recursion?

Choose another skill to practice
Similar interview experiences
SDE - 1
3 rounds | 5 problems
Interviewed by Razorpay
3088 views
0 comments
0 upvotes
SDET-2
1 rounds | 2 problems
Interviewed by Razorpay
1686 views
0 comments
0 upvotes
SDE - 1
4 rounds | 8 problems
Interviewed by Razorpay
1083 views
0 comments
0 upvotes
SDE - Intern
2 rounds | 5 problems
Interviewed by Razorpay
997 views
0 comments
0 upvotes