eBay SWE Assessment (Industry Coding Assessment)

ebay logo
ebay
· Software Engineer
May 1, 2026 · 2 reads

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 like value > 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)

1.

Design Data Storage System with Backup Support

Data Structures & Algorithms·Hard

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.

📣 Found this helpful? Please share it with friends who are preparing for interviews!

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!