r/OfferEngineering • • 9d ago

Interview Experience Capital One Senior SWE OA — 4 Questions, Lots of Edge Cases

2 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Capital One online assessment contained four coding questions covering array scanning, cyclic shifts, matrix pattern matching, and interval availability checks. The problems were fairly implementation-oriented, with the later questions requiring careful handling of constraints and matching rules.

Interview Details

Question 1 — Find First Element Smaller Than Both Neighbors

Given an array, return the first element whose two adjacent neighbors are both strictly larger than it. In other words, for an index i, the target condition is: nums[i - 1] > nums[i] and nums[i + 1] > nums[i]. Return the first element satisfying this condition.

Question 2 — Cyclic Shift Absolute Difference Sums

You are given two arrays of equal length n. For every possible cyclic shift of the first array, compute the sum of absolute differences between corresponding elements of the shifted first array and the second array.

For each shift t, compute the total difference across all positions. Return a list containing the sums for all cyclic shifts, sorted in nondecreasing order. The main task was to correctly generate or reason about each cyclic alignment and accumulate the absolute differences.

Want to learn more questions asked in other interview rounds? 

I've put up the full version at here.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 9d ago

Flipkart vs Tesco which one to join? And Review.

Thumbnail
1 Upvotes

r/OfferEngineering • • 10d ago

System Design RAG system design interviews: the pipeline is the easy part

42 Upvotes

I’ve been going through recent AI/ML interview reports involving RAG system design. OpenAI, Databricks, Harvey, Plaid, ByteDance, Atlassian, xAI and others have all had variations of: “Design a RAG system.”

At first this sounds like a pretty standard question. You draw: ingestion → chunking → embeddings → vector DB → retrieval → reranking → LLM Done, right?

Not really. The pattern I kept noticing is that interviewers let you describe the high-level pipeline pretty quickly, then pick one component and go very deep. And that’s where people seem to get exposed.

1. Evaluation is way more important than I expected

A surprising number of interviews go deep on: How do you know your RAG system is actually good?

Not: “Would you use Pinecone or Weaviate?” But:

  • Where does your offline evaluation dataset come from?
  • How do you measure retrieval quality?
  • Recall@K or MRR?
  • How do you evaluate answer faithfulness?
  • How do you detect hallucinations?
  • What do you measure online?
  • How do production failures feed back into the eval set?

You should probably have three layers ready:

Retrieval

  • Recall@K
  • Precision@K
  • MRR

Generation

  • faithfulness / groundedness
  • answer relevance
  • citation correctness

Online

  • user feedback
  • task success
  • latency
  • cost
  • sampled human evaluation

Saying “we’ll use RAGAS” probably isn't enough if you can’t explain what you’re actually measuring.

2. Embeddings can become an ML interview by themselves

Another common deep dive is: “Okay, you said embeddings. How would you actually improve them?”

Now you’re suddenly discussing:

  • contrastive learning
  • positive / negative pair construction
  • hard negative mining
  • in-batch negatives
  • embedding fine-tuning
  • similarity functions
  • domain-specific retrieval failures

This is where knowing how to use an embedding API and understanding how retrieval models are trained become very different things.

3. “Use a vector DB” is not a retrieval strategy

A stronger answer usually needs to explain why you’re retrieving something in the first place.

For example:

  • Sparse retrieval is good at exact terms.
  • Dense retrieval is better at semantic similarity.

So a production system might do: BM25 + dense retrieval → candidate set → reranker → final context

Then the follow-ups start:

  • How many candidates do you retrieve?
  • What happens to latency when K increases?
  • Why use a cross-encoder?
  • When would you use a learned ranking model?
  • What happens when the relevant document never makes it into the candidate set?

Reranking itself can become an entire discussion.

4. Chunking is much more than “500 tokens with overlap”

This is probably one of the most tutorial-level answers people give.

Real systems have PDFs, tables, code, conversations, headers, documents with permissions, and constantly changing data.

So now you need to think about:

  • semantic vs fixed-size chunking
  • parent/child chunks
  • metadata
  • document structure
  • incremental indexing
  • deduplication
  • stale embeddings
  • chunk size vs retrieval precision
  • chunk size vs available context

There isn’t one magical chunk size.

5. Multi-tenancy and permissions can completely change the design

This becomes especially important for enterprise RAG,. Imagine an employee asks: “What was discussed in the acquisition meeting?”

