What to Expect During a Microsoft Interview

Microsoft has long been known for rolling out the red carpet to woo interns and new college graduates and paying them well. However, the company faces a lot of competition for new talent these days from the likes of Facebook, Twitter, Amazon and a hot startup scene – especially in the Seattle area.

Microsoft Building Front DoorIn the midst of a reorganization and hunt for a new CEO, the Redmond software giant remains focused on bringing in the brightest technical minds.

Dice News spoke to one of the company’s technical recruiters, Trish Lincoln, about how to stand out during technical interviews with Microsoft, and other companies. She talked about the “ABCs” of interviewing: Always Be Coding.

How many interviews should a candidate expect to go through?

That varies, because it’s a huge company. But generally students should expect to go through two rounds. The first is generally at the university or over the phone and the second generally is on [Microsoft’s] campus.

What problems do you see when interviewing interns and new college grads?

One thing is that they don’t talk enough about what they’re really excited about. When they’re early in their career, they’re not that willing to talk about things they’re passionate about, so that makes it difficult to dig in and know what kinds of challenges, what kinds of problems they like to work on, what makes them excited to come to work.

What are Microsoft’s technical interviews like? Whiteboarding? Brain-teaser questions?

It’s a big mix. It’s a big company. Different people have different styles. Brain teasers might be good for some candidates to get them in the mindset of solving problems. Other students just like to get right to it – put a whiteboard or computer in front of them and have them start coding and solving problems.

So what should students or new grads do to prepare?

I would say really be coding at least a couple of weeks in advance. Spend a lot of your time coding, not only on your own, but also in front of your peers and walk them through why you’re solving problems in that way. So it’s not just important to code something up and have it done accurately, but it’s really important to be able to explain why you did it a certain way.

Code is really an art form, so there’s lots of different ways to do it. When you’re really learning the most is when you’re explaining it to someone else. Have your peers in the room probing you by asking why you did it a certain way. Spending as much time as possible coding, both on a whiteboard and on a computer, will get people in a mind frame to come in for technical interviews.

For those going for their first or second interview, it’s just a matter of getting over that interview hump. So really practicing is key. Ask people, “What have I not thought of?” Don’t come into an interview trying to prove something, come in showing you want to work with us and also gauge that it’s a place you want to work. It’s a two-way street.

What sets one candidate apart from another? What is Microsoft really looking for?

We’re really looking for people who can’t wait to come to work in the morning. They can’t wait to come in and work on a challenging technical problem and really get to the bottom of how to optimize something or build something more efficiently, how to build something new to solve a problem — whether it be moving something to the cloud or creating more space for something. There’s a ton of problems to be solved, so we’re really looking for people who can’t wait to work on that.

What would you suggest if a person is standing up explaining a coding problem and they get stuck? Or their mind suddenly goes blank?

It happens here all the time to full-time engineers. I would suggest treating the interviews as collaboratively as possible. I always tell candidates to pretend it’s their first day of work. Pretend they already have the job. What are the questions you would ask? If you get stuck, you’re stuck for a reason. Is a piece of information missing? Did you just get lost in your code and there’s a bug somewhere? You can ask the interviewer, “What am I missing? I’m kind of lost right now. Can you help re-orient me?” The more honest candidates can be, the more the interviewer can get a feel for how engineers work and help them through their interviews. [Interviewers] are not here to trip them up at all, they’re here to be collaborative. Working together with someone is a great way to push through a brain freeze.

Can you give me some examples of questions that candidates might encounter?

There’s no list of required questions you should know. If you try to prepare with specific questions, you won’t get those. I would suggest that candidates just coming into the industry focus on the fundamentals. Go through problems that have to do with data structure, go through things that have to do with writing up good statements and think about writing the code before it actually goes up on the board. The fundamentals of computer science are really the things to brush up on.

For students, I would suggest going back to your introductory CS teachers and getting some of the problems they’re working on with their new students to get back into that mindset of the fundamentals of computer science.

Tell me about the cultural fit you’re looking for. How do you determine whether a candidate is a good fit?

We’re looking for people who are really motivated to solve technical challenges and we find that in people who, even when given a really tough problem, they never give up.

Let’s say I ask you to generate all the test cases you can, given a certain problem. We’re not looking for the students who come up with five, then say, “I think that’s about it.” We’re looking for those who say, “I’ve come up with these five, but there’s more that I’m not thinking of. Help me talk through some more.” They just keep pushing until the interviewer literally says, “OK, we need to stop now.”

Being communicative and being collaborative is another big piece. We’re not treating it as, “I’ve asked you a question and it’s your job to answer.” It’s, “OK, I’ve asked you a question. Your job as an interviewee is to frame it and pull me into the conversation and make me part of what we’re trying to solve.” We’re looking for people who want to work with us, not just work on their own.

The big thing in this industry right now is [hiring] folks who are nimble, people who are looking to solve problems and think outside the box … keeping in mind scalability and the size of the customer base and those sorts of things.

