← Back to Directory

Ramp interview notes, page 6 of 7

Small

Most of these Ramp write-ups come from Software Engineers (52), then Frontend Engineers (10). The most reported rounds are the technical phone screen (44), the system design round (8), the online assessment (5) and the behavioral / leadership round (2).

62 interview notes · updated Oct 2026

Ramp·Software Engineer·Technical Phone Screen

Jun 2026
Ramp software engineer interview with a pretty unusual coding problem. Not your typical leetcode grind, more of a real-world API chaining exercise that tripped me up more than I expected.
  • Build a program that repeatedly calls an HTTP API where each response contains the next URL to call, following the chain until you reach the end of the maze and printing the final result.

“The concept clicked fast but the implementation had more edge cases than I gave it credit for.”

View Post

Ramp·Software Engineer·Technical Phone Screen

Jun 2026
Ramp coding interview for a software engineer role. The problem looked deceptively manageable but the edge cases just kept multiplying, and the interviewer stayed completely silent the whole time which made it hard to gauge anything.
  • Given a list of flight records (each with departure airport, arrival airport, departure time, arrival time, and a user ID), write a function that takes a user ID and a timestamp and returns which airport that user is currently at. Return an empty string if the user is mid-flight, and handle cases like: before any flights depart, between consecutive flights, and after the last flight lands.

“The problem statement was short enough that I had to print out the data structure just to figure out what I was working with.”

View Post

Ramp·Software Engineer·Technical Phone Screen

Jul 2026
Ramp SWE interview was a multi-level coding problem where you build an in-memory task management system from scratch, adding features each round. Pretty design-heavy for what looked like a coding screen on paper.
  • Implement basic CRUD operations for a task management system: adding a task with a name and priority, updating a task by ID, and retrieving a task by ID.
  • Add a search function that filters tasks by a case-sensitive substring match on name, and a list function that returns all tasks, both sorted by priority descending then by creation order ascending.
  • Extend the system to support users with assignment quotas. Users can be assigned tasks for a specific time window, and the system should track how many active assignments a user has at any given timestamp.
  • Add a get_user_tasks method that returns all task IDs actively assigned to a user at the current timestamp.
  • Implement task completion: a user can mark an assigned task as done, which immediately frees their quota slot. Also implement a query for overdue assignments where the finish time passed without completion.

“The sequential string ID generation tripped me up a bit at first.”

View Post

Ramp·Software Engineer·Technical Phone Screen

Jul 2026
Ramp software engineer interview that focused on building a recipe manager service from scratch. Pretty design-heavy for a coding round, less about raw algorithm chops and more about how you think through data organization and API contracts.
  • Design and implement a recipe manager service with full CRUD support, where each recipe gets an auto-incremented string ID like 'recipe1', 'recipe2', and recipe names must be unique in a case-insensitive way.

“The ID generation part was straightforward, just a counter.”

View Post

Ramp·Software Engineer·Technical Phone Screen

Jul 2026
Ramp software engineering interview with a meaty coding problem around transaction data. The whole thing was basically one big design-plus-implementation question about detecting recurring billing patterns, which sounds straightforward until you actually sit down to define what 'recurring' even means.
  • Given a list of credit/debit card transactions (each with a date, merchant, amount, and currency), write a solution that identifies recurring transactions and outputs a summary like 'Netflix, $30.00 per month'. Your solution should handle multiple recurrence periods (daily, weekly, monthly), treat each merchant-currency pair separately, and you need to define and justify what counts as 'recurring' in the first place.

“The definition part is what actually took time.”

View Post

Ramp·Software Engineer·Onsite - System Design / Architecture

Jul 2026
System design round at Ramp for a software engineering role. The question was about building a real-time visit counter with a sliding window, which sounds contained but sprawls fast once you get into the weeds of deduplication and late arrivals.
  • Design a system that tracks website visit counts over a rolling 60-second window, queryable in near real time under high traffic.

“The question opened up way more surface area than I expected.”

View Post

Ramp·Software Engineer·Onsite - System Design / Architecture

Jul 2026
System design round at Ramp for a software engineer role. The question was a full hotel reservation aggregator design, Expedia-style, and it went deep fast. Lots of back and forth on caching strategy and consistency trade-offs.
  • Design a hotel reservation aggregator like Expedia that searches for and books rooms across multiple hotel chains in real time.
  • Should you call upstream hotel APIs on every search request, cache availability data, or pre-allocate a block of inventory in advance? Walk through the trade-offs.
  • When your pre-allocated room pool runs out, do you make a live API call to the hotel or block the request and wait for a refill? How does each choice affect tail latency?
  • How would you design the cache invalidation and refresh strategy for room availability, and how do you partition that data across hotels, regions, and dates?

“This one spiraled in a good way.”

View Post

Ramp·Software Engineer·Technical Phone Screen

Jul 2026
Ramp SWE interview with a flight tracking problem that sounds deceptively simple until you start thinking about edge cases. The follow-ups pushed into system design territory pretty fast.
  • Given a list of flight records (departure airport, departure time, arrival airport, arrival time, user ID), write a function that returns where a specific user is at a given point in time. The result should distinguish between being at an airport, currently in flight, or unknown.
  • How would you redesign the solution to efficiently support a large number of repeated queries for different users and times?
  • How would flight delays or cancellations affect your data model and the function's behavior?
  • How would you handle time zone differences across airports in this system?
  • How would you detect overlapping flight records for the same user?

“The core logic isn't that hard but I spent way too long on the wrong thing.”

View Post

Ramp·Software Engineer·Technical Phone Screen

Jul 2026
Ramp technical phone screen for a software engineer role. The question was a URL-chasing problem where you keep following links until you hit a success response. Felt more like a practical scripting exercise than a pure algorithms grind, which was a nice change.
  • Given a starting URL, implement a function that chains HTTP GET requests by following URLs returned in each response body, until a response signals success. Return only the final URL that produced the success response, log every response you receive, and handle retries for 503 errors and malformed bodies.

“The core loop isn't hard but I spent way too long overthinking the recursion vs iteration question before just going iterative.”

View Post

Ramp·Software Engineer·Technical Phone Screen

Jul 2026
Ramp coding round for a software engineer position. The main problem was a rate limiter variant, which sounds straightforward until you actually sit with the edge cases around rejected requests not counting toward the limit.
  • Given sorted request timestamps, IP addresses, a request limit, and a time window length, return an array indicating whether each request is accepted or rejected. Each IP can have at most `limit` accepted requests within any window of the given length, and rejected requests don't count toward future limits.

“The rejected-requests-don't-count part is what trips people up, me included for a bit.”

View Post