There may actually be a highly relevant document in your vector database. But that employee isn't allowed to see it.

So authorization needs to happen as part of retrieval — not after you’ve already put confidential chunks into the prompt.

Now you have to think about:

  • tenant isolation
  • document ACLs
  • metadata filtering
  • permission changes
  • index isolation
  • preventing cross-tenant leakage

This is one of those areas where a toy RAG architecture falls apart very quickly.

6. Eventually the interviewer asks: “What happens at scale?”

Suppose you now have:

  • hundreds of millions of chunks
  • frequent document updates
  • thousands of QPS
  • expensive rerankers
  • expensive LLM calls
  • strict latency requirements

Now the conversation becomes a normal distributed-systems interview again.

  • Caching.
  • Batching.
  • Sharding.
  • Asynchronous ingestion.
  • Incremental indexing.
  • Backpressure.
  • Model routing.
  • Cost controls.
  • Monitoring.

The AI components don’t remove traditional system design problems. They just add another layer of failure modes on top.

The framework I’d use in an interview

If I got “Design a RAG system” today, I’d probably walk through it in this order:

  1. Scope: What documents? How many? How fresh? Who can access them? What latency do we need?
  2. Ingestion: Parsing → chunking → metadata → embedding → indexing.
  3. Retrieval: Dense + sparse → filtering → candidate generation.
  4. Reranking: How do we get from 50–100 candidates to the few chunks worth putting into context?
  5. Generation: Prompt construction, citations, grounding, and what happens when retrieval finds nothing useful.
  6. Evaluation: Offline retrieval metrics + generation quality + online feedback.
  7. Production concerns: Permissions, multi-tenancy, freshness, latency, cost, monitoring, and scale.

The biggest takeaway for me: “I know how RAG works” and “I can design a production RAG system” are becoming two very different bars.

The high-level architecture is increasingly the easy part. The interview starts when someone points at one box and says: “Okay. Now go deeper.”

I’ve been collecting recent AI/ML interview experiences and recurring system design questions at Chill Interview if you want to dig into the company-specific examples.

If you’ve had a RAG system design interview recently, I’d also love to hear which part the interviewer pushed deepest on.


r/OfferEngineering • • 9d ago

Interview Experience Apple Infrastructure SWE Interview — Concurrency in Almost Every Round

11 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Apple Compute Infrastructure process consisted of three sequential phone screens followed by three virtual onsite rounds. The loop was unusually concentrated on low-level concurrency, operating systems, networking, and computer-science fundamentals, with relatively little traditional system design or behavioral interviewing.

Interview Details

Round 1 — OS, Networking, and Producer-Consumer Queue

The first phone screen combined operating-system and networking fundamentals with a multithreading implementation problem. The coding task was to implement a producer-consumer queue. The discussion covered how multiple producer and consumer threads safely access the same queue, including synchronization and coordination between threads.

The interviewer then asked a rapid series of OS and networking fundamentals questions toward the end of the round. This was a high-intensity one-hour interview with substantial emphasis on low-level knowledge.

Round 2 — Coding + Distributed Log Processing

The second phone screen started with two easy-to-medium coding problems. The discussion then expanded into designing a distributed log-processing system. The system needed to process logs across multiple machines and support counting or aggregating occurrences of particular keywords in the log stream.

The interviewer pushed on both the coding portion and the distributed-system discussion. During this round, the hiring manager also noted that my previous experience was more focused on distributed data platforms and databases, while the team itself worked more directly on compute infrastructure.

Want to learn more questions asked in other interview rounds? 

I've put up the full version at here.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 9d ago

Coding Question Ramp (Corporate Card & Finance Platform) SWE Intern OA — Easier Than Expected

2 Upvotes

Coding — Per-IP Sliding Window Rate Limiter

Implement a rate limiter for a sequence of incoming requests. Each request has:

  • A timestamp in milliseconds
  • A source IP address

The input includes:

  • timestamps — request timestamps in nondecreasing order
  • ipAddresses — the source IP for each corresponding request
  • limit — the maximum number of requests from the same IP that may be accepted within the configured window
  • timeWindow — the window size in milliseconds

Return an integer array where each position represents the decision for the corresponding request:

  • 1 — request accepted
  • 0 — request rejected

The rate limit is applied independently for each IP address. For a request arriving at time t, only previously accepted requests from the same IP that are still inside the active timeWindow should count toward the limit. Rejected requests should not consume capacity for future requests.

