The panel "Looking to work for a BIG company" took place on April 7, 2010. The session allowed students to connect with co-op student panelists who all had experience working in "big" companies such as Microsoft, Amazon, Facebook, Google, IBM, and EA Games. The Online Learning Community takes a focus in this article on how to tackle an interview with one of the biggest - Microsoft. Please take the time to listen to the podcasts (MP3 format) provided for in-depth information on a more personal level.
Some interview tips were offered by the panelists in regards to "big" companies in general:
1. Know Your Stuff
Learn your data structures, algorithms and concurrencies. There are no ways around that. Don't assume you already know the stuff or you'll get choked during the interview. Pick up your dusty textbook from CMPT 255/300/307/431 (or get one from the library) and try to know it inside out. Learn the internals of your favorite language (C/C++: v-table, templates, malloc, Java: generics, objects allocation, GC, etc...). Knowing more than one language is a huge plus (Python, Ruby, PHP, Haskell, Lisp, etc...).
2. Do Your Homework
Research about your company and your position. Find out what your company does and do some digging on that field - you'd be surprised (Ex: No, IBM doesn't make laptops). Got a business term that you don't know on your job description? Google it. If they say you need to know something for the position and you don't, go figure it out.
Connect with other students or people who have had those interviews, ask your Co-op Coordinators to connect you, ask your friends, professors or use LinkedIn. Use this meeting to learn about the culture, the projects they worked on, the expectations and bring this connection and information into your interview.
Try to lookup your company's interview questions online and understand the concept behind. Practice coding and problem solving on a whiteboard or pieces of paper, as it is quite different from doing that on an IDE. Also, try reading some coding in a plaintext editor (without synta highlight) as you might be asked to describe what a piece of code does and spot its bugs. Career Services in SFU provides mock-up practice, which is very useful.
5. Stay Calm
Try to get a good sleep the night before your interview. For phone interviews, make sure you have a glass of water on your desk and your computer, Internet and phone is fully functioning before the interview begins. During the interview, don't worry about not knowing all the answers and don't obsess over little things such as forgetting a specific term or the exact syntax of a language.
Malcolm Lalkaka - Interviewed with Microsoft
In order to get an interview with Microsoft, you will quite certainly need to meet a Microsoft employee in person. The best way to do this is through career fairs. Read my article on Preparing for Career Fairs and Employer Information Sessions for exactly how to land interviews through career fairs.
The first interview after the career fair may be over the phone, or on the SFU campus. Questions will include both behavioural questions as well as technical questions. You will be asked at least one programming question. Read "Programming Interviews Exposed"; this book is recommended by Microsoft for their interviews. Even if you are applying for a Program Manager position, you will still be asked programming questions in this interview.
If you make it through that interview, you will be invited to Redmond, Washington, for the final round of interviews, all expenses paid! However, this will be one of the most intense interviews you have experienced. In fact, there are about 4 interviews in one day, with 4 different people. In each interview, you will be asked a combination of behavioural and technical questions. If you are applying for a Program Manager position, the technical questions will be product design questions. I imagine that if you are applying for SDE or SDET positions, the questions would be programming questions.
Microsoft's hiring process is quite slow, so you'll have to be patient with them. However, they can be quite flexible if needed as well, so do keep them in the loop if you are offered competing offers.
I handed in my resume to Microsoft BigPark during one of the SFU Career Fairs. I think I had talked with one of the recruiters for more than an hour. After a few weeks I got an email from them requesting an interview, it was later on when I found out that they did not post any job in Symplicity or advertised that they were looking for a co-op student for that semester, so it is always better to apply through different mediums because you never know when they will change their mind. The interview was one and a half hours; we mostly talked about what I did in my previous co-op in EA. For technical questions, they asked me to write in pseudo-code.
I applied via their website and was contacted by the program manager for a phone interview. I kept everything as informal as possible yet professional. I was asked to do a 'live' project as a competency test with other candidates. After being rejected, I asked for a reason for that and was surprised to find out that I was the only undergraduate competing against other candidates who were graduates. Because graduates have a paper they need to be working on, they were preferred instead of me (but I was given an opportunity for Fall's opening).