The process began with a 1 hour phone interview with the hiring manager. That discussion centered around reviewing my background and experience and also 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()). The 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 -- but what they had in their mind was the need for an Observer pattern. Never did they mention that what they wanted was the ability to have multiple listeners so I thought this problem was not setup very well -- especially because I'm familiar with 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 of the members of the team I was interviewing for. The contents of the presentation was asked to be 5 to 10 minutes on my background, education, and experience, followed by 30 to 40 minutes explaining in depth a project that I'd 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 did take about two full days to prepare, including incorporating feedback from the recruiter and hiring manager prior to the interview. And I was also dissapointed 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 had only IE and was asked to give the demo anyway, which I should have not done 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 promissed me the proper environment.
The rest of the day went well with the one-on-one interviews. Everyone we very friendly and supportive. They all asked very good questions, some about general development processes, 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 recieved 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 of a positive and supportive attitude 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.