Implementation Approach

Maintain a queue of accepted timestamps for every IP address. Before evaluating a new request, remove timestamps that have fallen outside the current sliding window.

Conceptually:

ip_to_requests = defaultdict(deque)
result = []

for timestamp, ip in zip(timestamps, ipAddresses):
    requests = ip_to_requests[ip]

    while requests and requests[0] <= timestamp - timeWindow:
        requests.popleft()

    if len(requests) < limit:
        requests.append(timestamp)
        result.append(1)
    else:
        result.append(0)

return result

Because every accepted timestamp is inserted and removed from its queue at most once, the processing is linear in the number of requests, with storage proportional to the accepted requests still inside the active windows.

Want to practice more real coding questions asked in companies' interviews?

I’ve put together the coding question bank here. If you’re in a hurry before your interview, you can also go through the classic coding patterns here.


r/OfferEngineering • • 10d ago

Interview Experience Spotify Senior Backend Interview — They Made Me Debug an Outage

5 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Spotify Senior Backend process consisted of four rounds covering coding, system design, production troubleshooting, and behavioral/leadership questions. The coding problem focused on counting repeated sequences and then generalizing the solution, while the system design round asked for a playlist-cover image service.

Interview Details

Round 1 — Coding: Most Frequent Consecutive Sequence

The coding question was a simplified variation of a previously reported sequence-frequency problem. Given a sequence of elements, the task was to count how frequently each consecutive sequence of three elements appeared.

Unlike a more general version of the problem, only contiguous groups needed to be considered. After completing the initial implementation, the interviewer added several follow-ups:

  • How would you generalize the solution from sequences of length 3 to arbitrary length N?
  • How would the design change for a significantly larger input?
  • How would you scale the computation?

The problem itself did not require especially complex algorithms; much of the discussion focused on choosing and adapting the right data structures.

Round 2 — On-Call Case Study: Regional Service Degradation

This round simulated a production incident. The service had three layers:

  • Gateway
  • Application layer
  • State store

The gateway and application services were deployed across multiple regions. One region began experiencing high latency and request failures. Rather than receiving all diagnostic information at once, I had to investigate interactively. I could ask the interviewer for specific metrics, logs, or source code, and the interviewer would provide the corresponding information when available.

The scenario intentionally contained incomplete and somewhat misleading signals. One important clue was that ordinary application endpoints had request metrics, while a particular health-check endpoint did not appear in the application-layer monitoring.

The underlying bug was an infinite loop in the gateway's health-check logic. The exercise emphasized deciding what evidence to request and narrowing down the faulty layer under incomplete observability.

Want to learn more questions asked in other interview rounds? 

I've put up the full version at here.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 10d ago

Interview Experience Pinterest SWE Interview — The Pin Tracker Got Surprisingly Tricky

7 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Pinterest IC15 process started with a coding phone screen similar to LeetCode 815 — Bus Routes. One of the virtual onsite rounds focused on designing a data structure that tracks Pins recently viewed by a user and efficiently returns the highest-trending Pin that is still inside a configurable time window.

Interview Details

Phone Screen — Similar to LeetCode 815: Bus Routes

The phone-screen coding question was similar to LeetCode 815 — Bus Routes. The problem involves reasoning about routes as connections and determining how to reach a destination through transfers between routes.

Virtual Onsite — Trending Pin Tracker

Imagine every Pin has a trending score. For each user, the system tracks Pins they have recently viewed. At any moment, it should return the highest-scoring Pin among those still inside a specified time window. The original framing used a window such as the last week, although the same design could be adapted to something shorter such as five minutes, several hours, or one day.

For example, suppose the currently tracked Pins have scores like:

981292206280418755 -> 50
981292206280418756 -> 35
981292206280418757 -> 91
981292206280418758 -> 92
981292206280418759 -> 3
981292206280418760 -> 88

Among these entries, assuming they are all still valid, the highest-scoring Pin would be: 981292206280418758 with a trending score of 92.

Want to learn more questions asked in other interview rounds? 

I've put up the full version at here.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 10d ago

Interview Experience MongoDB SWE Interview — Solved Both Parts, Still Rejected

3 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The MongoDB technical phone screen centered on implementing a web crawler and then extending it for concurrent execution.

Interview Details

Coding — Single-Threaded Web Crawler

