eBay SWE Assessment (Industry Coding Assessment)
Summary
I took the eBay SWE Industry Coding Assessment on CodeSignal, which involved implementing a data storage system with CRUD operations, filtering, TTL, and point-in-time backups. I scored 510/600 but couldn't pass all test cases for the backup functionality.
Full Experience
I took the eBay SWE Industry Coding Assessment on CodeSignal. The problem was to implement a data storage system supporting basic operations, filtering, and point-in-time recovery (backups).
Level 1: Basic Storage (CRUD)
SET_OR_INC(key, field, value): Update string fields or increment integer fields.GET(key, field): Retrieve a field’s value.DELETE(key, field): Remove a field or entire key if no fields remain.
Level 2: Scanning & Filtering
FETCH(field, value): Return records matching a field-value pair, formatted as"field1(val1), field2(val2)", sorted alphabetically by key.
Level 3: Advanced Filtering or TTL
- Either add TTL support to
SET, where expired entries behave as deleted, or support multi-field/range filters likevalue > 100.
Level 4: Point-in-Time Snapshots
BACKUP(): Save current state and return a backup ID.RESTORE(backupId): Revert to a previous state efficiently—deep copy may cause performance issues; better strategies involve versioned maps or Copy-on-Write.
The problem statement resembled what's described in sources like Gemini. I struggled with passing all test cases in Level 4 related to backup/restore performance and correctness. My total score was 510 out of 600.
Interview Questions (1)
Design Data Storage System with Backup Support
Implement a data storage system that supports:
SET_OR_INC(key, field, value): Sets or increments a field under a key.GET(key, field): Retrieves a field value.DELETE(key, field): Deletes a field or key.FETCH(field, value): Returns keys whose specified field matches the given value, formatted as"field1(val1), field2(val2)", sorted by key.- TTL option: Fields can expire after being set.
- BACKUP(): Captures current DB state and returns a unique backup ID.
- RESTORE(backupId): Reverts the database to the saved state associated with the backup ID.
Optimize for performance during BACKUP/RESTORE to avoid timeouts on large datasets.