Phone call and follow-up coding assignment.
In the phone call the guys had nice mannerisms but leapt straight into the technical questions of the interview without seeming to want to know anything about me or why I was applying to the role. That question only came later as something of an after-thought. Otherwise, they asked relevant technical questions.
As for the coding exercise, it was stimulating and required a bit of thought into how to implement a solution. I was expected to complete it within 75 minutes. The provided README stated:
"You are not expected to complete all of the rules in the time available: this
is based on a real piece of work we did that took several days of investigation
and implementation. Concentrate on doing the simplest thing you can at every
step, and please ask if something is unclear. This can be a complex problem to
get your head round so do ask if you need more information."
Nevertheless I provided a simple solution in more or less 100 lines of code that allowed for all the provided tests to pass, and added some tests of my own for extra guarantee that the code was stable.
I was therefore surprised to receive the following feedback:
"The team have all reviewed the code and we all came to the same conclusion: the code submitted was over-engineered and very hard to follow."
My immediate questions about this feedback were the following:
1) How can I overengineer a solution when given only 75 minutes to do it? If anything, the solution was under-engineered given the time constraints.
2) If they wanted me to provide a solution that met the complex requirements that took themselves days to implement, how do they expect me to do the same in under 75 minutes in less than 100 lines of code?
The obvious reaction I had was confusion about what was expected of me. Second, I felt like I had been dismissed unfairly. My solution was pretty bare-bones and definitely not the kind of implementation I would give in my professional work, but to claim that a mere 100 lines of Java code (including bracket lines) is "overengineered" and "hard to follow" sounds almost like they simply couldn't be bothered to take the time to look at the code properly, and dismiss it.
As such, if I were someone applying to this company, I'd really persuade you to ask in the phone interview whether they actually have a strong need for any new talent, or if they were just asked to fill the role from higher-up and have no strong desire for expansion.