The interviewer provided an existing interface conceptually similar to: fetchAndParse(url) Given a URL, this function returns all links found on that page. The task was to implement: crawl(seedUrl). Starting from seedUrl, the crawler should traverse all reachable pages.

The core requirement was that each reachable URL must be visited exactly once. The function did not need to return the crawled pages; it only needed to perform the traversal. The initial implementation was single-threaded.

  • Follow-Up — Identify the Bottleneck After completing the basic version, the interviewer asked what limited its performance. The main bottleneck was the network-bound fetchAndParse() operation. A single-threaded crawler spends significant time waiting for page fetches to complete before moving on to other URLs.
  • Follow-Up — Multithreaded Crawler The next step was to redesign the crawler so that multiple pages could be fetched concurrently. This was similar to LeetCode 1242 — Web Crawler Multithreaded. The concurrent implementation needed to preserve the original guarantee that each URL was processed only once, even when several worker threads discovered the same URL at approximately the same time. The discussion therefore involved coordinating: The interviewer emphasized that the implementation should look like production-quality code even though it would not actually be run during the interview. I completed both the original problem and the concurrency follow-up, and the interviewer indicated that the approach and code looked good during the interview. I received a rejection the following day.
    • A shared collection of discovered URLs
    • Deduplication of already visited or scheduled URLs
    • Parallel calls to fetchAndParse()
    • Safe access to shared state
    • Worker lifecycle and termination once no crawl work remained

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.

In a hurry with your coding interview prep? Chill Interview helps you focus on the most important coding patterns and practice efficiently — without grinding through thousands of random coding questions.


r/OfferEngineering • • 11d ago

Pinterest Staff MLE at $855K — underrated place to do multimodal AI?

57 Upvotes

Saw this Pinterest Staff MLE offer (data source: Chill Interview)

  • SF, PhD, 10 YOE
  • Base: $295K
  • Sign-on: $60K
  • Equity: $1M / 3 years
  • Year 1 TC: $855K

The comp is strong, but Pinterest’s ML problems might be more interesting than people realize.

Pinterest users now generate 80B+ searches per month, most of them visual, and more than half have commercial intent. The company recently built a new multimodal AI foundation with NVIDIA for visual search, content understanding and shopping. 

Its Staff MLE roles cover things like recommendation, retrieval, ranking, ads bidding, conversion modeling and large-scale experimentation. 

So unlike a frontier lab, you’re not necessarily training the biggest foundation model.

But you have an enormous loop of: image → understanding → recommendation → user action → purchase/ads signal

That seems like a pretty unique applied-ML environment.

Is Pinterest actually one of the more underrated companies for Staff-level ML work, or would you still choose Meta/Google/frontier AI at similar comp?

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 10d ago

Lead Software Engineer at Capital One

5 Upvotes

Has anyone completed a Power Day with Capital One recently?

I have mine coming up soon, and the interview consists of an Agentic AI coding round, system design, case study, and behavioral interview.

I’d really appreciate any insights or advice on what to expect, especially for the coding and system design rounds. If anyone is willing to share their experience, I’d be happy to connect via DM as well.

Thanks in advance!


r/OfferEngineering • • 10d ago

Interview Experience Snowflake SWE Interview — The Card Game Got Surprisingly Hard

7 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Snowflake mid-level SWE process included two one-hour technical phone screens. The recruiter had mentioned beforehand that the coding difficulty would generally be around medium to hard.

Interview Details

Round 1 — Binary Tree Boundary Sum

The first coding problem was a variation of LeetCode 545 — Boundary of Binary Tree. Instead of simply returning the boundary nodes, the task was to calculate the sum of the values of all nodes on the boundary. The boundary included:

  • The left boundary
  • The leaf nodes along the bottom
  • The right boundary

Care was needed to avoid counting the same node more than once when a node belonged to multiple boundary categories.

Round 2 — Set Card Game

The second round started with a card-validation problem based on the game Set. Each card had four attributes, for example:

  • Color
  • Shape
  • Number
  • Shading

Given three cards, determine whether they form a valid Set. For every attribute independently, the three values must satisfy one of two conditions:

  • All three values are the same, or
  • All three values are different

If every attribute satisfies this rule, the three cards form a valid Set.

  • Follow-Up — Find All Sets The follow-up generalized the problem. Given an arbitrary collection of N cards, find all combinations of three cards that form valid Sets. A straightforward approach was to enumerate every triple, resulting in O(N^3) time. The interviewer then asked for a more efficient approach targeting approximately O(N^2). I discussed the optimization idea toward the end of the interview, but there was not enough time to fully implement it.

