The process began with a 1-hour phone interview with the hiring manager. That discussion centered around reviewing my background and experience, as well as my goals and expectations.
The next step was a phone interview with an engineer on the team to focus on technical issues. We spoke over the phone and used a shared Google Docs document, which they had pre-populated with some sample code. The sample code was a class that represented a collection of data and had an insert() function and a display() function. The idea was to have the display() function be called whenever the data is changed (via insert()). A suggestion was given that there was a cleaner way of handling this, and the engineer kept pointing out that there was a problem with needing to reference from a different file. What they had in mind was the need for an Observer pattern, but they never mentioned that what they wanted was the ability to have multiple listeners. Consequently, I thought this problem was not set up very well, especially because I'm familiar with the Observer pattern and have used it many times to solve problems that required multiple disconnected listeners.
Next, I was asked to go to the office for a full day of on-site interviews. The recruiter did a good job of explaining how the interview process would work and the reason for asking me to do a presentation, which all candidates at MathWorks are asked to do.
I was asked to make a presentation for the first hour, which would be to all members of the team I was interviewing for. The contents of the presentation were requested to be 5 to 10 minutes on my background, education, and experience, followed by 30 to 40 minutes explaining in depth a project I had worked on previously. This made sense to me, since those questions are asked repeatedly in most one-on-one interviews, and the presentation allowed going over that only once before doing one-on-one interviews for the rest of the day. However, the presentation took about two full days to prepare, including incorporating feedback from the recruiter and hiring manager prior to the interview. I was also disappointed that I had specifically asked ahead of time if I would have access to Chrome or Firefox for a demo of the project I was explaining, but during the presentation, I only had IE and was asked to give the demo anyway. I should not have done so, since the product I demo'd does not work well in IE, and that looked worse than no demo at all. I should have refused and pointed out that they had promised me the proper environment.
The rest of the day went well with the one-on-one interviews. Everyone was very friendly and supportive. They all asked very good questions, some about general development processes and some about technical issues, although I was not asked to work on any coding problems at all, which surprised me.
In the end, what I found troubling was that during the entire process, I received almost no feedback on what they were thinking about the mountain of information I was providing. I did get one comment about my code being "overly complex," but other than that, everyone was positive and supportive but gave no indications that might allow me to better explain my situation.
The recruiter notified me via email that they did not think I was the right fit. I asked the recruiter, who mentioned in the email that we should stay in touch about any possible future opportunities, if I was not a good fit for the particular group I interviewed with or for MathWorks as a whole, but I was completely ignored. I guess once they're done with you, they're done with you.
There were many, many questions. But no coding exercises beyond the technical phone meeting described above.
The following metrics were computed from 2 interview experiences for the MathWorks Principal Software Engineer role in Natick, Massachusetts.
MathWorks's interview process for their Principal Software Engineer roles in Natick, Massachusetts is fairly selective, failing a large portion of engineers who go through it.
Candidates reported having mixed feelings for MathWorks's Principal Software Engineer interview process in Natick, Massachusetts.