← Back to Directory

Circle

Large Enterprises

Screna has 19 Circle interview write-ups. The most reported round is the technical phone screen (11).

19 interview notes · updated Jul 2026

Circle·Software Engineer·Technical Phone Screen

Jun 2026
Circle SWE coding round, one question the whole session. Felt manageable at first but the edge cases piled up fast and I left unsure if I'd covered everything.
  • Design and implement an in-memory RecipeStore class with create, get, update, and delete operations. IDs are assigned sequentially. Recipe names must be unique in a case-insensitive way, but stored casing should be preserved. Updates can only change casing of the name, not the name itself, and the recipeId must match the updated recipe's id.

“I started with a plain dictionary keyed by integer ID and thought I was done in ten minutes.”

View Post

Circle·Software Engineer·Onsite - System Design / Architecture

Jun 2026
Circle system design round for a software engineer role. One big open-ended question that kept expanding the more you answered it. Felt like a reasonable session but the scope was genuinely massive.
  • Design and implement an in-memory versioned key-field-value store with per-field TTL, time-travel reads, lexicographically ordered scans, and snapshot backup and restore. Every operation carries a logical timestamp. Walk through your data model, the semantics of each operation, and the complexity trade-offs.

“This one kept growing.”

View Post

Circle·Software Engineer·Technical Phone Screen

Jun 2026
Coding round at Circle for a software engineer role. One meaty graph/shortest-path problem that also required me to explain the algorithm, complexity, and a few tricky constraints out loud. Left feeling like I handled the core logic okay but stumbled a bit on the cycle-avoidance explanation.
  • Given a list of flights (each with an ID, source, destination, departure time, arrival time, and price), implement a function that finds the cheapest itinerary from an origin to a destination. Only consider itineraries where the first flight departs within a given date range. Return the minimum total price and the ordered list of flight IDs, or -1 if no valid itinerary exists. You also need to explain your algorithm, its time and space complexity, and how you handle connection ordering and cycle prevention.

“The core pathfinding part I got to pretty quickly.”

View Post

Circle·Software Engineer·Technical Phone Screen

Jun 2026
Circle SWE interview that went deep on PostgreSQL specifics, not just generic SQL. The whole thing felt like a practical exam on the parts of Postgres people usually learn the hard way.
  • Write a PostgreSQL statement to update a flight's price and ensure the updated_at timestamp is set correctly.
  • How would you write an upsert in PostgreSQL with proper conflict handling on a bookings table?
  • Write a query to filter bookings within a UTC date range using timestamptz, and explain how you'd avoid off-by-one errors.
  • Add indexes to support your queries and use EXPLAIN ANALYZE to demonstrate they're being used. Walk through what you're looking at in the output.
  • What are the common pitfalls when moving from generic SQL to PostgreSQL, specifically around date/time casting, time zones, text vs citext, and using immutable or stable functions in indexes?

“Seemed straightforward but I fumbled on the updated_at part.”

View Post

Circle·Software Engineer·Online Assessment (OA)

Jun 2026
Did an online assessment for a Software Engineer role at Circle. The coding problem wasn't conceptually hard but required solid comfort with string manipulation and sorting, and it ate up more time than expected.
  • Given a list of tasks at a specific time point, filter the ones whose names contain a given substring, then sort and print the results.

“Not a brain-buster algorithmically, but I underestimated how fiddly the string filtering plus sorting combo would be under time pressure.”

View Post

Circle·Software Engineer·Technical Phone Screen

Jun 2026
Circle SWE interview that was pretty much a deep dive into HTTP traffic analysis and client optimization. One meaty question that touched on observability, debugging, and testing all at once. Not your typical coding round.
  • Using curl and lightweight instrumentation, how would you figure out how many HTTP requests a client makes during a workflow and which endpoints are being hit? Then walk through adding request/correlation ID logging, spotting redundant calls, and modifying the client to batch, cache, or debounce where needed. Also explain how you'd verify correctness, measure the improvement, and write tests or set up metrics to catch regressions.

“This was a lot to unpack in one question.”

View Post

Circle·Software Engineer·Technical Phone Screen

May 2026
Circle SWE interview with a meaty system design coding problem centered on an in-memory payment processing component. The question was basically a mini-OOP design session with complexity analysis baked in, which I wasn't fully expecting at this depth.
  • Design and implement an in-memory banking payment component with APIs for scheduling payments, canceling them, removing them under specific conditions, processing due payments, and retrieving top spenders by outgoing total. Define your data structures, explain the time and space complexity of each operation, and walk through edge cases like double-cancellation, removing a successful payment, and ensuring canceled payments don't get executed.

“This one took a while to fully unpack.”

View Post

Circle·Software Engineer·Technical Phone Screen

May 2026
Circle SWE interview, banking system design problem that kept adding levels. Level 4 introduced account merging which sounds straightforward until you're actually tracking pending delayed payments and reassignment ordering in your head.
  • Implement a mergeAccounts function that merges a source account into a target account: combine balances, combine total spending stats used by topSpenders, reassign all pending scheduled payments from source to target ordered by execution time then creation order, and delete the source account. Return false if either account doesn't exist or if source and target are the same.
  • Implement a getBalance function that returns the current balance of an account after first processing all pending scheduled payments with an execution time at or before the given timestamp. Return null if the account doesn't exist or has been merged away.

“The balance and spending sum parts were fine.”

View Post

Circle·Software Engineer·Technical Phone Screen

May 2026
Interviewed for a software engineer role at Circle. The question was behavioral but had a real technical edge to it, centered on pair programming under pressure. Left feeling like I gave an okay answer but probably undersold the actual chaos of that situation.
  • Tell me about a pair programming session where you hit ambiguity or unfamiliar tooling and lost time because of it. How did you communicate and divide work under pressure, and what would you change?

“The tricky part was they wanted specifics: unclear requirements, maybe curl or database quirks, actual lost time.”

View Post

Circle·Software Engineer·Onsite - Coding / Algorithms

May 2026
Did a coding round for a Software Engineer role at Circle centered entirely around a banking payment system design problem. Pretty involved for what felt like a single question, lots of moving parts to juggle at once.
  • Design and implement a banking payment system that supports canceling previously scheduled payments, extends payment scheduling to persist and report both success and failure outcomes, removes obsolete payment cases, and generates a report of outgoing transactions sorted by total loss amount.

“This was a lot to unpack in one sitting.”

View Post