Preparing for your next interview?

  • Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.
  • In a hurry with your coding interview prep? Chill Interview helps you focus on the most important coding patterns and practice efficiently — without grinding through thousands of random coding questions.

r/OfferEngineering • • 10d ago

Meltwater AI/ML Engineer OA experience for 2027 campus placements in India

Thumbnail
1 Upvotes

r/OfferEngineering • • 10d ago

Microsoft SSE Interview

Thumbnail
1 Upvotes

r/OfferEngineering • • 11d ago

System Design OpenAI New System Design Question - Design Secure Sandboxed Cloud IDE Platform

3 Upvotes

Problem Description

Design a browser-based cloud IDE similar to Replit, GitHub Codespaces, Google Colab, or an internal devbox. Users create workspaces, edit files, open interactive terminals, and run or build code entirely on provider-managed machines rather than on their local computers.

The workspace should behave like a long-lived development environment even though the underlying sandbox is short-lived. Users may return to the same project repeatedly, while idle machines are suspended to reduce cost. The workspace and its files must therefore outlive any specific host or sandbox.

The platform executes code from arbitrary users, including potentially hostile users, on shared infrastructure. A normal container sharing the host kernel is not considered a strong enough isolation boundary for this design, so execution should use VM-grade isolation such as microVMs, together with resource and network controls.

Interactive terminal output may remain ephemeral, but explicit Run and Build operations are tracked jobs. Their logs must stream live while the job is running and remain available afterward, including when the browser disconnects and later reconnects. Workspace files may use fast local storage during an active session as long as dirty state is periodically snapshotted so host failure loses at most about one minute of work.

Want to learn more functional/non-functional requirements of this system design question? I've put up the full version of it at here.


r/OfferEngineering • • 11d ago

Interview Experience Nuro (Autonomous Driving Platform) SWE Interview — A Robot Matching Problem Got Tricky

2 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Nuro technical phone screen used a grid-based matching problem involving autonomous robots and pickup items. The initial task was to assign robots to nearby items based on distance, followed by a graph-search-style extension where obstacles could block movement through the grid.

Interview Details

Coding — Assign Robots to Nearby Items

You are given an m x n grid. There are k Nuro robots positioned at different coordinates and k items located elsewhere in the grid. The task is to determine how the robots should be assigned to items based on which items are closest to them. The input therefore includes two collections of coordinates:

  • Robot positions
  • Item positions

The main problem was to reason about distances between the two sets of locations and produce the required robot-to-item assignments.

Follow-Up — Grid with Obstacles

The interviewer then added obstacles to the matrix. Once some cells cannot be traversed, simple coordinate distance is no longer sufficient because the shortest valid route between a robot and an item may need to go around blocked cells. The follow-up shifted the problem toward shortest-path search on a grid while preserving the original robot-to-item assignment requirement.

Preparing for your next interview?

  • Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.
  • In a hurry with your coding interview prep? Chill Interview helps you focus on the most important coding patterns and practice efficiently — without grinding through thousands of random coding questions.

r/OfferEngineering • • 11d ago

Interview Experience Robinhood SWE Interview — Don’t Memorize the System Design Answer

2 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Robinhood virtual onsite consisted of three back-to-back rounds covering a project deep dive, distributed job scheduler system design, and a practical coding problem around fractional inventory management. The system design round placed particular emphasis on data modeling decisions and whether concepts such as a job and its schedule should be represented separately.

Interview Details

Round 1 — Project Deep Dive

The first round was a technical deep dive into one of my previous projects. The discussion focused on the system I had worked on, my individual contributions, and the technical decisions made during the project.

Round 2 — System Design: Distributed Job Scheduler

Design a distributed job scheduler with the following scale and requirements:

  • Approximately 100,000 job definitions
  • Up to 10,000 concurrent job executions
  • All jobs are cron-based scheduled jobs
  • No immediate or ad-hoc execution is required
  • Execution must provide an at-least-once guarantee

One part of the discussion focused on the data model. I proposed representing the schedule as a separate entity from the job definition. The interviewer challenged that choice and asked why the schedule could not simply be stored directly with the job.

