phonepe logo

Phonepe Interviews

4 experiences46 reads70 questions50% success rate
PhonePe || SE (1-3Y) || Interview Experience
phonepe logo
Phonepe
SEOffer
October 19, 20259 reads

Summary

I recently interviewed for a Software Engineer position at PhonePe, which involved an Online Assessment, two technical coding rounds, and a final Hiring Manager discussion. I successfully received an offer for the role.

Full Experience

My interview journey at PhonePe for the Software Engineer role, with 1-3 years of experience, began after I applied through Instahyre.

Round 0 – Online Assessment

The initial stage was an online coding assessment conducted on CodeSignal. This round comprised four Data Structures and Algorithms questions, ranging from medium to hard difficulty levels.

Round 1 – Coding Round

Approximately one week after completing the OA, I received an email from HR to schedule the first coding round. I requested to postpone it by two weeks as I was out of town. In this round, I was presented with the following problem:

We thoroughly discussed multiple approaches to solve this problem. Due to time constraints, this was the only question covered in this round.

Round 2 – Coding Round

The very next day, I received a call from HR and scheduled the second coding round for the same week. This round involved two specific questions:

  1. Accounts Merge
  2. A variation of the Meeting Rooms problem, specifically focused on finding the minimum number of meeting rooms required.

Round 3 – HM Round

Again, HR contacted me the day after the second coding round, and I scheduled the Hiring Manager round for the following week. This round primarily involved a discussion about my resume and my work experience at my current company. I was asked technical and architectural questions related to my current projects. Additionally, the interviewer posed a few behavioral and situational questions to understand my approach to various workplace scenarios.

Verdict: I was selected for the position.

Interview Questions (4)

Q1
Min Stack
Data Structures & AlgorithmsMedium

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

Q2
Accounts Merge
Data Structures & AlgorithmsMedium

Given a list of accounts where each account consists of a name followed by some email addresses, merge these accounts. Two accounts belong to the same person if they have some email common. Note that even if two accounts have the same name, they may belong to different people as people could have the same name. A person can have any number of accounts initially, but all of their accounts have the same name.

Q3
Meeting Rooms II Variation (Find Minimum Meeting Rooms)
Data Structures & AlgorithmsMedium

Given an array of meeting time intervals intervals where intervals[i] = [starti, endi], return the minimum number of conference rooms required.

Q4
Behavioral and Situational Questions
Behavioral

The interview included general behavioral and situational questions designed to assess problem-solving skills, teamwork, handling conflict, and career aspirations.

PhonePe Prep
phonepe logo
Phonepe
October 1, 202521 reads

Summary

This post summarizes my interview experience at PhonePe, detailing the various Data Structures & Algorithms and System Design questions I encountered across multiple technical rounds.

Full Experience

My interview journey at PhonePe involved several intense rounds, primarily focusing on Data Structures & Algorithms (DSA) and System Design.

DSA Rounds

The DSA rounds were comprehensive, covering a wide array of topics. I was presented with problems such as "Burning Tree" and "Shortest Path to Get All Keys". I also tackled LeetCode 1235: Maximum Profit in Job Scheduling and 1657: Determine if Two Strings Are Close. During Matchsticks to Square, I initially struggled due to misinterpreting the input format, but once I understood, my approach was satisfactory to the interviewer. For Kth Smallest Element in a Sorted Matrix, I started with a min-heap solution, and after a hint, optimized it using binary search.

Other notable DSA problems included Burst Balloons (a hard DP problem) and The Celebrity Problem. In a subsequent PS/DS round, I was asked to solve Remove K Digits and a problem from Codeforces. I also faced a custom question: "Find the minimum number of swaps to make a string palindrome", for which I used a greedy approach. Another question involved finding "the sum of all nodes at the deepest level in a binary tree".

