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.
In 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.