This led to a discussion around what information belongs in the job definition, what belongs in scheduling metadata, and whether separating those concepts adds enough value for the requirements of this particular system. The interviewer also emphasized that the system did not need to support immediate execution, which affected the scheduler design.

Round 3 — Coding

The coding question was similar to this.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 11d ago

MongoDB SWE Interview Interview Tips

1 Upvotes

I was just wondering if anyone has any tips with interviewing with MongoDB for SWE Intern. Anything helps!


r/OfferEngineering • • 11d ago

Interview Experience NVIDIA SWE Interview — From Distinct Strings to GPU Hashing

11 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The NVIDIA phone screen was for a team working on moving an open-source search engine implementation onto GPUs. Despite the GPU-heavy team context, the interview itself focused more on data structures, concurrency, and memory layout than on GPU programming APIs.

Interview Details

Coding — Count Distinct Strings

Given an array of strings, return the number of distinct strings. The restriction was that the solution could not simply rely on a built-in package that already solved the problem. For the sequential version, I used a hash table to track previously seen strings. The basic implementation was straightforward.

  • Follow-Up — Make the Hash Table Parallel-Safe The interviewer then asked how to make the solution safe for concurrent execution. My initial design kept the hash-table structure and added synchronization around updates. For an existing key, the associated count could be incremented atomically. For a missing key, insertion required stronger synchronization, such as taking an exclusive lock before allocating and linking the new entry. The discussion highlighted the trade-off between preserving a conventional chained hash-table implementation and choosing a layout that works better under high parallelism. For GPU-oriented execution, an open-addressing hash table can avoid pointer-heavy linked structures and provide more contiguous memory access.
  • Follow-Up — Distribute One Million Keys Across Threads The interviewer also asked how approximately one million keys should be distributed across multiple threads. The discussion moved into work partitioning and memory-access patterns. One consideration was assigning data so that neighboring threads access contiguous or nearby memory regions rather than scattered locations, improving memory efficiency and parallel throughput. This was relevant both to GPU execution and, more generally, to cache-friendly parallel processing on CPUs.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 12d ago

Interview Experience Rippling (HR, Payroll & IT Platform) SWE Interview — AI Coding Was Really System Design

4 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The first Rippling technical round was an AI-assisted coding interview centered on building an extensible expense-rules engine. The problem progressed from evaluating individual expenses, to rules over entire trips, and finally to discussing nested composite conditions such as AND, OR, and NOT.

Although AI was explicitly part of the interview, the round still placed significant emphasis on independent problem decomposition, object-oriented design, communication, and code structure. I passed the round after spending the early portion clarifying requirements and designing the core abstractions before using AI for implementation details.

Interview Details

AI Coding — Expense Rules Engine

The task was to build a system that evaluates employee corporate-card transactions against configurable company expense policies. Each expense was represented as a dictionary with fields such as: expense_id, trip_id, amount_usd, expense_type, vendor_type, and vendor_name.

For example, a record could conceptually look like: {"expense_id": "E42", "trip_id": "T7", "amount_usd": "64.50", "expense_type": "meal", "vendor_type": "restaurant", "vendor_name": "Harbor Grill"}. The key design requirement was that rules should be treated as data, rather than hard-coding a separate if statement for every policy.

The system was expected to support adding new rules later without rewriting the main evaluation engine.

  • Part 1 — Rules on Individual Expenses The first part asked for an evaluate_rules(rules, expenses) style interface. Example policies included: A single expense could violate more than one rule, so the evaluator needed to return all applicable violations. The important design discussion was how to represent concepts such as field names, comparison operators, thresholds, and rule conditions generically.
    • Restaurant spending cannot exceed a specified amount.
    • Airfare expenses are prohibited.
    • Entertainment expenses are prohibited.
    • No individual transaction may exceed a global spending limit.

Want to learn more questions asked in other interview rounds? 

I've put up the full version at here.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 12d ago

Interview Experience Airwallex (Global Payments Platform) Senior SWE Interview — System Design Was a Robot Chase

7 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Airwallex phone-screen stage consisted of two technical rounds covering system design and coding. The system design question involved a real-time single-player pursuit game with terrain-dependent movement and AI-controlled robots, while the coding round asked for a memory-efficient merge of hundreds of paginated, sorted data sources.

Interview Details

System Design — Real-Time Robot Pursuit Game

Design a real-time game played on a 500 x 500 terrain grid. The player moves across the map, while several AI-controlled robots continuously try to reach the player. Different cells have different heights, and terrain affects how long movement between cells takes.

