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)
Given a positive integer, return the difference between the product of its digits and the sum of its digits.
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.
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).
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 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.
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.
Discussion with a manager covering my past experiences, reasons for wanting to join Postmates, and my future career aspirations.
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