PlacementPrep

PhonePe Placement Papers 2026 | Freshers Exam Pattern, Syllabus & Questions

34 min read
Company Placement Papers
Advertisement Placement

PhonePe Placement Papers 2026 - Complete Preparation Guide

Last Updated: March 2026

📋 Company Overview

PhonePe is India's largest UPI-based digital payments platform, founded in December 2015 by Sameer Nigam, Rahul Chari, and Burzin Engineer. Headquartered in Bengaluru, Karnataka, PhonePe was acquired by Flipkart in 2016 and became a subsidiary of Walmart after Flipkart's acquisition. In 2022-23, PhonePe became a separate entity after a historic share buyback.

PhonePe processes over 5+ billion UPI transactions monthly, making it India's leading UPI app. The company has expanded beyond payments into financial services including insurance, mutual funds, lending, and shopping on its Switch platform.

🎯 Eligibility Criteria for Freshers 2026

ParameterRequirements
Academic QualificationB.Tech/B.E (CS/IT/ECE/EEE), MCA, M.Tech
Batch Eligible2025, 2026 graduating batches
Minimum CGPA7.5/10 or 75% throughout academics
BacklogsNo active backlogs
Skills PreferredJava, Kotlin, Python, Android/iOS, Microservices, System Design
ExperienceFreshers (0-1 years)

💰 CTC Package for Freshers 2026

ComponentAmount (INR)
Base Salary₹14,00,000 - ₹20,00,000
Joining Bonus₹1,50,000 - ₹2,50,000
Relocation Allowance₹50,000 - ₹1,00,000
Performance BonusUp to 20% of CTC
ESOPsVariable (significant upside potential)
Total CTC₹18,00,000 - ₹28,00,000

📊 Exam Pattern 2026

PhonePe follows a rigorous selection process with emphasis on problem-solving and system design:

Stage 1: Online Assessment (OA)

SectionDurationQuestionsTopics
Quantitative Aptitude30 mins15Arithmetic, Algebra, Probability
Logical Reasoning20 mins10Puzzles, Pattern Recognition
Technical MCQ25 mins15DSA, OOPS, DBMS, OS
Coding Round75 mins3Algorithms, Data Structures
Machine Coding90 mins1Low-level Design Problem

Stage 2-5: Interview Rounds

RoundTypeDurationFocus Area
Round 2Problem Solving60 mins2-3 DSA problems
Round 3Machine Coding90 minsDesign and code a working system
Round 4System Design60 minsHigh-level design, scalability
Round 5Hiring Manager + HR45 minsCulture, motivation, compensation

Marking Scheme:

  • Aptitude: +3/-1 scoring
  • Coding problems evaluated on test cases, edge cases, code quality
  • Machine coding evaluated on working solution, design patterns, extensibility

🧮 Aptitude Questions with Solutions (15 Questions)

Question 1

Problem: PhonePe processes 200 million transactions per day. If peak hours (4 hours) account for 60% of daily volume, what's the average TPS (transactions per second) during peak?

Solution: Peak transactions = 200M × 0.60 = 120 million Peak duration = 4 × 60 × 60 = 14,400 seconds TPS = 120,000,000 / 14,400 = 8,333 TPS


Question 2

Problem: A sum of money triples itself in 15 years at simple interest. In how many years will it become 7 times itself?

Solution: If sum triples, interest = 2P in 15 years Rate = (2P × 100)/(P × 15) = 40/3 % To become 7 times, interest = 6P Time = (6P × 100)/(P × 40/3) = 600 × 3/40 = 45 years

Shortcut: Formula t(m-1)/(n-1) = 15(7-1)/(3-1) = 15×6/2 = 45 years


Question 3

Problem: In how many ways can the letters of the word "PHONEPE" be arranged?

Solution: Total letters = 7 P appears 2 times, E appears 2 times Total arrangements = 7! / (2! × 2!) = 5040 / 4 = 1260 ways


Question 4

Problem: The average of 7 numbers is 45. If one number is excluded, the average becomes 42. What is the excluded number?

Solution: Sum of 7 numbers = 7 × 45 = 315 Sum of 6 numbers = 6 × 42 = 252 Excluded number = 315 - 252 = 63


Question 5

Problem: A merchant sells a product at 20% profit. If he had bought it at 10% less and sold it for ₹18 less, he would have gained 25%. Find the cost price.

Solution: Let CP = x Original SP = 1.2x New CP = 0.9x, New SP = 1.2x - 18 Profit = 25%, so New SP = 1.25 × 0.9x = 1.125x