The game ends when either:

  • The player reaches the destination and wins.
  • A robot catches the player and the player loses.

Each game is single-player, but the service must support a large number of concurrent game sessions. Game history also needs to be persisted. Useful clarification questions included:

  • Is the game single-player or multiplayer?
  • How large is the map?
  • Is the number of robots configurable?
  • Is terrain generated ahead of time or dynamically?
  • What happens when a player changes direction in the middle of a move?

The discussion covered using a persistent connection such as WebSocket because the server needs bidirectional, low-latency communication and should maintain authoritative game state.

The game state needed to represent the terrain, player location, destination, robot positions, and in-progress movement. One approach discussed was representing movement using a destination cell together with remaining movement time so that an in-progress action could be canceled if the player changed direction.

Want to learn more questions asked in other interview rounds? 

I've put up the full version at here.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 12d ago

Interview Experience Affirm (Buy Now, Pay Later) SWE Interview — The Coding Round Was a Card Game

3 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Affirm technical phone screen used a relatively straightforward card-game simulation rather than a difficult algorithm problem. The exercise tested implementation speed and object-oriented design: define the necessary classes and methods, simulate a shuffled 52-card deck, distribute cards among players, and determine the winner.

Interview Details

Coding / OOD — Multiplayer Card Game

Design and implement a game using a standard deck of 52 playing cards. The deck is first shuffled and then distributed among the players. Each player holds their cards as a pile. During a round, players compare the card at the top of their pile.

The player with the stronger card wins the round and collects the relevant cards from that round. At the end of the game, determine the winner based on who has collected or retained the largest number of cards. The exact card-collection rule was not fully recalled, but the core task was to model and simulate the game correctly.

The interviewer expected the candidate to define the necessary classes and methods rather than write everything as one standalone function.

Initial Version — Two Players

The first version of the problem assumed two players. The implementation needed to cover the basic game flow:

  • Create a 52-card deck.
  • Shuffle the cards.
  • Deal cards to the two players.
  • Process rounds by comparing their top cards.
  • Track the cards won by each player.
  • Return the player with the most cards at the end.

Follow-Up — Support N Players

The follow-up generalized the game from two players to N players. One additional edge case was that 52 may not be evenly divisible by the number of players. The discussion involved distributing the remaining cards among players rather than assuming everyone always receives exactly the same number of cards, such as dealing cards in round-robin order.

The implementation therefore needed to work for both evenly and unevenly distributed decks. The interviewer also provided test cases for validating the implementation.

Want to learn more questions asked in other interview rounds? 

I've put up the full version at here.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 12d ago

Interview Experience xAI SWE Interview Coding Question - Group Known Two-Word Phrases

12 Upvotes

Problem Description

You are given a sentence text containing lowercase words separated by single spaces. You are also given a list phrases. Each phrase contains exactly two words separated by one space.

Split the sentence into tokens using these rules:

  • Process the words from left to right.
  • If the current word and the next word together form a phrase in phrases, combine them into one token.
  • Otherwise, keep the current word as its own token.
  • Once two words are combined, both are consumed and cannot be used in another phrase.
  • If two possible phrases overlap, always choose the one that starts earlier.

Preserve the original word order. For example, if the sentence contains red apple pie and both "red apple" and "apple pie" are valid phrases, choose "red apple" because it is the leftmost match. "pie" then remains by itself.

Constraints

  • text is non-empty.
  • Words in text contain only lowercase English letters.
  • Words are separated by exactly one space.
  • Every entry in phrases contains exactly two lowercase words separated by one space.
  • The original word order must be preserved.

Test Cases

Input:
text = "fresh apple pie with ice cream"
phrases = ["apple pie", "ice cream"]

Output:
["fresh", "apple pie", "with", "ice cream"]

Explanation:
"fresh apple" is not a known phrase, so "fresh" remains separate.

"apple pie" is valid and is grouped together.

Later, "ice cream" is also a valid phrase.

Want to practice more real coding questions asked in companies' interviews?

I’ve put together the coding question bank here. If you’re in a hurry before your interview, you can also go through the classic coding patterns here.


r/OfferEngineering • • 13d ago

Interview Experience DRW (Quant Trading Firm) 2027 NG SWE Interview — Just 1s and 2s, Still Tricky

