Chime

Chime Software Engineer Interview Questions

20+ questions from real Chime Software Engineer interviews, reported by candidates.

20
Questions
5
Round Types
8
Topic Areas
2025-2026
Year Range

Round Types

Onsite 10 Phone 7 System Design 1 Phone Screen 1 Coding 1

Top Topics

Questions

I just did a phone screen with Chime and received the hardest coding question I’ve ever seen. Idk if I’m mentally blocked here or this is straight ridiculous. The question was: You are given a string

Backend Position The first HR call suggested an SDE2 or Senior position, but recommended SDE2, saying a better performance would lead to further discussion. Therefore, the interview was likely at the

LeetCode #1472: Design Browser History. Difficulty: Medium. Topics: Array, Linked List, Stack, Design, Doubly-Linked List, Data Stream. Asked at Chime in the last 6 months.

## Problem Given stock prices over days, find the maximum profit from a single buy-sell transaction. ## Likely LeetCode equivalent LeetCode 121 - Best Time to Buy and Sell Stock. ## Tags arrays, greedy, dynamic_programming

## Problem Build a simplified credit card processing system. Implement the following operations: - `add_card(name, limit)` -- create a card with given credit limit. - `charge(name, amount)` -- charge the card; silently ignore if it would exceed the limit. - `credit(name, amount)` -- apply a payment (can go above zero, i.e., a credit balance). - `summary() -> list[str]` -- return each card's name and current balance, sorted by name. ```python class CreditCardSystem: def add_card(self, name: str, limit: int) -> None: ... def charge(self, name: str, amount: int) -> None: ... def credit(self, name: str, amount: int) -> None: ... def summary(self) -> list[str]: ... ``` **Example:** ``` sys.add_card("Tom", 1000) sys.charge("Tom", 500) sys.charge("Tom", 800) # ignored -- would exceed limit sys.credit("Tom", 200) sys.summary() -> ["Tom: $300"] ``` ## Follow-ups 1. Operations on an unknown card name -- how should the system handle them? 2. Add an interest calculation method: `apply_interest(rate)` adds `balance * rate` to each positive balance. 3. How would you persist this system to disk so it survives restarts? 4. Concurrency: two threads charge the same card simultaneously. How do you prevent a race condition?

## Problem Given an array of n-1 integers in range 1 to n, find the one missing number using sum formula or XOR. ## Likely LeetCode equivalent LeetCode 268 - Missing Number. ## Tags arrays, math, hash_table

## Problem Design a food rating system that supports updating ratings and querying the highest-rated food in a cuisine. ## Likely LeetCode equivalent Similar to LC 2353 but not confirmed as identical. ## Tags hash_table, heap, design

## Problem Given a list of buildings where each building is `[left, right, height]`, return the skyline silhouette as a list of `[x, height]` key points. A key point marks where the visible height changes. ```python def get_skyline(buildings: list[list[int]]) -> list[list[int]]: pass ``` **Example:** ``` buildings = [[2,9,10],[3,7,15],[5,12,12],[15,20,10],[19,24,8]] output -> [[2,10],[3,15],[7,12],[12,0],[15,10],[20,8],[24,0]] ``` ## Approach Sweep-line + max-heap. At each event point (building start or end), update a max-heap of active heights. Emit a key point whenever the current maximum height changes. O(n log n). ## Follow-ups 1. What data structure would you choose for the active-height set if you also need efficient deletions? (Hint: lazy deletion on a heap vs. a sorted multiset.) 2. Two buildings share the same left edge. How do you break ties in your event ordering? 3. Extend to 3D: given box footprints and heights, project the silhouette onto the X-axis. 4. You receive buildings as a stream. How do you output skyline updates incrementally?

## Problem Given a phone number string, return all possible letter combinations using a T9 keypad mapping via backtracking. ## Likely LeetCode equivalent LeetCode 17 - Letter Combinations of a Phone Number. ## Tags backtracking, strings, recursion

## Problem Find the length of the longest strictly increasing path in a 2D matrix, moving in four directions. ## Likely LeetCode equivalent LeetCode 329 - Longest Increasing Path in a Matrix. ## Tags matrix, dynamic_programming, graph, recursion

## Problem Select k engineers to maximize team performance defined as sum of speeds times minimum efficiency, using a heap-based greedy approach. ## Likely LeetCode equivalent LeetCode 1383 - Maximum Performance of a Team. ## Tags heap, greedy, sorting

## Problem Find the mine that, when detonated, triggers the most chain explosions given each mine has a blast radius. ## Likely LeetCode equivalent LeetCode 2101 - Detonate the Maximum Bombs. ## Tags graph, bfs, arrays

## Problem Given an array of candy flavors, find the number of unique flavors remaining after removing K consecutive candies using a sliding window. ## Likely LeetCode equivalent No direct unambiguous LC match. ## Tags sliding_window, hash_table, arrays

## Problem You are given a list of `(employee, manager)` pairs representing a company org chart. The root node has no manager. Print the hierarchy as an indented ASCII tree where each level of depth adds 2 spaces. ```python def print_hierarchy(pairs: list[tuple[str, str]]) -> None: pass ``` **Example:** ``` pairs = [("Bob","Alice"),("Carol","Alice"),("Dave","Bob"),("Alice",None)] output: Alice Bob Dave Carol ``` ## Approach Build an adjacency list (parent -> children). DFS from the root, passing current depth to compute indent. Sort children alphabetically for determinism. ## Follow-ups 1. What if the input contains a cycle (data error)? How do you detect and report it? 2. The company has 1 million employees. The recursion overflows the call stack. How do you convert the DFS to iterative? 3. Add the ability to print only the subtree rooted at a given employee. 4. Output valid JSON instead of ASCII, preserving the nested hierarchy structure.

## Problem Guess a secret number or value using binary search or interactive API calls to minimize guesses. ## Likely LeetCode equivalent No direct unambiguous match. ## Tags binary_search, math

## Problem Given a sentence and a screen of rows x cols, count how many times the sentence can fit on the screen. ## Likely LeetCode equivalent LeetCode 418 - Sentence Screen Fitting. ## Tags dynamic_programming, strings

## Problem Traverse or generate an m x n matrix in spiral order. ## Likely LeetCode equivalent LeetCode 54 - Spiral Matrix. ## Tags matrix, arrays

## Problem Find the maximum sum of non-adjacent elements in an array, a classic house-robber style DP problem. ## Likely LeetCode equivalent LeetCode 198 - House Robber. ## Tags dynamic_programming, arrays

## Problem Implement a T9 phone keyboard input method that maps digit sequences to possible word suggestions. ## Likely LeetCode equivalent No direct unambiguous match. ## Tags strings, hash_table, backtracking

## Problem Determine if a partially filled 9x9 Sudoku board is valid according to row, column, and box constraints. ## Likely LeetCode equivalent LeetCode 36 - Valid Sudoku. ## Tags backtracking, hash_table, matrix

See All 20 Chime Software Engineer Questions

Full question text, answer context, and frequency data for subscribers.

Get Access