I encountered a complex problem on maximizing total damage with spell casting, where I had to consider sliding window or dynamic programming, and removing the most stones in the same row or column, which required graph theory and Union-Find. Classic problems like Trapping Rain Water, Left View of a Binary Tree, and finding nodes at 'k' distance from a target node were also asked. I implemented a Min Stack and was tasked with printing the level order traversal of a tree with alternate direction changes, which I solved easily. Another monotonic stack problem was given, and despite modifications, I managed to solve the first two versions.

Additional problems included First Missing Positive, Longest Increasing Path in a Matrix, and an O(log n) optimization challenge for the Complete Binary Tree Inserter (which I could only solve in O(n)). Queue Reconstruction by Height, House Robber III, Kth Ancestor of a Tree Node, and Bricks Falling When Hit were also part of the technical assessments. I was also asked a question related to the Convex Hull Algorithm and how to generate random points within a circle with equal probability distribution.

System Design Rounds

The System Design rounds were equally challenging. I was asked to design a Search Autocomplete feature, where I successfully implemented a Trie-based solution and discussed scalability and optimizations. One of the final rounds was to design Instagram, where I focused on posting, immediate visibility, feed generation, and likes/comments. I covered NFRs, scale, HLD, and trade-offs, though I felt I could have elaborated more on the likes/comments service. I also had to design a service for delayed triggers, a generic online game (like Ludo/Chess) where I had to drive the discussion from FNRs to tech stack and matching logic, and Payment Gateway Integration. Another iteration of Design Instagram highlighted the interviewer's disagreement with a message queue for feed publishing/fetching at massive scale. Lastly, I designed Twitter, covering tweet posting, follow-following, timelines, and profiles, emphasizing LLD and HLD aspects.

Interview Questions (62)

Q1
Burning Tree
Data Structures & AlgorithmsMedium

Find the minimum time taken to burn the entire binary tree starting from a given target node.

Q2
Shortest Path to Get All Keys
Data Structures & AlgorithmsHard

Given a 2D grid consisting of walls, empty cells, the starting point, keys, and locks. Return the shortest path to get all keys.

Q3
Maximum Profit in Job Scheduling
Data Structures & AlgorithmsHard

Given n jobs where startTime[i], endTime[i], and profit[i] are the start time, end time, and profit of the i-th job, return the maximum profit you can achieve by scheduling jobs such that no two jobs overlap.

Q4
Determine if Two Strings Are Close
Data Structures & AlgorithmsMedium

Two strings are considered 'close' if you can attain one from the other using two types of operations: 1. Swap any two existing characters. 2. Transform every occurrence of one existing character into another existing character, and vice versa. Return true if they are close, false otherwise.

Q5
Matchsticks to Square
Data Structures & AlgorithmsMedium

You are given an integer array matchsticks where matchsticks[i] is the length of the i-th matchstick. You want to use all the matchsticks to form one square. You should not break any single matchstick, but you can link them up, and each matchstick must be used exactly one time. Return true if you can make this square, and false otherwise.

Q6
Kth Smallest Element in a Sorted Matrix
Data Structures & AlgorithmsMedium

Given an n x n matrix where each of the rows and columns is sorted in ascending order, return the k-th smallest element in the matrix.

Q7
Burst Balloons
Data Structures & AlgorithmsHard

You are given n balloons, indexed from 0 to n - 1. Each balloon is painted with a number on it. If you burst balloon i, you will get nums[left] * nums[i] * nums[right] coins. Your goal is to burst all the balloons to get the maximum coins. Assume nums[-1] = nums[n] = 1.

Q8
The Celebrity Problem
Data Structures & AlgorithmsMedium

In a group of N people, a celebrity is someone who is known by everyone else but does not know anyone. Find the celebrity if one exists.

Q9
Remove K Digits
Data Structures & AlgorithmsMedium

Given a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible.

Q10
Codeforces 1037/D - Build Permutation (BFS/DFS Traversal)
Data Structures & Algorithms

Problem statement from Codeforces problem 1037/D, related to tree traversals.

Q11
Minimum Swaps to Make String Palindrome
Data Structures & AlgorithmsMedium

Given a string, find the minimum number of swaps required to make it a palindrome.

