Overall the interview process was good. None of the stages seemed too time consuming, they were nice and focused on a specific skillset or attribute.
The team at Attest were flexible and quick with scheduling and responses. I received detailed feedback after each stage.
Each stage of the process was detailed in a handbook along with their ways of working, how they prioritise work and think about feature development, their competency framework, etc.
The process was:
- Intro call (30m)
- Values call (60m) making sure candidate and company values are aligned
- Take home exercise (30-60m)
- Pairing exercise (60m)
- Architecture exercise (60m)
The take-home task was relatively straight forward, adding a couple of simple features to an example codebase. The codebase was set up in Java and Go, with the candidate free to choose either or re-implement it all in any other language.
The pairing exercise was mixed. The feedback I received stated they wanted to see more problem solving skills, however there was little room to demonstrate this, as my pair would offer suggestions or guidance whenever there was an opportunity to pause and think about the problem, meaning I had little chance to do this myself. They were accommodating of the fact that I was taking the test in a language that is new to me, so perhaps they were over-compensating by trying to help here?
The architecture session was good, and fairly typical: they described a system, asked me to describe the basics of how it would be built, then threw in some challenges/new requirements/unexpected occurrences etc and I had to design ways to mitigate these. The feedback I received here doesn't exactly align with the expectation (that they are testing problem solving not looking for a specific implementation), but I agree with the point they raised.
Overall it was a good process, the main points I'd feed back would be to align the criteria candidates are judged on with the style in which the interview is actually run. The coding challenge could be rewritten to avoid putting the candidate in a position of choosing an unfamiliar language or re-implementing the whole thing themselves (which is unrealistic, this would take a few hours on top of the rest of the process).
I'd also suggest collecting candidate feedback after each stage so this can be fed back anonymously to improve the process.