I interviewed for a Senior SDE-Android position at Square in Kitchener, Canada. The interview process was very logical and well-structured. Each round involved problem-solving with a similar format: an easy question followed by a medium-level follow-up. I had to code the first part and discuss the solution for the second. The interviewers were helpful and focused on making the code runnable.
Round 1: Pair Programming on Hangouts Given currency conversion rates, an input currency, input amount, and a target currency, find the converted amount. Also, report if it's not possible. The first part didn't include transitive conversions, while the second part did. This led to a graph problem where I had to find a path between source and destination nodes in a directed graph with cycles.
Round 2: Pair Programming on Hangouts Given a tournament of games with results, determine which player won more matches given two players. The first part involved a simple hashmap solution, while the second part required checking for transitive wins using DFS.
Round 3: Pair Programming on Hangouts Design and code a simple vending machine with a single drink and coin type. Then, add support for multiple coin types.
Round 4: Pair Programming on Hangouts Given a string with placeholder keys and a dictionary of valid keys, determine if the string is valid. The string can be invalid due to missing keys or incorrectly formatted brackets. The second part involved nested placeholder keys.
Round 5: Projects Discussion I discussed one of my most challenging projects and answered follow-up questions.
Round 6: Design/Architecture I was asked to design a Hotel Booking app. We discussed client and server-side aspects. The interviewers were interested in my product thinking.
After all the rounds, I received positive feedback but was informed that Square's hiring priorities had changed and they were looking for more senior candidates. I was told they would get back to me if a suitable role opened up. While I was disappointed, I had other offers and it didn't affect me significantly.