1.2x - 18 = 1.125x 0.075x = 18 x = ₹240


Question 6

Problem: If the probability of a transaction failing is 0.02, what is the probability that exactly 2 out of 10 transactions fail?

Solution: Using binomial probability: P(X=2) = C(10,2) × (0.02)² × (0.98)^8 = 45 × 0.0004 × 0.8508 = 0.0153 or 1.53%


Question 7

Problem: A train 240m long passes a platform in 30 seconds at 54 km/hr. Find the platform length.

Solution: Speed = 54 × (5/18) = 15 m/s Total distance = 15 × 30 = 450m Platform length = 450 - 240 = 210 meters


Question 8

Problem: In a class of 50 students, 30 study Math, 25 study Physics, and 15 study both. How many study neither?

Solution: Using inclusion-exclusion: Math ∪ Physics = 30 + 25 - 15 = 40 Neither = 50 - 40 = 10 students


Question 9

Problem: Find the next number: 1, 4, 9, 16, 25, 36, ?

Solution: Perfect squares: 1², 2², 3², 4², 5², 6² Next = 49 (7²)


Question 10

Problem: If 20 workers can build a wall in 15 days, how many days will 25 workers take?

Solution: Using work equivalence: M1×D1 = M2×D2 20 × 15 = 25 × D2 D2 = 300/25 = 12 days


Question 11

Problem: The ratio of present ages of A and B is 5:7. After 6 years, the ratio becomes 3:4. Find B's present age.

Solution: Let ages be 5x and 7x (5x + 6)/(7x + 6) = 3/4 4(5x + 6) = 3(7x + 6) 20x + 24 = 21x + 18 x = 6 B's age = 7 × 6 = 42 years


Question 12

Problem: A sum of ₹5000 becomes ₹6655 in 3 years at compound interest. Find the rate.

Solution: 6655 = 5000(1 + r/100)³ 1.331 = (1 + r/100)³ 1.1 = 1 + r/100 r = 10%


Question 13

Problem: Find the unit digit of 7^83 × 3^41.

Solution: Cycle of 7: 7, 9, 3, 1 (every 4) 83 mod 4 = 3, so 7^83 ends in 3

Cycle of 3: 3, 9, 7, 1 (every 4) 41 mod 4 = 1, so 3^41 ends in 3

Unit digit of product: 3 × 3 = 9 → 9


Question 14

Problem: A man rows at 8 km/hr in still water. If the river flows at 2 km/hr and it takes him 48 minutes to row to a place and back, how far is the place?

Solution: Downstream speed = 8 + 2 = 10 km/hr Upstream speed = 8 - 2 = 6 km/hr Let distance = d km Time = d/10 + d/6 = 48/60 = 0.8 hours (3d + 5d)/30 = 0.8 8d = 24 d = 3 km


Question 15

Problem: In a code, COMPUTER is written as DPNUVUFS. How is MOBILE written?

Solution: Pattern: Each letter + 1 C→D, O→P, M→N, P→Q... Wait, COMPUTER → DPNUVUFS C+1=D, O+1=P, M+1=N, P+1=Q? But we have U. Let's check: C→D(+1), O→P(+1), M→N(+1), P→Q? Given U. Actually: C→D, O→P, M→N, P→U? No. Pattern: +1, +1, +1, +1, +1, +1, +1, +1 doesn't match. C(3)→D(4), O(15)→P(16), M(13)→N(14), P(16)→Q? But given U(21). Actual pattern: C→D(+1), O→P(+1), M→N(+1), U→V(+1), T→U(+1), E→F(+1), R→S(+1) So MOBILE → N(14)P(17)C(4)J(10)M(13)F(7)? Actually looking at DPNUVUFS: each letter shifted by +1. So MOBILE → NPCJMF


💻 Technical/CS Questions with Solutions (10 Questions)

Question 1

Q: Explain the UPI architecture and how PhonePe processes transactions.

Architecture Components:

  1. UPI Switch: Central NPCI infrastructure
  2. PSP (Payment Service Provider) Bank: Banks that provide UPI infrastructure
  3. TPAP (Third Party Application Provider): Apps like PhonePe that offer UPI services
  4. Remitter Bank: Sender's bank
  5. Beneficiary Bank: Receiver's bank

