The process began with a quick phone call, followed by a CoderPad-based interview conducted over Skype.
The interview involved the interviewer from Square presenting a problem statement. I was expected to write a working solution, including test cases, which would then be compiled and run within CoderPad.
I had to complete two of these sessions because the first one was inconclusive.
The first problem was to write an arithmetic expression parser using only parentheses and the '+' sign. This was fairly straightforward. The interviewer then asked to parse a list of expressions instead of just one. Subsequently, some expressions could reference others in the list (e.g., A3 + 1), which was as far as we got. I successfully wrote the code, but I believe the interviewer was displeased with my messy design, as it was "patched through" on the initial structure. Eventually, the recruiter informed me that I needed to do another CoderPad session.
The second interview was much like the first. The problem this time was to write a class scheduler, where each class could have multiple time slots, and we needed to choose a combination of times to attend each class. This time, I tried to focus on designing it properly in an object-oriented manner. However, it took so much time that I was only able to reach one evolution of the problem: returning all possible arrangements instead of just the first.
I haven't received an official response yet, but I'm pretty sure I messed this one up, as I was probably expected to reach at least step 3 or 4. Oh well...
Overall, both problems were non-trivial. The requirement of writing working code plus tests in a one-hour interview makes this probably the toughest interview I've done to date.
If you're undertaking this challenge, make sure you are able to solve the above problems quickly and properly, object-oriented.
Use Python (or similar) to save some time on list comprehensions. Good luck!
The following metrics were computed from 59 interview experiences for the Block Software Engineer role in San Francisco, California.
Block's interview process for their Software Engineer roles in San Francisco, California is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Block's Software Engineer interview process in San Francisco, California.