You wouldn’t even be in a technical interview unless you’ve impressed someone along the way, right?

The people who are out there coding all the time are competing in competitions, they’re mentoring freshmen and sophomores in computer science. It’s easier to demonstrate the work that you’ve done if you are participating in these things and promoting yourself actively as someone who is out there doing the work already.

Comments

  1. BY Mohamed El-Houssainy says:

    Very helpful article before my first upcoming interview.

    This article helped me to open my eyes and see that I am as interviewee in an interview have to show who really I am and to show how I really treat with the interview problems in the real life , this is my mission in the interview and not to just answer the questions only as if I was in an exam!

  2. BY carrie cramer says:

    Always Be Coding! :)

  3. BY Don King says:

    The true objective is NOT to be forever “coding”. That’s the manual, and “toughest” portion of IT that nobody wants to do. Usually they get paid the least for it as well, in comparison to those who are not “technical” and have “slimed” their way into this field. Managers, recruiters, and testers come to mind.

    The real objective, that I’ve done and been working on over the last 30 years, is designing, developing, and implementing, dynamic and artificially intelligent systems that adapt on their own. Teach, and write new code, themselves whenever possible. Increases development costs initially, but gives an ROI (Return on Investment) that’s generally 10 times conventional design methodologies. Doubles or triples the system longevity, and requires little or no maintenance. Sometimes this has been an absolute essential. For example, how many times would you want to send up a space shuttle to reboot, or upgrade software, and/or hardware in/on a communications satellite? Pretty expensive maintenance, if you ask me.

    People are too far removed from the machine these days. They forget that a computer is a “machine”. Consequently, they write code, that looks pretty, and everybody likes it, but, it performs like a dog, is specific to a task, not flexible, breaks easily, not “scalable”, “extensible” (I hate buzzwords, but it’s one of the few things that captures yuppie attention), and has to be constantly maintained.

    Further, I disagree with the author. “Coding” is NOT an art form. It is a science. In case you missed it, that’s why the field is called “Computer Science”. Science is about producing the same results, given any given set of circumstances, with the same objects to begin with. “Art” allows for you to get to the same result, but, using different objects to arrive at that same result. “Coding” has all the same base objects. The use of those “objects” to reach a given result is science, not art.

    However, complete, or total, systems and their design, I would agree, is an art form. For example, lat’s say I’m designing a system to do remote, autonomous, brain surgery. How I arrive at that objective could be accomplished millions of ways, using different objects. Once those objects are chosen, then the development, implementation, and use becomes a science activity.

  4. BY Don King says:

    The true objective is NOT to be forever “coding”. That’s the manual, and “toughest” portion of IT that nobody wants to do. Usually they get paid the least for it as well, in comparison to those who are not “technical” and have “slimed” their way into this field. Managers, recruiters, and testers come to mind.

    The real objective, that I’ve done and been working on over the last 30 years, is designing, developing, and implementing, dynamic and artificially intelligent systems that adapt on their own. Teach, and write new code, themselves whenever possible. Increases development costs initially, but gives an ROI (Return on Investment) that’s generally 10 times conventional design methodologies. Doubles or triples the system longevity, and requires little or no maintenance. Sometimes this has been an absolute essential. For example, how many times would you want to send up a space shuttle to reboot, or upgrade software, and/or hardware in/on a communications satellite? Pretty expensive maintenance, if you ask me.

    People are too far removed from the machine these days. They forget that a computer is a “machine”. Consequently, they write code, that looks pretty, and everybody likes it, but, it performs like a dog, is specific to a task, not flexible, breaks easily, not “scalable”, “extensible” (I hate buzzwords, but it’s one of the few things that captures yuppie attention), and has to be constantly maintained.

    Further, I disagree with the author. “Coding” is NOT an art form. It is a science. In case you missed it, that’s why the field is called “Computer Science”. Science is about producing the same results, given any given set of circumstances, with the same objects to begin with. “Art” allows for you to get to the same result, but, using different objects to arrive at that same result. “Coding” has all the same base objects. The use of those “objects” to reach a given result is science, not art.

    However, complete, or total, systems and their design, I would agree, is an art form. For example, let’s say I’m designing a system to do remote, autonomous, brain surgery. How I arrive at that objective could be accomplished millions of ways, using different objects. Once those objects are chosen, then the development, implementation, and use becomes a science activity.

    • You are absolutely right. When I code something I feel that I’m drawing a beauty of nature or creating or designing any idea with my innovation is like a drawing with sketch. I feel the code with color and spectrum. It’s an art.

  5. So have to set my mind with coding.

  6. BY Anonymous says:

    I will not reapply any time soon to this company, or other similar ones with their long and looney tunes recruitment process. If you can pass their impossible long screen, most likely you can make twice better money other places just using those skills you know already and not have to grill yourself every day at work.

Post a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>