Transaction Flow:

  1. User initiates payment on PhonePe
  2. PhonePe sends request to PSP Bank
  3. PSP routes to NPCI UPI Switch
  4. NPCI validates and routes to beneficiary bank
  5. Beneficiary bank credits account
  6. Response flows back through the chain

PhonePe Optimizations:

  • Smart routing across multiple PSPs
  • Retry mechanisms for failed transactions
  • Real-time fraud detection
  • 99.9%+ success rate through intelligent routing

Question 2

Q: What is Idempotency and why is it important in payment systems?

Why Critical for Payments:

  • Network timeouts can cause retry attempts
  • Users may click "Pay" button multiple times
  • Without idempotency, duplicate charges occur

Implementation:

# Client sends unique idempotency key
headers = {'Idempotency-Key': 'uuid-generated-by-client'}

# Server stores: idempotency_key → response
# On duplicate request with same key, return stored response

PhonePe Implementation:

  • UPI Ref IDs serve as natural idempotency keys
  • Database unique constraints prevent duplicates
  • Idempotency cache with TTL for replay protection

Question 3

Q: Explain Consistent Hashing and its use in distributed systems.

Traditional Hashing:

  • server = hash(key) % N
  • Problem: When N changes, almost all keys remap

Consistent Hashing:

  • Hash both keys and servers onto a ring (0 to 2³²-1)
  • Key maps to next server clockwise on ring
  • Each server owns keys between it and previous server

Virtual Nodes:

  • Multiple points on ring per physical server
  • Better load distribution
  • Handles heterogeneous hardware

PhonePe Use Case:

  • Cache sharding across Redis clusters
  • User session distribution
  • Minimal data movement during scaling

Question 4

Q: What is the difference between synchronous and asynchronous communication in microservices?

AspectSynchronousAsynchronous
PatternRequest-ResponseEvent-driven, Message queues
BlockingClient waits for responseClient continues immediately
CouplingTight couplingLoose coupling
ReliabilityFailures immediately visibleRequires retry/dlq mechanisms
Use CaseUser-facing queries, validationsBackground processing, notifications
ExamplesREST/gRPC callsKafka, RabbitMQ, SQS

PhonePe Usage:

  • Synchronous: Transaction authorization, balance checks
  • Asynchronous: Transaction post-processing, notifications, analytics

Hybrid Approach: Saga pattern - sync for critical path, async for side effects


Question 5

Q: Explain Database Indexing strategies for high-performance queries.

Index Types:

  1. B-Tree Index: Default, good for equality and range queries
  2. Hash Index: O(1) equality lookups, no range support
  3. Bitmap Index: Low cardinality columns
  4. GIN/GiST: Full-text search, JSON, arrays
  5. Composite Index: Multiple columns

Indexing Strategies:

  • Index columns in WHERE, JOIN, ORDER BY clauses
  • Covering indexes (INCLUDE columns) eliminate table lookups
  • Partial indexes for filtered queries
  • Expression indexes for computed values

PhonePe Context:

  • User ID indexes for wallet lookups
  • Transaction time indexes for history queries
  • Composite indexes on (user_id, created_at) for user transaction history

Question 6

Q: What is Circuit Breaker pattern?

States:

  1. Closed: Normal operation, requests pass through
  2. Open: Failure threshold reached, requests fail fast
  3. Half-Open: Testing if service recovered

Implementation:

class CircuitBreaker:
    def __init__(self, failure_threshold, timeout):
        self.failure_threshold = failure_threshold
        self.timeout = timeout
        self.failure_count = 0
        self.state = 'CLOSED'
    
    def call(self, func, *args):
        if self.state == 'OPEN':
            if time_since_open > timeout:
                self.state = 'HALF_OPEN'
            else:
                raise CircuitOpenException()
        
        try:
            result = func(*args)
            self.on_success()
            return result
        except Exception as e:
            self.on_failure()
            raise e

PhonePe Usage: Protects against PSP bank outages, NPCI failures.


Question 7

Q: Explain the difference between Optimistic and Pessimistic Locking.

AspectPessimistic LockingOptimistic Locking
ApproachLock resources before useCheck conflicts at commit time
ConcurrencyLower concurrencyHigher concurrency
Deadlock RiskPossibleNo deadlocks
Use CaseHigh contention scenariosLow-medium contention
ImplementationSELECT FOR UPDATEVersion numbers/timestamps

Optimistic Locking:

-- Read with version
SELECT balance, version FROM wallet WHERE user_id = 1;

-- Update with version check
UPDATE wallet SET balance = 900, version = 2 
WHERE user_id = 1 AND version = 1;
-- If rows affected = 0, conflict occurred