Q12
Sum of Nodes at Deepest Level in Binary Tree
Data Structures & AlgorithmsMedium

Given a binary tree, find the sum of all nodes at the deepest level.

Q13
Maximize Total Damage with Spell Casting
Data Structures & Algorithms

A problem about maximizing total damage with spell casting. I had to devise a strategy, possibly using sliding window or dynamic programming, to balance choices and constraints.

Q14
Remove Most Stones with Same Row or Column
Data Structures & AlgorithmsMedium

You are given an array of stones where stones[i] = [ri, ci] represents the location of a stone on a 2D plane. You can remove a stone if and only if it shares the same row or column as another stone that has not been removed. Return the maximum number of stones that you can remove.

Q15
Trapping Rain Water
Data Structures & AlgorithmsHard

Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining.

Q16
Left View of a Binary Tree
Data Structures & AlgorithmsMedium

Given a binary tree, print the nodes in 'left view' order (first node at each level from the left side).

Q17
Nodes at K Distance from Target in Binary Tree
Data Structures & AlgorithmsMedium

Given the root of a binary tree, the value of a target node, and an integer k, return an array of the values of all nodes that have a distance k from the target node.

Q18
Min Stack
Data Structures & AlgorithmsMedium

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

Q19
Binary Tree Zigzag Level Order Traversal
Data Structures & AlgorithmsMedium

Given the root of a binary tree, return the zigzag level order traversal of its nodes' values. (i.e., from left to right, then right to left for the next level and alternate between).

Q20
Monotonic Stack Problem with Modifications
Data Structures & Algorithms

A problem solvable using a monotonic stack. The interviewer modified the question multiple times during the interview. I solved the initial problem and its first modification.

Q21
First Missing Positive
Data Structures & AlgorithmsHard

Given an unsorted integer array nums, return the smallest missing positive integer.

Q22
Longest Increasing Path in a Matrix
Data Structures & AlgorithmsHard

Given an m x n integers matrix, return the length of the longest increasing path in the matrix. From each cell, you can either move in four directions: left, right, up, or down. You may not move diagonally or move outside the boundary (i.e., no wrap-around is allowed).

Q23
Complete Binary Tree Inserter
Data Structures & AlgorithmsMedium

Implement the CBTInserter class. The question specifically asked for an O(log n) solution for insertion, though I could only achieve O(n).

Q24
Queue Reconstruction by Height
Data Structures & AlgorithmsMedium

You are given an array of people, people, as people[i] = [hi, ki]. hi is the height of the i-th person, and ki is the number of people in front of the i-th person who have a height greater than or equal to hi. Reconstruct the queue.

Q25
House Robber III
Data Structures & AlgorithmsMedium

The thief has found himself a new place for his thievery again. There is only one entrance to this area, called root. Besides the root, each house has one and only one parent house. After a tour, the smart thief realized that all houses in this place form a binary tree. It will automatically contact the police if two directly-linked houses were robbed on the same night. Determine the maximum amount of money the thief can rob tonight without alerting the police.

Q26
Kth Ancestor of a Tree Node
Data Structures & AlgorithmsHard

Given a tree with n nodes labeled from 0 to n - 1, and parent[i] denotes the parent of i-th node. Find the k-th ancestor of a given node.

Q27
Bricks Falling When Hit
Data Structures & AlgorithmsHard

You are given an m x n grid representing a map of bricks. A brick is at grid[i][j] = 1 and an empty cell is at grid[i][j] = 0. You are also given an array hits, where hits[i] = [rowi, coli] indicates a brick (if exists) at that position is removed. We need to find the number of bricks that will fall after each hit.

Q28
Convex Hull Algorithm
Data Structures & AlgorithmsHard

A problem related to finding the convex hull of a set of points.

Q29
Generate Random Points in Circle with Equal Probability
OtherMedium

Write a function that generates random points within a circle with equal probability distribution.

Q30
Search in Rotated Sorted Array
Data Structures & AlgorithmsMedium

