I'm a graduated computer sience student (with a gpa of 95/100) and maintain some open source projects. I love to code and this is my daily job in a company that almost declined me in the interview proccess because of the same reason (I feel very appreciated in this job and my last one).
When seeking for new one, I constantly get the impression that I over complicate my answer. It's hard for me to change that because I don't understand what that means.
I find out that there are some repeating patterns when I find solution to interview-problems.
I seek an advice on how can I do things different because I clearly do something wrong.
Example (This week)
The intreviewer really impressed by me on the phone so he gave me a small task to do offline.
The task description wasn't so good so I had alot of questions. I could only ask him by sending SMSs, so I felt limitted in the amount of questions I can ask and also, the level of details of them.
As a result, I emailed him the solution which included the solution he wanted but also included some extra code related to some quesitons I had but didn't ask.
Today, I received an answer: "We reviewed your code and, while we really appreciated the effort (never has someone race 2 promises as a timout mechanism!) we still found it overly engineered/complex and too hard to read."
That what the end of the interview proccess.
I feel that if I wouldn't give the extra work, he could have emailed me back: "Why didn't you cover in your answer the case where....". And my respond would be: "There where 5 different cases that I didn't cover so the answer would still be simple to read. why is the case you present to me is more important than the others?"
It leads me to the conclusion that he had only a single solution to this problem and any other valid solution will not be accepted.