PhonePe Context: Wallet balance updates use optimistic locking for high throughput.


Question 8

Q: What is a Distributed Transaction and how is it managed?

Challenges:

  • Network failures during commit
  • Partial commit scenarios
  • Coordinating multiple participants

Solutions:

1. Two-Phase Commit (2PC):

  • Phase 1: Coordinator asks participants to prepare
  • Phase 2: If all ready, coordinator sends commit
  • Problem: Blocking, coordinator single point of failure

2. Saga Pattern:

  • Sequence of local transactions
  • Each service updates and publishes event
  • Compensating transactions for rollback

PhonePe Approach:

  • Saga pattern for multi-step operations
  • Event sourcing for audit trails
  • Idempotency for retry safety

Question 9

Q: Explain Rate Limiting and its algorithms.

Algorithms:

  1. Token Bucket:

    • Bucket holds tokens, refilled at fixed rate
    • Request consumes a token
    • Bursts allowed up to bucket capacity
  2. Leaky Bucket:

    • Requests enter queue, processed at fixed rate
    • Queue full → requests dropped
    • Smooths traffic, no bursts
  3. Fixed Window:

    • Count requests in fixed time windows
    • Simple but has burst issues at window boundaries
  4. Sliding Window:

    • More accurate, tracks exact time range
    • Higher memory usage

PhonePe Usage:

  • API rate limits per user/app
  • Transaction limits for fraud prevention
  • DDoS protection at edge

Question 10

Q: What is Event Sourcing and CQRS?

Event Sourcing:

  • Store state changes as events, not current state
  • Event log becomes source of truth
  • Can replay events to reconstruct any state
  • Audit trail built-in
Traditional: Balance = 1000
Event Sourcing: [AccountCreated, Deposit(500), Withdrawal(200), Deposit(700)]

CQRS (Command Query Responsibility Segregation):

  • Separate read and write models
  • Commands update the write model
  • Queries read from optimized read models
  • Event sourcing often pairs with CQRS

PhonePe Use Case:

  • Transaction history (event sourcing)
  • Real-time analytics (CQRS read models)
  • Audit and compliance requirements

📝 Verbal/English Questions with Solutions (10 Questions)

Question 1

Spot the error: Neither the engineers or the manager are aware of the production issue.


Question 2

Fill in the blank: The payment system _______ designed to handle millions of concurrent transactions.

Options: (a) are (b) is (c) were (d) being


Question 3

Synonym: LUCID

Options: (a) Confusing (b) Clear (c) Dark (d) Complex


Question 4

Antonym: EPHEMERAL

Options: (a) Temporary (b) Eternal (c) Fleeting (d) Brief


Question 5

Rearrange: (A) Digital payments / (B) have revolutionized / (C) financial inclusion / (D) in rural India


Question 6

Idiom: "To get the ball rolling"

Meaning: (a) To play sports (b) To start an activity (c) To move quickly (d) To be energetic


Question 7

One word substitution: A person who doesn't believe in God

Options: (a) Theist (b) Atheist (c) Agnostic (d) Believer


Question 8

Reading Comprehension: PhonePe's Switch platform allows users to access multiple apps without downloading them, creating a super-app ecosystem that brings merchants and consumers together on a single platform.

What is the main benefit of the Switch platform?


Question 9

Sentence Correction: Each of the developers have submitted their code for review.


Question 10

Analogies: Seed : Plant :: Code : ?

Options: (a) Computer (b) Software (c) Programmer (d) Bug


👨‍💻 Coding Questions with Python Solutions (5 Questions)

Question 1: Merge Intervals

Problem: Given an array of intervals where intervals[i] = [start, end], merge all overlapping intervals.

Solution:

def merge_intervals(intervals):
    """
    Time Complexity: O(n log n) for sorting
    Space Complexity: O(n)
    """
    if not intervals:
        return []
    
    # Sort by start time
    intervals.sort(key=lambda x: x[0])
    
    merged = [intervals[0]]
    
    for current in intervals[1:]:
        last = merged[-1]
        
        if current[0] <= last[1]:  # Overlapping
            last[1] = max(last[1], current[1])
        else:
            merged.append(current)
    
    return merged

# Test
print(merge_intervals([[1,3],[2,6],[8,10],[15,18]]))  # [[1,6],[8,10],[15,18]]
print(merge_intervals([[1,4],[4,5]]))                  # [[1,5]]

