Challenging PayPal Interview: Navigating Banking System Operations with a Mysterious Interviewer

paypal | Other | Interview Experience

Interview Date: Not specified
Result: Not specified
Difficulty: Not specified

Interview Process

The interview was conducted with the interviewer keeping their camera off, which made the interaction feel unengaging. The interview lasted for 45 minutes, which seemed insufficient for the complexity of the questions. The candidate completed basic operations with appropriate tests but could only provide pseudocode for the follow-up stretch goal.

Technical Questions

  1. Banking System Operations
    • Simulate a simple banking system with the following operations:

      • createAccount(accountId: str, timestamp: int)
      • deposit(accountId: str, amount: int, timestamp: int)
      • transfer(fromId: str, toId: str, amount: int, timestamp: int)
      • getTopSpenders(n: int, timestamp: int) -> List[Tuple[str, int]] — returns the top n accounts by cumulative transferred out amount up to timestamp, sorted by spendAmount and accountId in case of ties.
    • Stretch Goal:

      • schedulePayment(accountId: str, amount: int, delay: int, timestamp: int) -> paymentId — schedules a payment to be deducted from accountId.
      • cancelPayment(paymentId: str, timestamp: int) -> bool — cancels the scheduled payment if not yet executed.

Tips & Insights

The candidate suggested using a queue instead of a priority queue for the schedulePayment operation, which may have contributed to the rejection.