Square | Sr. SDE Android | Kitchener | Aug 2019 [Paused at Team Matching]
Anonymous User
2950

Position: Senior SDE-Android
Location: Bangalore

I've giving multiple interviews in past 3-4 months and I must say that interviewers from square were among the best ones and the interview process seems most logical.

All problem solving rounds had a similar structure. First, they'll ask an easy question. If you are able to solve it, they'll add a follow up which was of LC medium level. You needn't code the second part but should be able to discuss the solution. Coding the first part is necessary to get through. I've explained each round in detail below.

Round1: Pair programing on Hangouts

Given some currency conversion rates, an input currency, input amount and a target currency, find out the converted amount. Also report if it’s not possible.
Had to write a compilable and running code on coderpad.
For the first part, we didn’t cover transitive conversions.
Second part included transitive conversations.
So, it converts into a problem of finding a path between source and destination nodes in a directed graph. Graph can have cycles too.
Interviewer was really helpful. Not in terms of hints but helping me to make the code runnable.

Round2: Pair programing on Hangouts
Given a tournament of games. There are m games where each game is played between two players. We know the result of each game, as in who won by how many points. This data will be provided to us.
Now, for query, we’d be given two players and we have to tell who won more matches.
For the first part, we have to return -1 if there’s a tie. Simple hashmap solution.
For the second part: in case of a tie, we’ve to transitively check for two players. If A and B haven’t played against each other but A defeated C and C defeated B, then A is the winner between A and B.
This required DFS from both sides.
I wrote the complete code for the first function.
For the second function, I wrote the DFS function. There was some pieces left in the calling function. But interviewer seemed satisfied.

Round3: Pair programming on Hangouts

I was asked to design a simple vending machine. And code it.
Minimal vending machine with a single drink and a single type of coin.
In follow up, I was asked to add support for multiple type of coins.

Design was quite simple. I had to write running code.

Round4: Pair programming on Hangouts

Given a string with special placeholder keys, find out if it’s a valid string. We’ll be given a dictionary of valid placeholder keys.

Example 1:
String: “Hi {{name}}, welcome to {{place}}”.
Dict : [ “name” : “square” , “place” : “Canada”, “greet” : “hello” ]
Result: valid.

The string can be invalid due to a placeholder key not present in the dictionary, or brackets are not organised properly. For eg:
“Hi {name” , “Hi {{name”, “Hi {{name}” are all invalid strings.

After coding this (I took time to code this correctly as it had a lot of corner cases), we only discussed the second part:
The placeholder keys can now be nested.
Example:
String: “Hi {{root.name}}, welcome to {{child.place}}
Dict: [“root”: [“name” : “square”], “child” : [ “place” : “canada” ] ]

Round5: Projects discussion
I was asked to explain about one of the most challenging projects that i’ve done till now. Then, there were counter questions on that for next 30 mins.

Round6: Design/Architecture
I was asked to design a Hotel Booking app. It seems this question is fixed as HR had told me that I’d be asked this question in the last round.
We discussed some parts on the client side as well as server side.
They asked me to talk about the area where I was most comfortable. So don’t worry if you’ve expertise on the client side. You don’t have to talk about server side scalability.
I think they were also testing product thinking.

After all the rounds, I was told by the recruiter that I did extremely well and the feedback was positive for all the rounds. But the hiring priorities have changed and now they were looking for more senior folks. They will get back to me if they find a team hiring for suitable role in future.
Totally absurd.

The last thing changed my entire perspective on the interview process with square. I had offers from other good companies so it didn't affect me that much.

Comments (4)