cswork / libraryOpen practice workspace

Interview experiences · Coinbase

Coinbase Software Engineer Interview Experience — A 45-Minute Phone Screen Building a URL Shortener

In progressHR screen → Tech screenInterviewed 2025-08

Sharing my backend phone screen with Coinbase. The process was a recruiter call, then the phone screen got scheduled about a week later, 45 minutes long. The question was to build the core logic of a URL shortener service, with the following requirements: Support generating short links Support automatically redirecting when a short link is visited Short links need an expiration time Concurrent ac…

Sharing my backend phone screen with Coinbase.

The process was a recruiter call, then the phone screen got scheduled about a week later, 45 minutes long.

The question was to build the core logic of a URL shortener service, with the following requirements:

  • Support generating short links
  • Support automatically redirecting when a short link is visited
  • Short links need an expiration time
  • Concurrent access needs to be high-performance and secure

I wrote it in Java. For the data structure I went with a HashMap plus a simulated TTL cache, and handled thread safety simply by using ConcurrentHashMap.

Follow-up questions:

  • What if traffic is 100,000 requests per second? (Answer: introduce a distributed cache plus consistent hashing)
  • How do you prevent short links from being enumerated? (Answer: random generation, sufficient length, and access control)
  • How do you clean up expired data efficiently? (Answer: lazy delete plus scheduled batch cleanup)

The interviewer said at the end that the implementation was fine, but wanted me to go deeper on the distributed consistency approach, like cross-datacenter sync and consistency guarantees.

Three days later I got an invite for the next round, a system design interview.

Overall impression: Coinbase prefers scalable design even for simple features — you're expected to think at the scale of hundreds of millions of users.

Hoping this helps anyone prepping for backend system design.

Comments

Nothing here yet.

Join in on CSWork →