Summary
I recently completed an Online Assessment for eBay on CodeSignal, which involved implementing a complete banking system across several levels.
Full Experience
Hi Fam, I recently appeared for the eBay Industry Coding Assessment (OA) on CodeSignal. This assessment was quite different from the general coding assessments which usually have four random Data Structures questions. In this ICA, I was given a project codebase and my task was to implement several interfaces, classes, and methods to pass the test cases for each level of a banking system.
Interview Questions (4)
Implement the core functionalities of a banking system including account creation, deposits, and transfers.boolean createAccount(String accountId, int timestamp) - Create new accountsOptional<Integer> deposit(String accountId, int timestamp, int amount) - Deposit money into accountsOptional<Integer> transfer(String fromId, String toId, int timestamp, int amount) - Transfer money between accounts
Implement a function to retrieve the top N accounts based on their outgoing transactions.List<String> topSpenders(int timestamp, int n) - Returns top N accounts based on outgoing transactions, sorted by amount (descending) and then by account ID (ascending)
Implement functionalities for scheduling payments, checking their status, and processing them with cashback.void schedulePayment(String accountId, String targetAccId, int timestamp, int amount, double cashbackPercentage) - Schedule payments with cashbackString getPaymentStatus(String accountId, int timestamp, String paymentId) - Check if payment is scheduled, processed, or failedvoid processScheduledPayments(int currentTimestamp) - Execute scheduled payments and apply cashback
Implement a function to merge two existing accounts, combining their balances and updating all associated transaction histories.void mergeAccounts(String accountId1, String accountId2) - Merge two accounts, combining balances and updating all transaction histories
Summary
I interviewed for a Senior Staff Engineer role at eBay, which involved a mix of system design discussions covering current architecture and scalability, along with a coding challenge to find prime numbers up to N. The process is ongoing, with further rounds planned online.
Full Experience
I'm currently a Senior Staff Engineer at Walmart with 6 years of experience. I applied for an SSE role at eBay through Workday. The exact level wasn't clear initially but would be determined by my performance. My in-person interview was scheduled for one day but extended due to the number of candidates. I was interviewing for the communications platform team, which appears to be a new initiative. My first round was with a Director of Engineering and, surprisingly, focused more on High-Level Design of my current team's architecture for 30 minutes, after a 10-minute intro. The remaining 15 minutes involved a coding question: 'Given a number n, print all the prime numbers leading up to n.' I presented both a naive O(n * sqrt(n)) approach and the Sieve of Eratosthenes, though I felt the latter wasn't fully understood. The second round, with an Engineering Manager, was abstract. We discussed how to productionize and scale a system, key metrics for API development and testing, and general questions about GenAI tools. The TA team informed me that due to time constraints, the remaining rounds would be conducted online, and I'll update this post once they're complete.
Interview Questions (5)
Given a number n, print all the prime numbers leading upto n.
Discussion on the process and considerations for taking a system into production.
Discussion on strategies and techniques for scaling a system.
What metrics should be looked for when building and testing an API?
Some general questions related to GenAI tools.