Question 2: Top K Frequent Elements

Problem: Given an integer array and an integer k, return the k most frequent elements.

Solution:

def top_k_frequent(nums, k):
    """
    Time Complexity: O(n log k)
    Space Complexity: O(n)
    """
    from collections import Counter
    import heapq
    
    # Count frequencies
    count = Counter(nums)
    
    # Use min heap of size k
    heap = []
    for num, freq in count.items():
        heapq.heappush(heap, (freq, num))
        if len(heap) > k:
            heapq.heappop(heap)
    
    return [num for freq, num in heap]

# Alternative: Bucket sort O(n)
def top_k_frequent_linear(nums, k):
    from collections import Counter
    
    count = Counter(nums)
    n = len(nums)
    
    # Bucket by frequency
    buckets = [[] for _ in range(n + 1)]
    for num, freq in count.items():
        buckets[freq].append(num)
    
    result = []
    for freq in range(n, 0, -1):
        for num in buckets[freq]:
            result.append(num)
            if len(result) == k:
                return result

# Test
print(top_k_frequent([1,1,1,2,2,3], 2))  # [1, 2]
print(top_k_frequent([1], 1))             # [1]

Question 3: Course Schedule (Topological Sort)

Problem: There are numCourses courses labeled from 0 to numCourses-1. Prerequisites[i] = [a, b] means to take course a, you must first take course b. Return true if all courses can be finished.

Solution:

def can_finish(num_courses, prerequisites):
    """
    Detect cycle in directed graph using DFS
    Time Complexity: O(V + E)
    Space Complexity: O(V + E)
    """
    from collections import defaultdict
    
    # Build graph
    graph = defaultdict(list)
    for course, prereq in prerequisites:
        graph[course].append(prereq)
    
    # 0 = unvisited, 1 = visiting, 2 = visited
    state = [0] * num_courses
    
    def has_cycle(course):
        if state[course] == 1:  # Currently visiting - cycle!
            return True
        if state[course] == 2:  # Already checked
            return False
        
        state[course] = 1  # Mark as visiting
        for prereq in graph[course]:
            if has_cycle(prereq):
                return True
        state[course] = 2  # Mark as visited
        return False
    
    for course in range(num_courses):
        if has_cycle(course):
            return False
    
    return True

# Alternative: Kahn's Algorithm (BFS)
def can_finish_bfs(num_courses, prerequisites):
    from collections import defaultdict, deque
    
    in_degree = [0] * num_courses
    graph = defaultdict(list)
    
    for course, prereq in prerequisites:
        graph[prereq].append(course)
        in_degree[course] += 1
    
    queue = deque([i for i in range(num_courses) if in_degree[i] == 0])
    courses_taken = 0
    
    while queue:
        course = queue.popleft()
        courses_taken += 1
        for next_course in graph[course]:
            in_degree[next_course] -= 1
            if in_degree[next_course] == 0:
                queue.append(next_course)
    
    return courses_taken == num_courses

# Test
print(can_finish(2, [[1,0]]))       # True
print(can_finish(2, [[1,0],[0,1]])) # False

Question 4: Design Hit Counter

Problem: Design a hit counter which counts the number of hits received in the past 5 minutes (300 seconds).

Solution:

from collections import deque

class HitCounter:
    """
    Time Complexity: O(1) for hit, O(1) amortized for getHits
    Space Complexity: O(s) where s is distinct timestamps in window
    """
    def __init__(self):
        self.hits = deque()  # (timestamp, count)
        self.total = 0
    
    def hit(self, timestamp: int) -> None:
        # Remove old hits outside 5-minute window
        self._cleanup(timestamp)
        
        if self.hits and self.hits[-1][0] == timestamp:
            self.hits[-1] = (timestamp, self.hits[-1][1] + 1)
        else:
            self.hits.append((timestamp, 1))
        
        self.total += 1
    
    def getHits(self, timestamp: int) -> int:
        self._cleanup(timestamp)
        return self.total
    
    def _cleanup(self, timestamp: int):
        # Remove hits older than 300 seconds
        while self.hits and timestamp - self.hits[0][0] >= 300:
            old_timestamp, count = self.hits.popleft()
            self.total -= count

# Test
counter = HitCounter()
counter.hit(1)
counter.hit(2)
counter.hit(3)
print(counter.getHits(4))   # 3
counter.hit(300)
print(counter.getHits(300)) # 4
print(counter.getHits(301)) # 3 (hit at timestamp 1 expired)

