Looks great and will give it a try in the future. Refactoring is one of the fun things in our job so making it as part of the interview is great.
When I make interviews I also come with the code, normally a few line snippet and have the person tell me what it does or whether there might be a bug and talk about it.
Reviews are also great. They take away the show-cooking aspect where many people feel nervous and makes it more conversational. It is also very easy to evaluate as well because everybody debugs code at some point.
I personally dislike even fizzbuzz because there are always clever ways to go around it that are totally irrelevant.
I was once asked to implement sort a list in python, so I just took the list and passed them to sort. But no the interviewer wanted me to implement a specific type of sort…this was for a distribution maintainer job and I almost failed it because of that. Fortunately the other stages were actually technology related and I aced them.
I'd give a bit of guidance. This can go so many ways. I can see many right but totally different answers.
In any interview, I kind of presume that the interviewer has a "perfect answer" in mind and is playing some game where I basically need to guess what number they're thinking of.
I'd make it clear that anything is ok. Just go some direction
Oh definitely. I start with very basic syntax level changes. I want to hear the candidate say "switch case or if/else tree" within the next 20 mins at the least (for SDE I).
And the problem can be scaled to any complexity. Distributed/Design/Data Storage
When I make interviews I also come with the code, normally a few line snippet and have the person tell me what it does or whether there might be a bug and talk about it.
Reviews are also great. They take away the show-cooking aspect where many people feel nervous and makes it more conversational. It is also very easy to evaluate as well because everybody debugs code at some point.
I personally dislike even fizzbuzz because there are always clever ways to go around it that are totally irrelevant.
I was once asked to implement sort a list in python, so I just took the list and passed them to sort. But no the interviewer wanted me to implement a specific type of sort…this was for a distribution maintainer job and I almost failed it because of that. Fortunately the other stages were actually technology related and I aced them.