There is an integer array nums sorted in ascending order (with distinct values). Prior to being passed to your function, nums is possibly rotated at an unknown pivot index k. Given the array nums after the rotation and an integer target, return the index of target if it is in nums, or -1 otherwise.

Q31
Binary Tree Maximum Path Sum
Data Structures & AlgorithmsHard

A path in a binary tree is a sequence of nodes where each pair of adjacent nodes in the sequence has an edge connecting them. A node can only appear in the sequence at most once. The path does not necessarily need to pass through the root. The path sum is the sum of the node's values in the path. Given the root of a binary tree, return the maximum path sum of any non-empty path.

Q32
Max Integers to Add Without Negative Sum
Data Structures & AlgorithmsMedium

Given an array of integers, count the maximum number of integers you can add such that at any point, the cumulative sum from left to right never goes negative. The question was presented in a scenario.

Q33
Sum of Distances in Tree
Data Structures & AlgorithmsHard

There is an undirected connected tree with n nodes labeled from 0 to n - 1 and n - 1 edges. You are given an array edges of length n - 1, where edges[i] = [ai, bi] indicates that there is an edge between nodes ai and bi. Return an array answer of length n where answer[i] is the sum of the distances between node i and all other nodes in the tree.

Q34
Rotting Oranges
Data Structures & AlgorithmsMedium

You are given an m x n grid where each cell can have one of three values: 0 representing an empty cell, 1 representing a fresh orange, or 2 representing a rotten orange. Every minute, any fresh orange that is 4-directionally adjacent to a rotten orange becomes rotten. Return the minimum number of minutes that must elapse until no fresh oranges remain. If this is impossible, return -1.

Q35
Greedy Meeting Schedule Problem
Data Structures & AlgorithmsMedium

A greedy problem similar to typical meeting scheduling or interval problems.

Q36
Monotonic Stack (Next Greater Element variant)
Data Structures & AlgorithmsMedium

A problem that can be solved using a monotonic stack, similar to finding the next greater element.

Q37
Shortest Path in a Grid with Obstacles Elimination
Data Structures & AlgorithmsHard

You are given an m x n integer matrix grid where grid[i][j] is either 0 (empty) or 1 (obstacle). You can move up, down, left, or right. You are also given an integer k. Return the minimum number of steps to walk from (0, 0) to (m - 1, n - 1) given that you can eliminate at most k obstacles. If it is impossible to find such a path, return -1.

Q38
Maximum Sum BST in Binary Tree
Data Structures & AlgorithmsHard

Given a root of a binary tree, return the maximum sum of all nodes in any BST (Binary Search Tree) subtree.

Q39
Find the Kth Smallest Sum of a Matrix With Sorted Rows
Data Structures & AlgorithmsHard

Given an m x n matrix mat where each row is sorted in non-decreasing order, and an integer k, return the k-th smallest sum among all possible arrays that you can form by choosing exactly one element from each row.

Q40
Number of Islands
Data Structures & AlgorithmsMedium

Given an m x n 2D binary grid which represents a map of '1's (land) and '0's (water), return the number of islands.

Q41
Diameter of Binary Tree
Data Structures & AlgorithmsEasy

Given the root of a binary tree, return the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root.

Q42
Range Sum Query 2D - Immutable
Data Structures & AlgorithmsMedium

Given a 2D matrix matrix, handle multiple queries of the following type: Calculate the sum of the elements inside the rectangle defined by its upper left corner (row1, col1) and lower right corner (row2, col2).

Q43
Count Ways to Build Good Strings
Data Structures & AlgorithmsMedium

Given integers low, high, zero, and one. Return the number of 'good' strings, which are binary strings whose length is between low and high (inclusive) and contain zero consecutive '0's and one consecutive '1's.

Q44
Binary Tree Cameras
Data Structures & AlgorithmsHard

You are given the root of a binary tree. We install cameras on some nodes of the tree. Each camera at a node can monitor itself, its parent, and its immediate children. Return the minimum number of cameras needed to monitor all nodes of the tree.

