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 of weeks later directly by an engineer who asked me to implement a class and unit tests and submit it within approximately five days. Okay, that sounded interesting. The engineer responded to a couple of clarification questions I asked, but when I followed up with a few more, they essentially responded, "It's up to you." 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 had not spoken with an HR person, team lead, or someone who usually tells me about the role itself, the team, and the company. It was straight to this coding assignment.
After submitting the assignment, I quickly received 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. Additionally, 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 spent on the take-home assignment.
Implement a C++ class along with unit tests.
This is a take-home assignment.
The following metrics were computed from 148 interview experiences for the MathWorks Software Engineer role in United States.
MathWorks's interview process for their Software Engineer roles in the United States is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for MathWorks's Software Engineer interview process in United States.