When we interview people, the answers we want often aren't real-world answers because we're trying to get a deeper understanding of how you think or how well you know the details of a complex mechanism.
When we interview people, the answers we want often aren't real-world answers because we're trying to get a deeper understanding of how you think or how well you know the details of a complex mechanism.
But it was a good thing overall. I showed me signs that the company has an elevated degree of not invented here culture, and that they aren’t very clear when requesting/scoping work.
I do many interviews and I remember even when I started I had to be pretty clear what the candidate can and cannot use. I actually appreciate that they can find existing solutions that are likely better than what one can come up with in a few hours but if I need to test them on how they can code something like that I'll specifically state it.
What the applicant illustrated is that he is a much better engineer than the interviewer and the interviewer did not like it.
Good software engineering is about leveraging existing robust tools in a new way, not about re-inventing a wheel while making is square.
For me that would have been an insta-hire.
I agree that the answer was a good one in the real-world sense, and one that I would like an engineer to use under the right circumstances.
I disagree that the answer demonstrated engineering prowess, however. Sometimes you have to assume the lack of existence of certain tools to understand how a candidate would have implemented the solution him- or herself to get a more thorough understanding of his or her engineering chops.
> Good software engineering is about leveraging existing robust tools in a new way, not about re-inventing a wheel while making is square.
Use of external libraries or solutions is often very restrictive (if not banned) in my field. We can use existing internal or known verified solutions. Not everything is so black and white, and not all options are always on the table. They rarely ever are.
I don’t think really think “leveraging existing tools” is a defining part of software engineering... though it certainly is part of it. Software engineering is much more than just coming up with solutions.
The applicant solved a problem that was presented to him. If the person who interviewed him did not want him to do it that way, he or she would have specified it.