Q45
Escape the Spreading Fire
Data Structures & AlgorithmsHard

You are given a 0-indexed m x n grid of integers fire. You are in a cell (0, 0) and a fire starts at a cell (fireRow, fireCol). You want to reach a safe cell (m - 1, n - 1) before the fire reaches it. Return the maximum time t you can wait before starting your journey, such that you can still reach the safe cell. If it is impossible to ever reach the safe cell, return -1. If you can always reach the safe cell regardless of how long you wait, return 10^9.

Q46
Daily Temperatures
Data Structures & AlgorithmsMedium

Given an array of integers temperatures represents the daily temperatures, return an array answer such that answer[i] is the number of days you have to wait after the i-th day to get a warmer temperature. If there is no future day for which this is possible, keep answer[i] == 0 instead.

Q47
Longest Increasing Subsequence
Data Structures & AlgorithmsMedium

Given an integer array nums, return the length of the longest strictly increasing subsequence.

Q48
Minimum Path Cost in a Grid
Data Structures & AlgorithmsMedium

You are given an m x n integer grid grid. You are also given an m x n integer matrix moveCost where moveCost[r][c] is the cost to move from a cell (r, c) to any cell in the next row column c'.

Q49
Simple Bank System
Data Structures & AlgorithmsMedium

Implement a bank system with operations like transfer, deposit, and withdraw. This is a design problem often involving handling multiple accounts and transactions.

Q50
Decoded String at Index
Data Structures & AlgorithmsMedium

You are given an encoded string s and an integer k. To decode the string, this is how it works: if the character is a digit d, the encoded string is repeated d - 1 times. Return the k-th character of the decoded string.

Q51
Check Array Formation Through Concatenation
Data Structures & AlgorithmsEasy

You are given an array of distinct integers arr and an array of integer arrays pieces, where the integers in pieces are also distinct. Return true if arr can be formed by concatenating the arrays in pieces in any order.

Q52
Frog Jump
Data Structures & AlgorithmsHard

A frog is trying to cross a river. The river is divided into some number of units, and at each unit, there may or may not be a stone. The frog can only jump on stones. Given a list of stone positions (in units) in sorted ascending order, determine if the frog can reach the last stone.

Q53
Where Will the Ball Fall
Data Structures & AlgorithmsMedium

You have a 2-D grid of size m x n representing a box with some slanted walls. A ball will drop from the top of the box. The grid grid[i][j] can be 1 (representing a right-slanted wall) or -1 (representing a left-slanted wall). Return an array answer of size n where answer[i] is the column that the ball falls out of at the bottom, or -1 if it gets stuck.

Q54
Hackerrank - Down to Zero II
Data Structures & Algorithms

You are given an integer N. In one move, you can either decrease N by 1 or decrease N to one of its divisors. Find the minimum number of moves to reach 0.

Q55
Transform String by Character Conversion
Data Structures & AlgorithmsHard

Given two strings str1 and str2 of the same length, determine whether you can transform str1 into str2 by doing zero or more conversions. In one conversion you can convert all occurrences of one character in str1 to any other lowercase English character.

Q56
IPO
Data Structures & AlgorithmsHard

Suppose LeetCode will start n projects for you. For each project i, you can choose to start it if you have at least capital[i] capital, and you'll earn profit[i] profit. You are given k projects to perform and your initial capital w. Maximize your final capital.

Q57
Design Search Autocomplete Feature
System Design

Design a search autocomplete feature. I used a Trie data structure and implemented a working solution. The discussion covered scalability, handling different scenarios, and optimization of memory and time complexity.

Q58
Design Instagram
System Design

Design Instagram, focusing on core features like posting content, immediate post visibility, feed generation, and likes/comments. I covered non-functional requirements, set scale expectations, and outlined a high-level design, detailing each service and its trade-offs.

Q59
Design Delayed Trigger Service
System Design

Design a service that registers triggers with specified delays from other services and sends a response once the delay for that trigger is completed.