Question 5: Design Twitter (Simplified)

Problem: Design a simplified Twitter where users can post tweets, follow/unfollow others, and see the 10 most recent tweets from followed users.

Solution:

from collections import defaultdict
import heapq

class Twitter:
    """
    Time Complexity: O(k log k) for getNewsFeed where k is number of followees
    Space Complexity: O(users * tweets)
    """
    def __init__(self):
        self.tweets = defaultdict(list)  # userId -> [(timestamp, tweetId)]
        self.following = defaultdict(set)  # userId -> {followeeIds}
        self.timestamp = 0
    
    def postTweet(self, userId: int, tweetId: int) -> None:
        self.timestamp += 1
        self.tweets[userId].append((self.timestamp, tweetId))
    
    def getNewsFeed(self, userId: int):
        # Get last tweet index for each followee
        followees = self.following[userId] | {userId}
        
        # Max heap (use negative timestamp)
        heap = []
        for followee in followees:
            if self.tweets[followee]:
                tweets = self.tweets[followee]
                idx = len(tweets) - 1
                timestamp, tweetId = tweets[idx]
                heapq.heappush(heap, (-timestamp, tweetId, followee, idx - 1))
        
        result = []
        while heap and len(result) < 10:
            neg_time, tweetId, followee, idx = heapq.heappop(heap)
            result.append(tweetId)
            
            if idx >= 0:
                tweets = self.tweets[followee]
                timestamp, nextTweetId = tweets[idx]
                heapq.heappush(heap, (-timestamp, nextTweetId, followee, idx - 1))
        
        return result
    
    def follow(self, followerId: int, followeeId: int) -> None:
        if followerId != followeeId:
            self.following[followerId].add(followeeId)
    
    def unfollow(self, followerId: int, followeeId: int) -> None:
        self.following[followerId].discard(followeeId)

# Test
twitter = Twitter()
twitter.postTweet(1, 5)
print(twitter.getNewsFeed(1))  # [5]
twitter.follow(1, 2)
twitter.postTweet(2, 6)
print(twitter.getNewsFeed(1))  # [6, 5]
twitter.unfollow(1, 2)
print(twitter.getNewsFeed(1))  # [5]

🎯 Interview Tips for PhonePe

  1. Master System Design: PhonePe interviews heavily focus on system design. Practice designing payment systems, notification services, and high-scale distributed systems.

  2. Machine Coding Round: This is unique to PhonePe. Practice building working systems with clean code, proper abstractions, and extensible design in 90 minutes.

  3. Know UPI Deeply: Understand UPI architecture, NPCI's role, and the complete transaction flow. Knowledge of financial regulations is a plus.

  4. Scale Considerations: PhonePe processes billions of transactions. Always think about scale, latency, and reliability in your solutions.

  5. Problem-Solving Speed: PhonePe's coding rounds are time-bound. Practice solving medium-hard problems within 30-40 minutes with clean, optimized code.

  6. Java Proficiency: Strong Java skills are valued given PhonePe's tech stack. Know Java internals, concurrency, and JVM tuning.

  7. Distributed Systems: Study distributed transactions, consensus algorithms, and eventual consistency patterns thoroughly.


❓ Frequently Asked Questions (FAQs)

Q1: What makes PhonePe different from other fintech companies?

A: PhonePe is UPI-first and processes the highest UPI transaction volume in India. It offers higher compensation, significant ESOPs, and exposure to extreme scale (5+ billion monthly transactions).

Q2: What is the Machine Coding round at PhonePe?

A: A 90-minute round where you design and implement a working system. Example: Design a splitwise-like expense sharing system, parking lot management, or movie booking system. Focus on clean code, design patterns, and testability.

Q3: Does PhonePe hire freshers through off-campus?

A: Yes, through their career portal, coding challenges on HackerEarth/CodeChef, and direct applications. Having strong competitive programming or open-source experience helps.

Q4: What technologies does PhonePe use?

A: Java/Spring Boot for backend, React for web, Kotlin/Java for Android, Swift for iOS, Kafka for streaming, Cassandra/MySQL for storage, Redis for caching, and Kubernetes for orchestration.

Q5: What is the work-life balance at PhonePe?

A: PhonePe has a high-performance culture with demanding work. However, they offer flexibility, wellness programs, and competitive benefits. It's ideal for those seeking rapid growth and learning.


Best wishes for your PhonePe placement journey! 🚀

Advertisement Placement

Share this article: