Assessment tips
- Confirm the current PayPal pattern from the drive mail before practising old papers
- Finish one problem or section fully before starting the next
- Revise the fundamentals listed in the round table on this page
How PayPal fresher interviews usually run, campus and off-campus. The common process map is OA (MCQs + coding) → technical rounds that attach constraints to DSA → SQL/DBMS/OOP depth → HR. Patterns shift by year and role; treat this as a prep map, not a script.
Eligibility (from student reports): 6.0+ CGPA in 10th, 12th, and graduation. Fresher package ballpark (from student reports): ₹12-18 LPA. Confirm on your offer letter. Practise a second solution before you need it, keep SQL warm, and do not confuse positive interviewer tone with an offer - especially off-campus.
| Round | Duration | What they test |
|---|---|---|
| Online Assessment | 90 min | Coding (DSA) + sometimes MCQs |
| Technical Round 1 | 45-60 min | DSA with added constraints (no hash map, linear time, alternate implementations) |
| Technical Round 2 | 45-60 min | SQL, DBMS keys, OOPs, project discussion |
| HR / Culture | 20-30 min | Motivation, integrity, relocation |
Rewritten from public student write-ups of PayPal’s India campus and off-campus hiring. A correction worth stating up front: fresher write-ups do not describe a payments or ledger system-design round. What they consistently describe is DSA with constraints attached (“do it without a hash map”, “now in linear time”, “now give me three different implementations”), plus SQL, DBMS keys, and OOPs. Interviewers ask for the second and third solution after the first one works.
Source pattern: PayPal on-campus write-up
Round 1 - coding (120 min)
Round 2 - technical
Round 3 - technical (over an hour with round 2)
Round 4 - HR
Result: Selected. The write-up reports 5 offers from that campus (4 full-time, 1 intern).
Takeaways
Source pattern: PayPal summer internship 2023 write-up
Takeaways
Source pattern: PayPal SDE summer internship write-up
OA
Technical (~3 coding problems)
Managerial (weeks later)
Result: Selected for summer internship. Takeaway: PayPal campus timelines can stretch weeks between rounds - stay warm on DSA and resume depth.
An off-campus Software Engineer candidate cleared a technical round (search in a rotated sorted array with an O(log n) requirement; find the unique element with an XOR approach) and an HR round covering projects, teamwork, GitHub contributions, SQL joins and OOPs - felt it went well, and was rejected by email about a month later. PayPal’s off-campus timelines are slow and positive interviewer feedback is not a signal. (off-campus write-up linked under Sources)
What recurs across all three
After technical rounds, PayPal usually closes with a short HR / hiring-manager conversation: motivation, location, notice period, and a couple of behavioural stories. Prepare those answers on the dedicated page rather than cramming them into this hub.
Use these as frames, not scripts - interviewers probe follow-ups.
Q. How do you design an LRU cache, and why HashMap plus doubly linked list?
A. Keep a hash map from key to node for O(1) lookup, and a doubly linked list ordered with the most-recently-used entry at the head and the least-recently-used at the tail. On get, find the node through the map and move it to the head. On put, insert at the head and, if the size exceeds capacity, unlink the tail node and remove its key from the map. The doubly linked list is essential because unlinking an arbitrary node in O(1) requires both prev and next pointers - a singly linked list would need an O(n) scan to find the predecessor. Both operations are O(1) with O(capacity) space.
Q. Implement a rate limiter. What are the trade-offs between token bucket and sliding window?
A. Token bucket stores a token count and a last-refill timestamp per client; tokens accrue at a fixed rate up to a burst capacity and each request consumes one, so it allows controlled bursts and needs only two numbers per key - cheap to store in Redis. A fixed-window counter is simplest but permits double the intended rate at a window boundary, since a client can spend its full quota at the end of one window and again at the start of the next. Sliding-window log stores every request timestamp, which is exact but memory-heavy; sliding-window counter interpolates between the previous and current window and is the usual compromise. For distributed enforcement, run the check-and-decrement as an atomic Redis Lua script so concurrent nodes cannot both pass the same last token.
Q. How do you merge overlapping intervals?
A. Sort the intervals by start time, then sweep left to right holding a current merged interval. For each next interval, if its start is less than or equal to the current interval’s end, extend the current end to the maximum of the two ends; otherwise push the current interval to the result and start a new one from this interval. Sorting dominates at O(n log n) time, with O(n) space for the output or O(1) extra if you merge in place. The edge case interviewers probe is touching intervals such as [1,3] and [3,5] - decide explicitly whether they merge and state your assumption.
Q. How would you design a simplified ledger so a transaction is never double-processed?
A. Use double-entry accounting: every transfer writes two rows to an append-only ledger_entries table - a debit on one account and a credit on the other - inside a single database transaction, so the sum of all entries always nets to zero and imbalance is immediately detectable. Never update or delete a ledger row; a reversal is a new compensating pair of entries, which preserves the audit trail regulators require. Give the transfer request a client-supplied idempotency key stored under a unique index and inserted in the same transaction as the entries, so a retry hits the constraint violation and returns the original result instead of posting a second pair. Account balances are then either derived by summing entries or kept in a materialised balance row updated in the same transaction.
Q. What is idempotency and how do you make a payment API idempotent?
A. An idempotent operation produces the same outcome and the same single side effect however many times it is invoked with the same input - critical in payments because a client that times out cannot tell whether the charge succeeded. The standard implementation has the client generate a unique Idempotency-Key (a UUID) per logical operation and send it as a header. The server attempts to insert that key into a uniquely indexed table within the same ACID transaction that performs the charge; if the insert succeeds it processes the payment and stores the serialized response against the key, and if it fails on the unique constraint it returns the stored response. Doing the existence check and the charge as two separate steps reintroduces the race under concurrent retries, so the atomicity of the single transaction is the whole point.
Assessment tips
Interview tips
HR tips
These links are research inputs we used to map constrained DSA loops, SQL emphasis, and timeline variance - not copied page mirrors. We reorganized reports into process notes, takeaways, and a prep checklist for PayPal.
Cross-check the current drive mail for timings and section mix.
For the company overview, see the PayPal hub. For behavioural frames, use the HR page. For OA drills, see PayPal placement papers.
Google · Amazon · Microsoft · Meta · Capital One · Goldman Sachs