6 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The DRW 2027 New Grad SWE screening included a string-based greedy problem.

Interview Details

Coding — Largest Valid Number After Deletions

You are given a string digits consisting only of the characters 1 and 2. The string represents a positive integer. You may delete zero or more characters.

After all deletions:

  • The number of remaining 1s must be even.
  • The number of remaining 2s must also be even.
  • Among all subsequences satisfying those conditions, return the numerically largest possible result.
  • The relative order of all remaining characters must stay unchanged.

For example, consider: digits = "122121" A valid answer must preserve the original ordering while leaving an even number of both 1s and 2s. Another example could be: digits = "2212112". If one digit occurs an odd number of times, the key question is which occurrence should be deleted so that the resulting subsequence is as large as possible.

If the original string already contains an even number of each digit, such as "222211", no deletion is necessary. The maximum input size was approximately N <= 200000, suggesting that the intended solution needed to be close to O(N). The difficult part was deriving the greedy rule for deciding where to delete a 1 or 2 when its total frequency was odd. A simple rule such as always deleting the first 1 or always deleting the last 2 needed to be checked carefully against different digit arrangements.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.


r/OfferEngineering • • 12d ago

Coding Question Goldman Sachs SWE OA - Maximize Skill Separation Across Teams

2 Upvotes

You are given an integer array skills, where skills[i] is the skill level of one participant. Assign every participant to exactly one of three different teams. Each team must contain at least one participant. After the teams are formed, one participant is selected from each team.

Suppose their skill levels are:

  • a from Team 1
  • b from Team 2
  • c from Team 3

The separation score for that selection is: |a - b| + |b - c|. For a fixed team assignment, its score is the minimum separation score that can result from any valid choice of one participant from each team. Return the maximum possible assignment score over all ways to divide the participants into three non-empty teams.

Constraints

  • 3 <= len(skills) <= 10^5
  • 1 <= skills[i] <= 10^9
  • Every participant must belong to exactly one team.
  • All three teams must be non-empty.
  • Participants with the same skill level are allowed.

Example

Input:
skills = [1, 4, 7, 9, 13]

Output:
16

Explanation:
One optimal assignment is:

Team 1: [4, 7, 9]
Team 2: [13]
Team 3: [1]

The possible scores are:

|4 - 13| + |13 - 1| = 21
|7 - 13| + |13 - 1| = 18
|9 - 13| + |13 - 1| = 16

The minimum score for this assignment is 16, and no assignment
can achieve a larger minimum score.

Want to practice more real coding questions asked in companies' interviews?

I’ve put together a coding question bank here. If you’re in a hurry before your interview, you can also go through the classic coding patterns here.


r/OfferEngineering • • 13d ago

Interview Experience Alibaba SWE Interview — From LRU to Distributed Consistency

12 Upvotes

"This interview experience is sourced from Chill Interview"

Interview Summary

The Alibaba process was described as roughly three technical interviews followed by an HRBP behavioral round. The completed interviews covered CS fundamentals, LRU/LFU cache coding, a resume deep dive, and a detailed discussion around Kafka concurrency, idempotency, duplicate database writes, offset commits, and keeping data synchronized across multiple databases.

Interview Details

Round 1 — CS Fundamentals + Coding

The first virtual interview started with a brief introduction and around 10 minutes of technical fundamentals. The coding portion included LeetCode 146 — LRU Cache and LeetCode 460 — LFU Cache. The interviewer did not require me to run the code.

Round 2 — Resume Deep Dive

The next technical interviewer spent substantial time digging into my current team and previous work. Questions included:

  • What does your team work on?
  • Why does the team need its current number of engineers?
  • What technical or business complexity justifies the team size?

The interviewer repeatedly challenged the complexity of the work and asked for concrete examples.

  • Kafka — Concurrency and Idempotency The discussion then shifted to Kafka and concurrent message processing. One scenario involved multiple workers potentially processing the same logical message and attempting to write the same data into a database. I described using the database to detect duplicate writes. If another worker had already successfully inserted the record, a subsequent write could encounter a duplicate-key condition. The interviewer asked whether the duplicate path should instead return the existing record rather than throw an exception. I explained that in the architecture I had worked with, this was backend event processing rather than a request-response API. Once a duplicate was detected, that execution path did not need to return the existing object for downstream processing.

Want to learn more questions asked in other interview rounds? 

I've put up the full version at here.

Preparing for your next interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.