What I learned from this experience is to get clarification on what the position *really* is before committing several hours to a take-home coding assignment.
I applied for a Software Engineer position with a Bachelor's under Requirements and C++ knowledge under Preferred. I was contacted a couple weeks later directly by an engineer that asked me to implement a class and unit tests and submit it within 5ish days. Ok, sounds interesting. The engineer responded to a couple clarification questions I asked but when I followed up with a few more, they essentially responded "it's up to you" and I got the impression they would not prefer any more clarification questions. With the absence of direction, I made some assumptions while writing the code (this is important later). Keep in mind, I still have not spoken with an HR person/team lead/someone who usually tells me about the role itself, the team, and the company. Just straight to this coding assignment.
After submitting the assignment I quickly get a response to schedule a phone interview with the same engineer to go over the code. The interview is where my interest in the role went very much downhill.
The engineer and I went through my code and they pointed out several legitimate areas where my code could have been improved, which was good.
However, the engineer also harped on how my code had bugs, when these “bugs” were the intentional but incorrect assumptions I made after getting the non-committal response to my questions. As well, the engineer insisted for a period of time that my code shouldn't be compiling due to the way I declared a function. I did not know how to respond to this as the code was in fact compiling just fine and I had verified the way I declared it with several online examples.
I realized by the end that if I got an offer and started working with this engineer, it wouldn't be "a good fit" as they say.
Also, the apparent goal of this engineer's group was, er... boring, and not worth switching jobs for. The engineer only went through this aspect at the end of the call. Confirming my suspicions, I received a rejection email about a day later. The only loss here was, regrettably, my time in doing the take-home assignment.