The coding challenge was interesting - not very difficult to complete correctly, but required some thought about handling different cases and applying proper software engineering principles to produce production quality code. There were three final in-person interviews. The first one was a review of the coding task with some feedback and a discussion and further exploration of the problem. The second one was an algorithmic problem to solve and produce pseudocode for. The last interview was dedicated to designing a system and its components and talking about its details.