Q60
Design an Online Game (e.g., Ludo/Chess/SnakeNladder)
System Design

Design an online multiplayer game like Ludo or Chess. I had to lead the discussion, covering functional and non-functional requirements, high-level design, APIs, tech stack choices, implementation details, exception handling, fault tolerance, and database choices. I also explained core logic for features like player matching (e.g., Noob vs. Noob) and presented multiple approaches with their trade-offs.

Q61
Design Payment Gateway Integration
System Design

Design a system for payment gateway integration. The interviewers were looking for very specific details in the design.

Q62
Design Twitter
System Design

Design Twitter, focusing on functionalities such as posting tweets, follow/following mechanisms, user timelines, and user profiles. The interview emphasized both Low-Level Design (LLD) and High-Level Design (HLD).

Preparation Tips

My preparation primarily involved in-depth study of Data Structures and Algorithms, practicing a wide range of LeetCode problems, and gaining a solid understanding of System Design principles. I focused on common patterns and complex problem-solving techniques relevant to both domains.

PhonePe Machine Coding Round
phonepe logo
Phonepe
September 21, 202514 reads

Summary

I recently participated in a machine coding round for PhonePe, where I was tasked with designing an 'App Version Management System' to handle app installations, updates, and various rollout strategies.

Full Experience

I had a machine coding round at PhonePe, which focused on building an 'App Version Management System'. The problem statement detailed the need to manage different app versions, handling fresh installs and updates, similar to how smartphone apps evolve. The core idea was to design a system where app owners could directly interact with target devices, bypassing traditional marketplaces like Playstore or AppStore. Key functionalities included uploading new versions, creating update patches between versions, releasing versions with strategies like beta or percentage rollouts, and checking for app version compatibility and updates. I also had to implement functions to execute install or update tasks. The expectation was to have everything in memory, focusing on OOPs/OOD principles, code readability, and testability.

Interview Questions (1)

Q1
App Version Management System Design
System DesignHard

App Version Management System

Every smartphone user these days has lots of apps installed in their smartphones. These apps follow multiple iterations in its lifecycle which can range from fresh installs to updates of an existing app.
Install is done for cases where the phone doesn't have the app previously installed. Updates are triggered when the app is preinstalled but a new feature is rolled out.
Design an app version management system for a mobile application, say PhonePe app.
We will assume that there is no marketplace like Playstore / AppStore exists and every App Owner can directly interact with the target device irrespective of operating system ( android / iOS )
To install any app, consumer can go to the website and directly install the app through online installer ( we’ll assume, this is something which is implemented )
Real world example -
  • Install - Consumer just bought his / her first Mobile device and wants to use PhonePe. In such case a fresh Install will happen - always latest version supported will be installed. Consumer goes to phonepe website and selects install option given on website ( how it happens is outside the scope of problem statement )
  • Update- Above customer has installed the app and a few days later a new feature ( say dark mode ) is rolled out by PhonePe. In such cases, PhonePe will directly update the app on the phone.

System Components -

  • App and App versions - App will have a list of versions, each version denoting a new file and metadata. Version will have some meta data associated with it, like the minimum supported operating system ( android / iOS ) version etc.
  • Roll out :: App admin can roll-out a new version from the backend. A roll-out can be either installing or updating the app -
    • install - App is to be installed fresh in the device. We will install the app in the smartphone
    • Update - takes a diff of installed version vs latest version and install the diff ( details in requirements part )
  • Rollout strategy - New version rollout can be done with different strategies.
    • Beta rollout - roll out the app version only on specific devices
    • Percentage rollout - roll out the app version on some percent on devices

Requirements-

Below are various functions that should be supported with necessary parameters passed
  • Implement the above mentioned System components and their extensions (if possible)
  • Implement the following functionalities for an app version management system. Note - We can use any of the available methods in the available capabilities section.

