PhonePe | Software Engineer (5-7 years) | Bangalore | Interview | Selected
Anonymous User
1322

About me

  • 2019 graduate from an NIT (6 years 9 months experience)
  • Currently working as an SSE at a PBC

Interview timeline

  • Was actively applying for jobs in December 2025
  • Recruiter reached out via InstaHyre around Christmas asking if I'd like to interview. There were a total of 4 rounds. Machine coding, design, DSA and HM. Each round is eliminatory.
  • The first round was a machine coding round. A problem statement was to be sent and 24 hours were to be given to code it. The first round would then be a review of my code. Owing to the Christmas and long year weekend, I asked the problem statement to be sent after the new year weekend.

Round 1

I got the problem statement on 5th January 12 PM sharp. It was essentially to design Apache airflow type workflow execution engine. Sharing the summarized problem statement below.

Design and implement a dynamic workflow execution engine that supports the definition and concurrent execution of tasks with dependencies. A workflow is modeled as a Directed Acyclic Graph (DAG) where each node represents a task. The engine must determine the correct execution order based on dependencies and execute independent tasks concurrently. It should also handle retries for tasks that fail and provide detailed execution logs.

API/Operations

  • submitWorkflow(workflow: Workflow): WorkflowExecutionResult Submit a complete workflow for execution. The result should include overall status and a mapping of task IDs to their execution status.
  • getTaskStatus(taskId: string): TaskStatus Retrieve the current status (e.g., pending, running, success, failed) of the specified task.
  • cancelWorkflow(workflowId: string): void Optionally support cancellation of an in-progress workflow.

Constraints

  • Concurrency: Use language-specific concurrency primitives to enable parallel execution of independent tasks.
  • Failure Handling: If a task exhausts its retry attempts and still fails, all tasks dependent on it should be skipped or marked as failed.
  • Logging: Execution logs should be comprehensive enough to trace the order and outcome of each task.

I sat down with the problem statement from evening and was able to finish it by midnight. Took a lot of help from Airflow docs and since we use Airflow internally in our services, I had a fair idea of what to build. Wrote a couple of unit tests and sent the solution by 2 AM.

The review round was then scheduled for 9th January. The interviewer first discussed one of my projects in depth and then went through my code with a fine tooth comb. There were one or two minor bugs here and there but overall he seemed satisfied with the solution. I got a positive feedback and was moved to round 2.

Round 2

This was the design round and took place on 14th January. I was asked to build a settlement system for merchants where transactions were to be settled on T+1 day after deducting commission. The merchant should be able to see their ledger for the day and also have an option for a one time settlement of a given amount per day.

I gave the approach of having WAL based ledger management for durability and supporting high write throughput. Sharding can be done basis date and on tT1 day, once there is no write traffic for that shard, async workers can take care of aggregation of data and settlement of money. For GET API, we can have a read-optimized data store like ES and also discussed about the pipelines for moving data from the primary datastore to ES. Focus was also on the data modeling part.

This round too went well and my 3rd round was scheduled.

Round 3

This was the DSA round and took place on 19th January. It was for 1 hour. After a quick intro, I was asked 3 questions.

  1. Jump game : Answered in 15 minutes.
  2. Jump Game II : Gave the DP approach of O(n^2) and coded the same. Interviewer seemed satisfied but asked to optimize further using greedy approach. Couldn't come up with the same.
  3. Minimum Number of Arrows to Burst Balloons : Only 10 minutes were left by the time we reached this question. I unfortunately wasn't able to come up with a solution in the time constraint.

After this round was done, I felt I might be eliminated. But I got an email that I'll be having the HM round next. So I guess if you are able to solve 2 out 3 problems in this round, you are moved to the next round.

Round 4

This round took place on 21st January and was of 1 hour. There were two interviewers in this round. One of them was an EM and the other was head of payments at PhonePe. The round again involved a discussion on my projects, my current team structure, standard behavioural questions. I was also asked if I'm serving notice period, my current CTC and any other offers in hand. I too asked a few questions about PhonePe's flat heirarchy and how do KPIs differ for someone with 2-3 YOE vs someone with 6-7 YOE.

2 days later, on 23rd January, I was communicated that I was selected and was asked to send over documents. The next week I had the compensation discussion call with HM. Unfortunately I had to reject their offer because of competing offer from Microsoft.

Compensation details

https://leetcode.com/discuss/post/7770547/phonepe-software-engineer-5-7-years-bang-6vup/

Competing offers

Comments (1)