PhonePe | SDE2 | Machine Coding Round

phonepe logo
phonepe
SDE II
May 7, 20254 reads

Summary

My machine coding round for the SDE2 role at PhonePe required designing a complaint resolution system to manage unsuccessful transactions, outlining features for customers, agents, and admins, along with detailed system and implementation requirements.

Full Experience

The task is to design a complaint resolution system to manage unsuccessful transactions. Key features include:

Customers can log issues for failed or pending transactions by providing details like issue type, subject, description, and email.

Customer Service Agents:

  • Handle only one issue at a time.
  • Can search issues by ID or customer email.
  • Can resolve issues and receive new ones.

Admins:

  • Can onboard agents with specific expertise (issue types).
  • Can view the work history of agents.

System Requirements:

  • Assign issues to free agents using an assignment strategy.
  • Track and filter issues.
  • Maintain resolution history.

Implementation requirements: createIssue(transactionId, issueType, subject, description, email) addAgent(agentEmail, agentName ,List) assignIssue(issueId) // -> Issue can be assigned to the agents based on different strategies. For now, assign to any one of the free agents. getIssues(filter) // -> issues against the provided filter, e.g.: getIssue({"email": "testUser2@test.com"}); updateIssue(issueId, status, resolution) resolveIssue(issueId, resolution) viewAgentsWorkHistory() // -> a list of issue which agents worked on

Interview Questions (1)

Q1
Design a Complaint Resolution System
System DesignHard

Design a complaint resolution system to manage unsuccessful transactions. Key features include:

Customers can log issues for failed or pending transactions by providing details like issue type, subject, description, and email.

Customer Service Agents:

  • Handle only one issue at a time.
  • Can search issues by ID or customer email.
  • Can resolve issues and receive new ones.

Admins:

  • Can onboard agents with specific expertise (issue types).
  • Can view the work history of agents.

System Requirements:

  • Assign issues to free agents using an assignment strategy.
  • Track and filter issues.
  • Maintain resolution history.

Implementation requirements: createIssue(transactionId, issueType, subject, description, email) addAgent(agentEmail, agentName ,List) assignIssue(issueId) // -> Issue can be assigned to the agents based on different strategies. For now, assign to any one of the free agents. getIssues(filter) // -> issues against the provided filter, e.g.: getIssue({"email": "testUser2@test.com"}); updateIssue(issueId, status, resolution) resolveIssue(issueId, resolution) viewAgentsWorkHistory() // -> a list of issue which agents worked on

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!