uploadNewVersion( // necessary params ) : Store the new version and version file byte stream in the system

createUpdatePatch( app, fromVersion, toVersion) : Create an update patch from source to target app version. Diff of fromVersion and toVersion will be a byte-stream or byte-array and same diff would be fired on the target device and pre-installed app will take care of installation. Pre Installed app has capability to accept a byte-stream / byte-array and install it as an update / patch

releaseVersion(// necessary params) : will release a version as per the strategy. BetaRolloutStartergy will include rolling out a new app version to only a set of devices.

isAppVersionSupported(// necessary params) : will check if given targetVersion supports the input device using info like like device android version, rollout strategies etc

checkForInstall(// necessary params) : Check whether a given h/w + OS supports the the app or not

checkForUpdates(// necessary params) : checks if an update is available for a given device.

executeTask(// necessary params) - will create an install or update task based on the method input. Can use methods from the list of available methods below.

Available Capabilities -

We can assume below methods are available (can decide method arguments by yourselves) -
  • installApp - will flash the app file in the device
  • updateApp - will flash the diff pack in the device
  • createDiffPack - will consume 2 app files and create diff pack file from sourceFile to targetFile
  • uploadFile(fileContent) - will upload the file in some storage and return its url.
  • getFile(fileUrl) - returns a file content, which could then be flashed using either installApp or updateApp methods

Code Expectations -

  • Everything has to be in memory.
  • Candidate can opt for any language for implementation
  • Simple and basic function are expected as entry point - no marks for providing fancy restful API or framework implementation
  • Because this is a machine coding round, try to at least complete the basic requirements with minimal required algorithm implementations.

Evaluation criteria -

  • Working code
  • Code readability
  • Implementation of OOPs / OOD principles with proper Separation of concerns
  • Testability - a TDD approach ( not to be mixed with test cases )
  • Language proficiency
  • Test Cases
  • [execution time limit] 4 seconds (sh)
  • [memory limit] 2g
PhonePe Interview SDE-2 Experience
phonepe logo
Phonepe
SDE-2Offer
June 11, 20242 reads

Summary

I recently interviewed for the SDE-2 role at PhonePe and was selected. The process involved machine coding, DSA/problem-solving, system design, and hiring manager rounds. Despite challenges with an unprofessional recruiter, I received an offer.

Full Experience

My PhonePe SDE-2 Interview Experience

Hi everyone, I wanted to share my recent interview experience for the SDE-2 position at PhonePe. The overall process was quite comprehensive, although my interaction with the recruiter was less than ideal. She was unprofessional, frequently canceled meetings without informing me promptly, and often scheduled interviews on different days than requested. I often had to call back after each round to schedule the next one, which was frustrating.

Round 1: Machine Coding Round

For the first round, I was given a problem and had 24 hours to complete it. The problem was the classic Snake and Ladder game. I successfully completed this round.

Round 2: DSA/Problem Solving

This round consisted of two problems. The first involved some mathematical calculations, while the second was similar to problems that require equalizing all elements in an array through various operations.

Round 3: System Design

This round was focused on system design, where I was tasked with designing a Subscription Management System. I discussed various aspects of designing such a system, including handling recurring payments, plan changes, cancellations, and notifications.

Round 4: Hiring Manager (HM) Round

The final round was with the hiring manager. This round focused on my past projects, behavioral questions, and situation-based scenarios.

Despite the initial struggles with the recruitment process, I received positive feedback from all rounds and eventually got the 'Selected' verdict!

Interview Questions (3)

Q1
Snake and Ladder Problem
Data Structures & Algorithms

For the machine coding round, I was given the complete problem statement for the classic Snake and Ladder game and had 24 hours to implement a solution.

Q2
Equalize All Array Elements
Data Structures & Algorithms

In the DSA/Problem Solving round, one of the problems asked was similar to equalizing all elements in an array. This typically involves finding the minimum operations to make all elements the same, often related to finding a median or average.

Q3
Design Subscription Management System
System Design

For the system design round, I was asked to design a comprehensive Subscription Management System. This included aspects like handling recurring payments, managing different subscription plans, user upgrades/downgrades, cancellations, and notification systems.

Have a Phonepe Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Phonepe.