Today I had one of those interviews where everything seemed to just flow naturally from the start to the finish.
I was initially hesitant to agree to this face-to-face interview, as I am in the process of preparing for another interview which will involve me using an editing environment that I am not particularly familiar with. The agent's description of the interview process convinced me to go along, and I am quite glad that I did.
I started off with 20 minutes to come up with a design for a web-based application that closely resembled a game I had worked on as part of a university project.
Here's how it rolled off my pen:
- identified entities, their states and relationships to eachother as UML-like class diagram;
- highlighted an aspect of the "business rules" that was ambiguous, if not downright contradictory;
- thought a bit about the processes involved in initialising the game, general game play, where the responsibility for that processing might belong;
Then I went back to the description of the task to see what I was missing:
- jotted down some possible approaches for client-server interaction
- added some detail about how state changes could be communicated from the server back to the client
- considered approaches for dealing with scalability and preventing cheating
None of this had much to do with my university project, but having a slightly familiar concept helped my approach.
I really enjoyed this interview approach, as it demonstrated the way that I go about coming up with a full solution - if you think of the loosely described model as a series of inter-related problems.
The rest of the interview was more typical - a talk through some of the technologies on my CV: "what do you think about Spring?", "describe the JDBC connection pooling problem", "did you use tiles with struts?" etc., followed by a pair programming exercise that went smoothly, apart from the Eclipse upgrade issue preventing the keyboard from functioning :-)
I expect the interview will lead to the next stage, but even if it doesn't it was great practice for the next one which is in a couple of days time.