Postmates Interview process and questions
Summary
I recently interviewed at Postmates, navigating through an online assessment and an onsite with multiple rounds covering coding, system design, and a managerial discussion. The interview focused on a variety of data structure, algorithm, and system design problems.
Full Experience
I went through the interview process at Postmates, which began with an initial recruiter call, followed by an online assessment. After clearing these, I had a second recruiter call to schedule the onsite. The onsite comprised four rounds: one with a manager, two focused on coding, one for system design, and a final chat with the recruiter.
Interview Questions (8)
Difference Between Product and Sum of Digits
Given a positive integer, return the difference between the product of its digits and the sum of its digits.
Match Substring with Binary Pattern
Given a binary string p (pattern) and a string s (containing only lowercase English letters), return the total number of substrings of s that match the pattern p. A substring matches p if for each '0' in p, the corresponding letter in s is a vowel, and for each '1' in p, the corresponding letter in s is a consonant.
Determine if Two Strings are Similar
Given two strings s1 and s2, determine if they are similar. Two strings are considered similar if one can be obtained from the other by performing one of two operations: 1) swapping any two symbols in the string, or 2) swapping the occurrences of any two symbols (e.g., all 'a's become 'b's and all 'b's become 'a's).
Query for Pairs Summing to X After Updates
Given two integer arrays a and b, and an array of query. There are two types of queries:
1. Query of the form [0, i, x]: Update b[i] to the value of x.
2. Query of the form [1, x]: Find the total number of pairs of indices i and j such that a[i] + b[j] = x.
Perform all given queries and return an array of the results for all queries of the second type.
Design Key-Value Store with Nested Transactions
Design a Key-Value Store that supports both basic transactions and nested transactions. Implement the following methods: begin(), put(k, v), get(k), commit(), and rollback(). Nested transactions imply that multiple begin/commit/rollback operations can occur within each other.
Aggregate Delivery Capacity by Time
Given a list of deliveries, each represented as a tuple {start_time, end_time, capacity}, return a list of tuples {time, total_capacity} for each unique start_time or end_time provided in the input. The total_capacity should represent the sum of capacities of all deliveries active at that specific time.
Behavioral Interview: Past Experience, Why Postmates, Future Goals
Discussion with a manager covering my past experiences, reasons for wanting to join Postmates, and my future career aspirations.
Design WhatsApp
Design WhatsApp focusing on key features such as:
- One-to-one chat
- Group chat
- Text and multi-media messages
- Sent, Delivered, and Read statuses
- Online/Offline status
- End-to-end encryption