I shared my resume with them during the Career Fair in my university. I had to submit the usual video interview. Then I got a call for the phone interview.
Phone interview:
- Was about 45-50 minutes technical interview.
- Questions covered over engineering math, general programming concepts, MATLAB, C++ and DSP
- Math questions covered system of linear equations, line equations and some algebra stuff
- Programming and C++: OOPS concepts, specifically inheritance; about parent and child constructors
- MATLAB: Difference between A' and A.' (both are same), how do you reload workspace variables on MATLAB startup (check out startup.m and finish.m online).
- DSP: Causality, stability, pole-zero plot and simple convolution and filtering.
Got a call for onsite interviews a week or so later. They scheduled to trip to Natick, MA and covered all incurred expenses.
Hiring Manager Interview:
- This person will be your manager in the company if you get the job. Keep that in mind.
- Usual behavioral questions from resume like what did you learn from this project, how did you manage conflicts of interest in the group, when was a time you had to handle multiple responsibilities and how did you go about doing it etc.
HR Interview:
- First, she explained the work culture, benefits and lot of logistical stuff
- Then, again, some behavioral questions which exactly overlapped with the manager interview. I later heard that it is purposely done so.
Then, I was taken for lunch (within the company campus) by two ASEs. This too is planned! The ASEs will be ones who are already working with the same manager you were interviewed by. So, these guys also try to get some info about you and report it to the manager. Your interaction with them during the lunch also counts to your interview performance!
After lunch, I had the technical interview.
Programming:
- Design a class structure for your department in college. And then, I was asked what kind of methods will you have to extract specific information.
- Write a recursive function for calculating fibonacci(x). It means the function needs to give the x'th number in the fibonacci sequence. For ex. fibonacci(4) will be 3. You can choose which programming language you want to use.
- Then again some inheritance questions.
- Do you know about suppressing warnings in MATLAB, private functions in MATLAB
- Cell arrays in MATLAB
- Write a program to draw an arc starting at some point on the y-axis. Radius is given and from the given information it was also possible to find the angle of the arc with the origin, starting from a point on the y-axis and drawn clockwise.
- Defining variables in functions and trying to access them from MATLAB command prompt as though they were workspace variables.
- Main function and sub-functions in MATLAB.
Math:
- Find the area of the largest rectangle under a curve symmetric about the y-axis. The equation of the curve was given.
- Find the gradient of a scalar function.
- A few more which I don't quite remember
Digital Signal Processing:
- Partial fractions, Z-transform and comment on causality and stability
- Decimation and Interpolation
- Finding digital frequency of mixture of signals
Overall, it went well for me ad I did not get stuck at any point.
After that, we were taken a tour around their buildings. In the night, a few employees took us for dinner and we had a lot of interaction and fun.
But, till now I do not understand what could be the reason for they rejecting me an offer. I would say the overall experience was great and we also got to roam around Boston. But, the company needs might not always match you profile, even though they call you onsite.
Hope this helps and all the best!