Interview experience at @RazorPay SDE II
Summary
I interviewed for an SDE 2 position at Razorpay. I performed well in the Low-Level Design and Coding round by designing an ATM machine, but struggled significantly in the System Design round when asked to design WhatsApp, ultimately leading to my rejection.
Full Experience
Round 1 – Low Level Design + Coding (LLD)
Problem: Design and implement an ATM Machine
What was covered:
- Complete LLD with proper class design (ATM, BankAccount, Card, Transaction, CashDispenser, etc.)
- Implemented core flows:
- Card validation & PIN authentication
- Balance enquiry
- Cash withdrawal
- Transaction status handling
- Handled corner cases:
- Insufficient balance
- Insufficient cash in ATM
- Invalid PIN / blocked card
- Transaction rollback scenarios
- No duplicate transaction
- Mutex lock
- Focused on clean, readable code and extensibility
- Discussed how the design can be scaled or modified (adding new transaction types)
Feedback: Interviewer was satisfied with the approach, code quality, and edge-case handling.
Verdict: Strongly recommended for next round ✅
Round 2 – System Design (HLD)
Problem: Design WhatsApp
Discussion areas:
- High-level components:
- Client (Mobile App)
- Backend services
- Database & message storage
- Basic message flow
- Discussed one-to-one messaging at a high level
- Talked about some trade-offs related to storage and scalability
Where I struggled:
- Couldn’t clearly explain group messaging architecture
- Missed deeper discussion on:
- Message fan-out strategies
- Ordering guarantees
- Handling large groups efficiently
- Read receipts & delivery acknowledgements
- Trade-offs between push vs pull models
Verdict: Rejected ❌
Interview Questions (2)
Design and Implement an ATM Machine (LLD)
Design and implement an ATM Machine. This LLD round covered complete low-level design with proper class design including ATM, BankAccount, Card, Transaction, CashDispenser, etc. I implemented core flows such as Card validation & PIN authentication, Balance enquiry, Cash withdrawal, and Transaction status handling. I also handled corner cases including insufficient balance, insufficient cash in ATM, invalid PIN / blocked card, transaction rollback scenarios, no duplicate transactions, and mutex lock. The focus was on clean, readable code and extensibility, discussing how the design can be scaled or modified (adding new transaction types).
Design WhatsApp (HLD)
Design WhatsApp. The discussion areas included high-level components such as Client (Mobile App), Backend services, Database & message storage, and basic message flow. I discussed one-to-one messaging at a high level and talked about some trade-offs related to storage and scalability.
Preparation Tips
My strength was in LLD, object-oriented design, and implementation. However, this interview highlighted a clear gap in my understanding of distributed systems, real-time messaging systems, group chat scaling, and related trade-offs. I need to focus my future preparation on these areas to improve my system design skills.