interview

August 1, 2014 interview

Future Proof Your Technical Interviewing Process: Hiring or Not

This is the last in a 4-part series on how to interview well. Parts 1-3 covered the phone screen, the technical interview and the fit interviews. In his part, we’ll wrap up by talking about how to make the hiring decision.

Make Time For Questions

As important as what questions you ask the candidate are leaving time for them to ask their questions. Remember that they’re interviewing you, too. Be open and honest about the answers; technical people have a sensitive bullshit detector, so don’t try to pretend that everything is perfect; they’ll know if you’re not being sincere. However, it’s a fine line. If you find yourself dwelling on the negative, you have to wonder if you’ve found a good fit for yourself.

Also, don’t forget to factor their questions into your own thinking about the candidate. The questions they ask about a job and a team they’re going to be spending 40+ hours/week with is as good an indicator of how they think as anything else.

Making the Call

As you pass the interview candidate from person to person, make sure that you spend a few minutes in private with the next interviewer talking about what you heard that you liked as well as things you’d like them to circle back on. You want to give them an opportunity to try again, either to convince you it’s not an issue or to confirm that it is.

Every interviewer should share their thoughts about the candidate soon while they’re fresh. You can send an email around to the team as you finish or get together in the same room after the candidate has headed home, but it should be the same day; those first impressions matter.

Ultimately each interviewer will provide three pieces of information: a thumbs up/down (whether you use actual thumbs for this process is up to you : ), a confidence level (do you really love this person? are you on the fence?) and an explanation (“I loved how they think about the customer!” or They never figured out how to efficiently search an infinite space of possible solutions.”)

The set of interview results will come out in three ways:

  1. Everyone loved that candidate. Hire them.
  2. Everyone hated the candidate. Don’t hire them. Be polite!
  3. There’s a mix. Discuss. Potentially get more info.

Of course, options #1 and #2 are easy to deal with. Unfortunately, option #3 is where most candidates fall. The question is, what do you do with a candidate with mixed results? If you’re following the principle that it’s better to send a good candidate away then to hire a bad candidate, then you’ll pass on them. However, you’ll want to spend some extra time on candidates like these. Discuss it amongst the team. See how adamant the thumbs up voters are and why. See how adamant the thumbs down voters are and why. If the candidate is on the fence but leaning towards hire,” pick someone else to talk to them and/or get them into a different environment, e.g. the bar down the street or the bowling alley at the company Xmas party, and see how they do.

Ultimately, it boils down to one thing: does the team as a whole want to bring the candidate into the team? If so, great. If not, let them go. Certainly a senior member of the company or department can override the team and hire a candidate above their objections, but I wouldn’t recommend it. You’re much more likely to hurt a good team in those situations then to help it.

Where Are We?

Whether you agree with the specifics of this process or not, I encourage you to spend the time to really examine your process. You want the team you build to be more than the sum of the parts, but that kind of magic requires first that you have great parts.

July 29, 2014 interview

Future Proof Your Technical Interviewing Process: The Fit Interviews

If you just found yourself here, you’ve stumbled onto a multi-part series on the technical interviewing process. Part 1 covered the phone screen and part 2 covered the technical interview. Today we’re going to discuss the fit” interviews, that is, team and cultural fit.

The Team Fit Interview

Modern software development is done in teams. You want to be able to judge any candidate as a productive, positive member of your team. They don’t necessarily have to have experience doing things the way you do them, but they should show the ability to adapt when issues arise. Your job in the team fit interview is to break the important things that happen in your team into situations that you can ask your candidate about. The following are pretty standard examples:

  • What’s the right process for gathering requirements?
  • How do you convince someone that you’ve got a good idea?
  • What do you do when you can’t convince them?
  • How do you deal with vague requirements?
  • What happens if you’re asked to do something you don’t agree with?
  • etc.

However, you have to be careful here. Pretty much anyone can give you the right” answers to these questions, but you don’t want the right” answers — you want the real answers. How does a candidate actually behave in the face of these situations?

The best way I know of to get the real answers out of someone is something called Behavioral Interviewing. The idea is simple: instead of asking someone how they would act if faced with a certain situation, ask them to describe an example in their past when they’ve had to deal with that situation. Discuss it with them. How did their strategy work for them? What did they learn? What would they do differently?

Just this one shift from how would you deal with this situation” to how did you deal with this situation” will get you a much deeper look into how a candidate actually behaves, which allows you to decide if they’re a good fit for your team.

The Cultural Fit Interview

This goal of the cultural fit interview is to figure out if the candidate will like their new working environment and whether the team will be glad to have them. It’s enormously important and very difficult to access. One typical way to approach this type of interview is to ask the following kinds of questions, also in a Behavioral Interviewing style:

  • (You’re a startup) How do you like the idea of quick decisions, hard work on short deadlines, light process and tight purse strings?
  • (You’re an established company) How do you like the idea of getting buy-in with a set of stakeholders, making sure we don’t ship anything until it’s done, following an established process and sticking to a budget?
  • What’s more important: the customers or the business?
  • What kinds of activities are most important to you? Do you like to be focused on your set of tasks or do you like to do a lot of different things?
  • What makes you as productive as you can be?
  • Where do you see your career path taking you?
  • etc.

These questions are much more vague and really meant to start a conversation, but they’re also very hit-and-miss. If you happen to hit the right path, you can really crack a candidate open like a ripe nut.

Also, you want to be careful how you interpret the answers. If you don’t filter out people that aren’t a good fit for the culture of the company, they’ll be unhappy and you’ll be unhappy. On the other hand, if you filter too much, you’ll lose out on the benefits of diversity. It’s a hard line to walk.

Another way to approach a culture fit interview is to get creative. Maybe invite the person to a company event, perhaps a semi-public mixer or a Friday afternoon beer bash. Maybe sit down with the team over lunch and play a game together. Maybe sit in the café and grab lunch in a small group and see how the conversation goes.

I think the key to finding a good fit culturally is to spend time with the candidate that doesn’t center around the technology you’re using to build your products. For example, involving a candidate in something that the team does for fun can go a long way towards finding a great new member for your team.

Next Time

Tune in next time for when we wrap this series up and talk about how to make the hiring decision.

July 24, 2014 interview

Future Proof Your Technical Interviewing Process: The Technical Interview

Future Proof Your Technical Interviewing Process: The Technical Interview

It’s incredibly important to interview well as you’re building your technical team. Further, interviewing well is hard to do and, like anything, you only get out of it what you put into it. In part 1 of this series, we discussed the phone screen. In this part, we’ll discuss the technical interview.

The Technical Interview

The only way to really know if someone can deliver technically is to give them a problem to solve and watch them solve it. You can do this with simple data structure problems on the whiteboard, test questions on paper, algorithm problems in notepad, real-world problems with some pair programming or puzzle problems with them waving their hands wildly in the air. In a technical interview, you should encourage the candidate to think out loud, because you care more about how they go about solving the problem then actually getting to an answer. You will look for the following things:

  • Are they asking questions to solidify vague requirements?
  • Are they approaching the problem from a logical angle (even if it’s different from what you had in mind)? Does problem solving come naturally to them?
  • Are they making the right use of the features available in whatever sandbox you gave them in which to solve the problem, e.g. making good use of list comprehensions in Python?
  • Are they writing good code and pointing out the shortcuts they’re taking due to the medium they’re using, e.g. the whiteboard? Does the coding come naturally to them or are they struggling?
  • Do they come up with a reasonable answer? Are they on the right path even if they run out of time?
  • Do they understand the why” behind their answer as well as the how?”

This last one is the one I tend to focus on the most. Even more important than a candidate having knowledge of the technologies you’re going to ask them to use is their ability to understand new technologies over time.

My father always says that while teenage drivers hopped up on testosterone may get into the most accidents, they’re the ones that push the cars to see what they will do. You want to hire engineers that have pushed technologies past their limits for the pure joy of it. Those are going to be the ones that build the deep knowledge and can adapt in the future to whatever comes their way.

I filter for deep understanding by not just digging into not only the how” of whatever they claim to know best, but also the why.” They may know how to build a factory in Angular, but do they understand what a factory is and why Angular does it that way? They may know how to manage their resources in the face of the JVMs garbage collector, but do they know why we use garbage collection and what the downsides are? Do they understand what canvas is good for, what SVG is good for and when to choose which?

The key here is that past behavior indicates future behavior — if they’re developed deep understanding of the technologies they’ve learned before, chances are pretty good that they’re going to be able to do that for the new technologies your team adopts in the future. There is no better way to understand how well they’re going to do on future technical challenges than hearing how they’ve handled such challenges in the past and seeing how they do it right in front of you.

What’s Next in This Series

However, the technical fit is not the only thing you need to look for — you also want to make sure that they will fit in well on your team and the company culture overall. We’ll talk about these in the next piece in this series.

July 21, 2014 spout interview

Future Proof Your Technical Interviewing Process: The Phone Screen

In 30 years, I’ve done a lot of interviewing from both sides of the table. Because of my chosen profession, my interviewing has been for technical positions, e.g. designers, QA, support, docs, etc., but mostly for developers and program managers, both of which need to understand a system at the code level (actually, I think VPs and CTOs need to understand a system at the code level, too, but the interview process for those kinds of people is a superset of what I’ll be discussing in this series).

In this discussion, I’m going to assume you’ve got a team doing the interview, not just a person. Technical people need to work well in teams and you should have 3-4 people in the interview cycle when you’re picking someone to join the team.

The Most Important Thing!

Let me state another assumption: you care about building your team as much as you care about building your products. Apps come and go, but a functional team is something you want to cherish forever (if you can). If you just want to hire someone to fill a chair, then what I’m about to describe is not for you.

The principle I pull from this assumption is this: it’s better to let a good candidate go then to hire a bad one.

A bad hire can do more harm than a good hire can repair. Turning down a pretty good” candidate is the hardest part of any good interview process, but this one principle is going to save you more heartache than any other.

The Phone Screen

So, with these assumptions in mind, the first thing you always want to do when you’ve got a candidate is to have someone you trust do a quick phone screen, e.g. 30 minutes. This can be an HR person or someone that knows the culture of the company and the kind of people you’re looking for. A phone screen has only one goal: to avoid wasting the team’s time. If there’s anything that’s an obvious mismatch, e.g. you require real web development experience, but the phone screen reveals that the candidate really doesn’t, then you say thanks very much” and move on to the next person.

If it’s hard to get a person to come into your office — maybe they’re in a different city — you’ll also want to add another 30 minutes to do a technical phone screen, too, e.g.

  • Describe the last app they built with Angular.
  • Tell me how JVM garbage collection works.
  • What’s the right data structure to hold the possible solutions to tic-tac-toe?

Whatever it is, you want to make reasonably sure that they’re going to be able to keep up with their duties technically before you bring them on site, or you’re just wasting the team’s time.

At this point, if you’re hiring a contractor, you may be done. Contractors are generally easy to fire, so you can bring them on and let them go easily. Some companies start all of their technical hires as contractors first for a period of 30-90 days and only hire them if that works out.

If you’re interviewing for an FTE position, once they’ve passed the phone screen, you’re going to bring them into the office.

You should take a candidate visit seriously; you’re looking for a new family member. Even before they show up, you make sure you have a representative sample of the team in the candidate’s interview schedule. At the very least, you need to make sure that you have someone to drill into their technical abilities, someone to deal with their ability to deliver as part of a team and someone to make sure that they’re going to be a cultural fit with the company as a whole. Each of these interview types is different and deserves it’s own description.

Future Posts in This Series

Tune in to future posts in this series where we’ll be discussing:

July 18, 2014 interview

Head of Google interviewing says “results matter, riddles don’t”

Head of Google interviewing says “results matter, riddles don’t”

googleGoogle, like Microsoft, is famous for asking brain-teaser style questions during their interviews. However, in a June, 2013 interview with the New York Times, Laszlo Bock, the Sr. VP of HR for Google, said that

[B]ainteasers are a complete waste of time. How many golf balls can you fit into an airplane? How many gas stations in Manhattan? A complete waste of time. They don’t predict anything. They serve primarily to make the interviewer feel smart.”

In another interview, Bock said that when putting together a resume, focus on what you did in relation to the expectations:

The key is to frame your strengths as: I accomplished X, relative to Y, by doing Z.’ Most people would write a résumé like this: Wrote editorials for The New York Times.’ Better would be to say: Had 50 op-eds published compared to average of 6 by most op-ed [writers] as a result of providing deep insight into the following area for three years.’ Most people don’t put the right content on their résumés.”

Amen!

June 18, 2010 interview

David Ramel Asks About Interviewing at Microsoft

David Ramel from 1105media.com is writing an article that includes the Microsoft interviewing process and he send me some questions:

[David] How would you succinctly sum up the Microsoft interview process as compared to those of other tech companies?

[Chris] MS does some things similarly to other high-tech companies I’ve worked with, e.g. having each interviewer focus on an aspect or aspects, e.g. team skills, people skills, technical skills, etc., expecting a candidate to ask questions, communicating between interviewers to push more on one area or another, etc. The riddle questions are a uniqueness at Microsoft (at least they were when I last interviewed), but theyire pretty rare these days. Coding on the whiteboard also seems pretty unique to Microsoft (myself, I prefer the keyboard : ).

[David] How has the Microsoft interview process changed over time? (Microsoft seems to have shaken up the tech interview process some years ago with those brain-teasing puzzle� questions, but now seem to be much more technically-oriented and job-specific. Just wondering about your thoughts on this observation.)

[Chris] While I have had them, puzzle questions were rare even when I was interviewed 7 years ago. Since then, I haven’t run into many people that use them. However, when they are used, an interviewer is often looking for how a candidate works through an issue as much as the solution that they come up with. In an ever changing world, being able to learn and adapt quickly is a huge part of how successfully you can be in the tech industry at all and at Microsoft specifically. I prefer technical design questions for these kinds of results, however, and it seems that most ’softies agree.

[David] What would you say was the biggest factor in your being offered a job at Microsoft?

[Chris] I had a reputation outside of MS before I interviewed, but that almost didn’t matter. If I hadn’t done well during the interview, I would not have been offered the job. When in doubt, a team generally prefers to turn away a good candidate rather than to risk taking on a bad one, so if there’s anything wrong, team fit, technical ability, role fit, etc., a candidate won’t get an offer.

[David] What’s the single most important piece of advice you can offer to those preparing for a Microsoft job interview?

[Chris] You asked for just one, but I’m going to give you two anyway. : )

  1. If you need more information to answer a question, ask for it. Thatis how the real-world works and many questions are intentionally vague to simulate just this kind of interaction.
  2. Try to answer non-technical questions based on your personal experience, e.g. instead of saying “here’s how I would deal with that situation,“� say I had a similar situation in my past and hereis how I dealt with it.“� This is a style of interviewing known as behavioral� and even if your interviewer doesn’t phrase his questions in that way, e.g. “give me an example of how you dealt with a situation like blah,“� it’s helpful and impressive if you can use your own history to pull out a positive result.

[David] Could you please share any other observations you have on the Microsoft interview process that may not be covered in your site or the Jobsblog?

[Chris] I run a little section of my web site dedicated to the MS interviewing process and the thing I will tell you is this: don’t prepare. Be yourself. If you’re not a fit for MS, no amount of preparation in the days before an interview will help and if you are a fit, that will come through in the interview. Also, make sure you ask questions. Working at Microsoft isn’t just a job, it’s a way of life, so make sure you’re sure you want the team and the job for which you’re interviewing.

[David] Does MS provide training for interviewers? If so, what do they stress most?

[Chris] I’m sure MS does provide training for interviewing, but Iive never been to it. At Intel, I learned the behavioral interviewing technique, which Iive used in every interview since, both as an interviewer and as a job candidate.

[David] Do you have standard questions, or do you tailor them to the situation? If the latter, is it usually tailored for team fit, to a specific open position, particular skills, etc.?

[Chris] I have once standard technique question and a few standard behavioral interview questions. The technical question is to ask them what their favorite technology is and/or what they consider themselves to be an expert� in and then drill in on their understanding. If they can answer my questions deeply, this shows passion about technology and the ability to learn something well, both of which are crucial for success at MS.

My behavioral interviewing questions are things like Tell me about a time when youive been in conflict with a peer. How did you resolve it? What was the result? What did you learn?“� and “Tell me about a time when you had much too much work to do in the time you were given. How do you resolve that issue? What was the result? What did you learn?“� The core idea of behavioral interviewing is that past behavior indicates future behavior, so instead of asking people things like “How would you deal with such-and-such?�” you ask them How did you dealt with such-and-such in the past?“� This forces them to find a matching scenario and you get to see if they way they dealt with the issue in real life matches what you want from a team mate in that job.

[David] How would you describe the kinds of coding questions you ask? A couple of real examples would be perfect!

[Chris] I don’t often ask coding questions, but when I have, I let them use a keyboard. I hate coding on the board myself as it’s not representative of how people actually code, so I don’t find it to be a good indicator of what people will actually do. I guess I even use behavioral techniques for technical questions, now that I think about it. : )

July 25, 2006 interview

Ed Helms on Microsoft Recruiting

This spoof on Microsoft’s college recruiting practices was recorded long ago (back with the XBox was new), but it has recently surfaced again, so I thought I’d share. Enjoy.

November 23, 2005 interview

Wasting the Prince of Darkness

From Pete” (not his real name):

I walked into my first technical interview at Microsoft, and before I could say anything, the woman says, Youre in an 8x8 stone corridor. I blink and sit down.

Interviewer: The prince of darkness appears before you.

Me: You mean, like, the devil?

Interviewer: Any prince of darkness will do.

Me: Ok.

Interviewer: What do you do?

Me: Can I run?

Interviewer: Do you want to run?

Me: Hmm I guess not Do I have a weapon?

Interviewer: What kind of weapon do you want?

Me: Um something with range?

Interviewer: Like what?

Me: Uh a crossbow?

Interviewer: What kind of ammo do you have?

Me: Ice arrows?

Interviewer: Why?

Me: Because the prince of darkness is a creature made of fire???

Interviewer: Fine so what do you do next?

Me: I shoot him?

Interviewer: No what do you do?

Me:

Interviewer: You WASTE him! You *WASTE* the prince of darkness!!

Me: Holy crap what have I gotten myself into.

She then tells me that she asks that question for two reasons. 1) Because she wants to know if the candidate is a gamer (which is apparently really important please note: Im not a gamer) and 2) because she wants her question to show up on some website. I hate to accommodate her, but this is definitely the weirdest interview question Ive ever heard of.

Well, here you go, weird-prince-of-darkness-wasting-lady…

September 6, 2005 interview

Stumped

Tue, 9/6/05, 2:29 pm

February 22, 2005 interview

Scott Hanselman’s Great .NET Developer Questions

Scott Hanselman has posted a set of questions that he thinks great” .NET developers should be able to answer in an interview. He even splits it up into various categories, including:

  • Everyone who writes code
  • Mid-Level .NET Developer
  • Senior Developers/Architects
  • C# Component Developers
  • ASP.NET (UI) Developers
  • Developers using XML

Am I the only one that skipped ahead to Senior Developers/Architects” to see if I could cut Scott’s mustard?

January 21, 2005 interview

Jason Olson’s Microsoft Interview Advice

Jason Olson recently interviewed for an SDE/T position (Software Development Engineer in Test) at Microsoft and although he didn’t get it, he provides the following words of advice for folks about to interview for the first time:

  • Just Do It
  • Remember, no matter how much you might know your interviewer, it is important to not forget that it is still in interview
  • Pseudocode! Pseudocode! Pseudocode!
  • But, as long as you verbalize what you’re thinking you should be in pretty good shape
  • Bring an energy bar or something to snack on between breaks in order to keep your energy level up
  • [B]ring a bottle of water and keep it filled up
  • A lunch interview is still an interview!
  • Know the position you’re interviewing for [ed: unless you’re interviewing for an editing position, in which case you should know the position for which you’re interviewing]
  • Your interview day is not only your opportunity to be interviewed, but also your opportunity to interview the team/company

You can read the full story on his web site.

August 22, 2004 interview

Standing Out When Submitting Your Resume

After seeing all of those pictures in Wired of the wacky letters that people send, I love the idea of Michael Swanson opening the floodgates by sending his resume along with a life-size cardboard figure. What’s next?

August 20, 2004 interview

Some of the MS Interview Process Filmed (Finally!)

Channel9 did what I was unable to ever get done: filmed some of the interview process (part 1, part 2 and part 3). It’s not an actual interview, but Gretchen Ledgard and Zoe Goldring, both Central Sourcing Consultants at HR for MS, lead you through what to expect at a Microsoft interview, providing a wealth of wonderful tips, e.g.

  • MS is casual, so it doesn’t matter so much what you where (i.e. don’t feel you have to wear a suit, but don’t show up in flip-flops and headphones around your neck [still playing!]). Regardless of what you where, it’s what’s in your head that’s important.
  • Interact a lot of with the interviewer. Ask questions, think out loud, etc. The questions are meant to be vague and again, it’s about what’s going on in your head, so verbalize it.
  • Bring water if you’re thirsty, not coffee, as spilling coffee is going to leave a much more lasting stain/impression.
  • MS rarely asks logic/riddle questions anymore. They’re not a good indicator of a good employee.
  • Expect coding questions if you’re a dev, testing questions if you’re a tester and passion questions no matter what.
  • If an MS recruiter calls, don’t expect them to have a specific job in mind. Instead, expect to be asked what you’d like to do at MS.
  • If the first interview doesn’t take, it may well be that you’re right for MS but not right for that job. It can literally take years to find the right job for you at MS.

BTW, I have to say that I never got a ride on an HR shuttle. I guess they save that for the good” hires… : )

Discuss

July 20, 2004 interview

Questions for Testers

A friend of mine sent along some questions he was asked for a SDE/T position at Microsoft (Software Design Engineer in Test):

  1. How would you deal with changes being made a week or so before the ship date?
  2. How would you deal with a bug that no one wants to fix? Both the SDE and his lead have said they won’t fix it.
  3. Write a function that counts the number of primes in the range [1-N]. Write the test cases for this function.
  4. Given a MAKEFILE (yeah a makefile), design the data structure that a parser would create and then write code that iterates over that data structure executing commands if needed.
  5. Write a function that inserts an integer into a linked list in ascending order. Write the test cases for this function.
  6. Test the save dialog in Notepad. (This was the question I enjoyed the most).
  7. Write the InStr function. Write the test cases for this function.
  8. Write a function that will return the number of days in a month (no using System.DateTime).
  9. You have 3 jars. Each jar has a label on it: white, black, or white&black. You have 3 sets of marbles: white, black, and white&black. One set is stored in one jar. The labels on the jars are guaranteed to be incorrect (i.e. white will not contain white). Which jar would you choose from to give you the best chances of identifying the which set of marbles in is in which jar.
  10. Why do you want to work for Microsoft.
  11. Write the test cases for a vending machine.

    “Those were the questions I was asked. I had a lot of discussions about how to handle situations. Such as a tester is focused on one part of an SDK. During triage it was determined that that portion of the SDK was not on the critical path, and the tester was needed elsewhere. But the tester continued to test that portion because it is his baby. How would you get him to stop testing that portion and work on what needs to be worked on?

    “Other situations came up like arranging tests into the different testing buckets (functional, stress, perf, etc.).”
July 6, 2004 interview

What do job interviews really tell us?

For the New Yorker, Malcolm Gladwell discusses various indicators of how well interviews actually work for screening job candidates (in a phrase: not very well). The discussion of how we make our decision about someone in the first 2 seconds after seeing them and then use our future interactions with them to either reinforce our initial reaction or forgive as an aberration is particularly telling.

July 6, 2004 interview

“Interviews are practically worthless for screening candidates.”

Bram Cohen, the inventor of BitTorrent, discusses his thoughts on interviewing, include:

  • In an interview you can tell if a person is a pleasant conversationalist, and you can give some technical questions to rule out the truly inept, but beyond that you might as well be rolling dice.”
  • I’d like to note that in an all-male work environment hiring an attractive female is probably good for morale.”
  • Even though work history doesn’t correlate with job performance, being a lying sack of shit almost certainly does.”

Fun. : )

March 19, 2004 interview

HR Bloggers

I’ve heard for years that MS HR uses my site as part of their internal HR training, although I’ve never heard it from the HR folks themselves. Until now.

On Wednesday, Heather Hamilton, an MS recruiter, said that my site is legendary, especially here in staffing.”

On Monday, Zoe Goldring, also an MS recruiter, said Net/Net Chriss site is great. Plus I respect the fact that he doesnt give the answers to the questions!”

And, to top it off, they’re even bloggers, and they provide a whole host of interesting info for folks interested in interviewing at Microsoft. Certainly, I’d trust anything you read on their blogs far more than the stuff on this one, most of which was obtained far before I ever worked at MS.

February 6, 2004 interview

Interviewing for MS Interns

Shawn Morrissey (my boss) posted some questions he asked at UPenn’s Wharton School of Business:

  • Explain a database to a young child.
  • Explain the Internet to your grandparents
  • What is your favorite web site? Why? Now improve it.
  • Steve Jobs calls and asks you to improve the iPod. Go. (No bonus points for saying, Add WMA support!)
  • Youre in a boat with a rock, on a fresh-water lake. You throw the rock into the lake. With respect to the land, what happens to the level of the water in the lake goes up, goes down, stays the same?

He posted a couple of answers, but you’ll have to read his post for them.

January 10, 2004 interview

Interviewing at Lego

Sat 1/10/2004 10:12 am

Jamie, a contender for a Master Builder spot at Lego, describes a very different interview process than you’re likely to get at Microsoft (except that ’softies hit you with sneaky stuff, too, sometimes : ).

August 13, 2003 interview

Robert Scoble on Interviewing at Microsoft

Robert Scoble (the Scobleizer) sent along his answer to a common question: What is it like to interview at Microsoft?

About dress code while interviewing at Microsoft. Yeah, I wore a suit and tie. Not mandatory (no one wears them up here) but I feel it still shows respect for the company hiring you, and for the interviewing process. And, it makes it so I never wonder if I under dress. Microsoft employees might joke with you about being overdressed, though. That’s cool. I’d rather that then have someone write me off cause I didn’t dress well enough. But then, I was also up for a job that required me to be in front of people, so I’d expect to wear a suit and tie on the job occasionally.

The process for me was:

  1. An exec asked me would you ever consider working here?”
  2. A one-hour phone interview with HR. They asked me questions to make sure my experience matched my resume, and also to make sure I wasn’t gonna embarrass them in the longer interviews.
  3. I passed the HR interview, so they flew me up to Redmond.
  4. My interviews started at 8:30 a.m. First interview was with someone else from HR. She explained the process, and asked a few more questions to ensure I was gonna be worth sending onto the first group.
  5. She gave me a list of three candidates, which would take me through lunch. She was pretty clear that if the three liked me, I’d get another list of after lunch” candidates.
Each interviewer would meet me at the lobby (Microsoft has a recruiter shuttle that’ll fly you around). I’d usually try to get a question in, like what role do you play here?” Just to get things going.

The kinds of questions you’ll get will vary, but I got a lot of questions about past experience, and some more fun ones how would you get Google to convert from Linux to Windows?” Other people have gotten questions like how would you sell ice to eskimos?” or how would you sell a pen to someone?”

If you’re up for a programmer job, they’ll ask you logic questions, and ask you to demonstrate that you can think in code on the whiteboard.

One guy asked me to explain the architecture of Radio UserLand on the whiteboard.

There’s an excellent book written on the Microsoft interviewing process called “Moving Mount Fuji.“

I also read Chris Sells’ Interviewing at Microsoft” site: http://www.sellsbrothers.com/fun/msiview/

Some more advice: I came an hour early and took an early-moring walk around the campus. That helped me calm my mind down, and get into what it’s like being there. Also, it let me think about why do I want to work at Microsoft?” which was one of my first interview questions.

I brought my own water bottle. That saved awkward moments where interviewers would want to take you to the company refrigerators. It also makes it look like you aren’t there to take advantage of Microsoft’s largess. Try not to drink too much during the day. The temptation is to drink a Diet Coke on every interview. You can get a bit jittery by the end of the day.

I also treated everyone I met as an interview candidate. I have no idea if the recruiting shuttle drivers report back on their feedback or not, but why take the chance? Plus, the stories you hear are often good ones to tell later on.

They did interview me over lunch, by the way, and also took me to a Sonics’ game . I’m sure that was to get a feel for how I’d be in social situations. Behave, and geek out! (we only watched about five minutes of the Sonics’ game cause we were so busy talking tech).

I later found out that they usually have three to seven candidates fly up for each job and that flying up isn’t any guarantee of a job. A few friends have gotten flown up and didn’t pass muster.

My wife has interviewed here too and didn’t get hired. I think it’s solely on passion. Most of the people who work here are hard-core geeks and they like hiring other geeks. Anything you can say to demonstrate that you’re a geek and that you love playing with technology is probably a good thing.

Later I found out that the flyup interview is mostly to see if the candidate can fit into both the job, and work with the team. They figure you’re mostly qualified because you got that far. They’re just trying to make sure you’ll fit in at that point.

Don Box also gave me some advice: we want you to think, so think.” The way another friend of mine put it, is look like you think about every answer. Take a few seconds to think about it.”

My answer to the Google question? Acquire them.” Hey, it worked for Hotmail. (Seriously, then I followed that smartass answer up with a more serious one ) . Luckily I had spent a few hours with some of the kids who started Hotmail, so I knew what the pain points were in getting them to move their system from FreeBSD to Windows.

When did I know I had the job? At about 6 p.m., the guy who invited me up, told me I had gotten a job. Turned out I wasn’t appropriate for the job I was interviewing for (which he knew) and then he made a new job. It took a couple of weeks to get all the T-s crossed from that point. Other people don’t learn whether or not the got the job for a week or two afterward. It’s OK to ask at the end.

If you get walked to the door at lunch, though, you know you blew it somewhere. (Not many get walked to the door, from what the recruiting shuttle drivers tell me).

One last piece of advice: keep your energy up all day long. It’s tough. Hard to think straight at 4 p.m. after answering questions all day long. But, a lot of the decisions are made on does this guy get excited by technology?”

Good luck in your interviews!

–Robert

July 28, 2003 interview

Microsoft Plays Hiring Hardball

Here. Like baseball’s New York Yankees, Microsoft Corp. has been paying top dollar for top talent in an effort to dominate the new playing fields of XML and Web services.” While I agree that finally coming to work for Microsoft is like a baseball fan getting to play for the Yankees, I’m not sure where Darryl got his top dollar” information. Maybe I should talk to the other guys about their deals… : )
May 29, 2003 interview

How Would You Move Mount Fuji?

Thu, May 29, 2003

If you’re interested in a book about the high-tech interview process, including lots of info about MS specifically (and some material from yours truly), check out How Would You Move Mount Fuji? by William Poundstone.

April 22, 2003 interview

My Dad’s All Set to Work At Microsoft

Tue, Apr 22, 2003

My Dad, a long-time draftsman in a civil engineering firm in Fargo, ND, had this to say about manhole covers:

It’s like this. Sanitary manhole covers are usually round (and solid, i.e. VERY heavy) but Storm sewer manhole and Inlet covers are usually square or rectangular grates which let water in. The deciding factor is where they are placed relative to the curb line. All covers are actually installed on a concrete generic Mexican Hat’ structure which can be centered or offset to one side. The structure fits on the round concrete casting (5′ - 8″ diameter) and can be made to accept any solid or grated casting. If this part of the world, where river flooding is fairly common, Sanitary manholes and lift stations are either raised above potential flood limits if possible or sealed and bolted shut, making them much more difficult to open. It’s also a very good idea to vent Sanitary manholes and lift station with a portable fan to avoid being overcome by methane and other gasses trapped in them.”

Anyone wonder where I got it? : )

April 21, 2003 interview

The Human Side of Microsoft

For more than a year, I’ve had a request to video tape an interview at Microsoft up on this page. The goal was to show the human side of Microsoft by showing that one of their most famous practices isn’t something to be scared of. I never expected that I’d actually get to tape an interview. In fact, I expected to be ignored by Microsoft altogether.

Of course, as the most juicy litigation target in the world, and especially sensitive to legal issues, Microsoft couldn’t grant my request. That didn’t surprise me. What did surprise me is how hard that they tried. In fact, all kinds of folks at Microsoft — from engineers who wanted to interview me to managers who wanted to help make it happen to HR folks who went to legal to ask — all kinds of folks at Microsoft really did *try* to make it happen.

So, while I’ll never be able to put a recording of an interview up on this site, I can tell you that my mission to find the human side of Microsoft was a success. All of the people I’ve encountered there — whether trying to let me tape an interview or taking my feedback on whatever technology I’m working that day — all of the folks that I’ve encountered at Microsoft really *care* about doing the right thing. They want interviewees to succeed. They want to build the right products. They want to meet their customers’ needs. And as much guff as I give them (they are a juicy target), by and large they succeed. I wouldn’t spend my time with their technologies if they didn’t.

With that in mind, I withdraw my request. I’m seen the human side of Microsoft. Thanks for showing it to me.

April 20, 2003 interview

If Richard Feynman applied for a job at Microsoft

Interviewer: Now comes the part of the interview where we ask a question to test your creative thinking ability. Don’t think too hard about it, just apply everyday common sense, and describe your reasoning process.

Here’s the question: Why are manhole covers round?

Feynman: They’re not. Some manhole covers are square. It’s true that there are SOME round ones, but I’ve seen square ones, and rectangular ones.

Interviewer: But just considering the round ones, why are they round?

Feynman: If we are just considering the round ones, then they are round by definition. That statement is a tautology.

Interviewer: I mean, why are there round ones at all? Is there some particular value to having round ones?

Feynman: Yes. Round covers are used when the hole they are covering up is also round. It’s simplest to cover a round hole with a round cover.

Interviewer: Can you think of a property of round covers that gives them an advantage over square ones?

Feynman: We have to look at what is under the cover to answer that question. The hole below the cover is round because a cylinder is the strongest shape against the compression of the earth around it. Also, the term manhole” implies a passage big enough for a man, and a human being climbing down a ladder is roughly circular in cross-section. So a cylindrical pipe is the natural shape for manholes. The covers are simply the shape needed to cover up a cylinder.

Interviewer: Do you believe there is a safety issue? I mean, couldn’t square covers fall into the hole and hurt someone?

Feynman: Not likely. Square covers are sometimes used on prefabricated vaults where the access passage is also square. The cover is larger than the passage, and sits on a ledge that supports it along the entire perimeter. The covers are usually made of solid metal and are very heavy. Let’s assume a two-foot square opening and a ledge width of 1-1/2 inches. In order to get it to fall in, you would have to lift one side of the cover, then rotate it 30 degrees so that the cover would clear the ledge, and then tilt the cover up nearly 45 degrees from horizontal before the center of gravity would shift enough for it to fall in. Yes, it’s possible, but very unlikely. The people authorized to open manhole covers could easily be trained to do it safely. Applying common engineering sense, the shape of a manhole cover is entirely determined by the shape of the opening it is intended to cover.

Interviewer (troubled): Excuse me a moment; I have to discuss something with my management team. (Leaves room.)

(Interviewer returns after 10 minutes)

Interviewer: We are going to recommend you for immediate hiring into the marketing department.

Keith Michaels
krm@sdc.cs.boeing.com

April 20, 2003 interview

Interview Synopsis

From Fred (not his real name):

So the interview was rough, as to be expected. Here is a synopsis:

10:15-10:45 - Met with my recruiter. Discussed what day would be like and talked about the two teams I would be interviewing with: the CLR team and the Enterprise Services team.

11:00-12:00 - Enterprise Services Interview: Discussed High Performance systems and Enterprise Service standards. Programming problem: Design and Implement a self-managing Thread Pool class.

12:00-1:30 - CLR team Lunch interview: Discussed Security in the CLR and PKI. Programming problem: two fixed length buffers padded with nulls. Swap and reverse them, not swapping and reversing nulls.

2:00-3:00 - Enterprise Services interview: Discussed VS.NET. Design a function to select the six strongest stations for a car stereo.

3:30-4:30 - CLR team interview: Implement strpbak. Common Parent for two nodes BTree problem.

April 19, 2003 interview

My Interview At Microsoft

I had an interesting two days interviewing at Microsoft. Bottom line: I didn’t say whether I accepted their offer.
April 18, 2003 interview

My Interview

Fri, Apr 18, 2003

After never thinking that I would, I had two days of interviews at Microsoft in the middle of March, 2003. The first day was with the MSDN content group. They’re the folks responsible for all of the technical articles at http://msdn.microsoft.com and the ones at Microsoft with the job most closely related to what I already do. It’s their job to tell developers how Microsoft technologies really work through articles, talks, samples, online chats and whatever other means they think will be effective.

My first interview of day #1 sticks freshly in my mind even two weeks later. It was a guy that I’d most closely describe as a human molecule. I’ve been told that he’s big into coffee and it’s not hard to see the effects the guy never stops moving! Likewise, his brain was constantly moving. He had all kinds of interesting questions about how I would turn my product ideas (created on the spot) into compelling educational materials of Microsoft technologies. Very fun.

I had several other fun interviews that day, all with smart people asking really great questions. However, after a few interviews, I was disappointed that nobody was asking me to write any code on the board. Apparently I had enough street cred that this wasn’t necessary for me, but one interviewer laughed and said I could write whatever code I wanted on his board if it would make me happy. Another had a strongly negative reaction to the idea that anyone would be asked to write code on a whiteboard, which he considered a supremely unnatural act. In fact, all day long, I had questions that dove into my motivations and my ideas, but none of them tested my technical knowledge at all until the very last interview w/ my potential boss’s boss (or my boss’s boss’s boss I lost track). She asked me to solve one thought question, one visual riddle and to write some code on the board. The thought question we talked through, but she threw out leading questions faster than I could come up with my own conclusions (although it was a very interesting discussion). The visual riddle seemed impossible at first, but I solved it in a few minutes. When I showed it to Don Box, he also declared it impossible, then solved it faster than I did (bastard). The coding question showed me just how unnatural it is to write code on a write board (even my simple linked list code had three bugs in it doh!). I am *totally* addicted to incremental code-compile-test and at one point even suggested using a goto to avoid erasing half of my code to insert a loop (truly the low point of the day).

Even so, at the end of day #1, I was energized. I’m one of those sick people that loves to be tested, especially if I’m confident that I know the answers. My last interviewer told me that I had done well and we talked about what would happen if I was offered both jobs from the two teams that I was interviewing with. She needn’t have worried day #2 did not go nearly as well.

The day #1 position was a highly technical position, which I’ve trained for since I was 12. The day #2 position was a marketing position. But is was *so* cool. The job is to take whatever technology MS comes up with that day and make a business out of it. It was so diverse and so different than things I’d done before that I was drawn to it like a moth to a flame. Unfortunately, my answers made it clear that I didn’t have anywhere near the background needed for the job. I felt like a new college graduate, trying desperately to match something from my background to what they were asking.

As a measure of the kinds of questions I got on day #2, at one point, I was asked to develop a marketing plan for packaged ice to native Alaskans. Did you just ask me to sell ice cubes to Eskimos?” I asked. Uh, yeah,” he agreed. This was during lunch. And it wasn’t the hardest question I got! By my last interview, I was so scared that they might actually offer me the job and that my brain would explode trying to do it that I confessed that I was definitely not the man for the job. However, that didn’t stop my potential boss from drilling me on how to make a business on one of my sons’ hobbies (about which I know almost nothing).

Of course, I never clicked with anyone on the team from day #2 (you can’t click with someone that thinks you’re ignorant). However, the experience was amazing. One of the interviewers had a fabulous technique that I just had to appreciate — he had me role-playing in various real-world Microsoft-related situations over and over again til I swear my ears were bleeding. I’m a big fan of behavioral interviewing instead of role-playing as an indicator of someone’s real skills, but watching him put me through the ringer was a thing of beauty.

Speaking now from experience, I’d have to say that the Microsoft interview process is all about finding the right fit. That’s the case with all interviews, of course, but Microsoft seems to be very good at it. The fit includes both technical savvy (which they seemed to assume in me) and personality relative to the team. I fit very well into one group and not at all well into another. Working with the day #1 group would make me a successful part of the Microsoft machine, whereas if I had mistakenly gotten the job associated with day #2, I would have been set up to fail. So, if you are turned away from Microsoft, it means that you wouldn’t do well there. That’s a good thing to know; you certainly don’t want to take a job at which can’t possibly be successful. I know I don’t.

February 24, 2003 interview

How to Interview a Programmer

Here. In attending a summit on code quality recently, we each shared the techniques we use in screening/hiring a programmer. This story provides a summary.
April 4, 2002 interview

Feeding the Engine

Adam Barr, 4/4/2002

On October 26, 1999, it was announced that Microsoft would be one of the four new components in the 30 stocks that make up the Dow Jones Industrial Average. This as a long-overdue recognition of the role of technology in the U.S. economy, and in particular of Microsoft’s central place in the industry.

But Microsoft was different from the other three newcomers. It has no computer chip manufacturing plants like Intel, no chain of retail stores like Home Depot, no network phone lines like SBC Communications. Indeed, it’s not industrial” at all. Its product is software; its assembly line the brainpower of its employees. And while companies across America would naturally say their employees are vital to their success, for Microsoft in a large sense the employees are the company.

And that makes Microsoft very particular about who it hires.

[read the rest online]

February 19, 2002 interview

Tough Interview

Chris Sells, 2/19/2002

I woke up this morning with a splitting headache. Just before I woke, I was dreaming that I was interviewing at Microsoft. They held nothing back. It was a group affair with several role-playing scenarios to see how I would handle them. At the end, they threw a mock wedding and sat Tate Donovan (Joshua from the Friends TV show) right next to me while he pretended to be a loud, drunk uncle. I ended up dragging him outside into the street and when he pulled a knife (he was also a Vietnam vet, apparently). I was able to get in one good shot before he killed” me. Later I attempted to save face by explaining to Tate that I would’ve done better, but I was afraid to hurt him. Tate looked at me as if to say, At Microsoft, we don’t hold back.” Tough interview.

February 18, 2002 interview

Smart is Not Enough

2/18/2002

Here’s a recent Fortune magazine article about the MS interview process and the culture. Scary…

February 18, 2002 interview

More Reaction from Microsoft

2/18/2002

I’ve heard from several of my friends at Microsoft (and yes, I do have some…), that Microsoft is not such a terrible place to work, but nobody puts it better than Mike Byron:

Huh. Ran into your Web page about Microsoft. I gotta comment on one thing I saw there:

Over the years I’ve been collecting interview questions from Microsoft. I guess I started this hobby with the intent of working there some day, but now that I have a wife and two kids, that’s pretty much out of the question.’

Baloney. I’ve been working at Microsoft for almost 5 years. I have a wife and twin 7-year-olds. I have an active church life. I work around 40-45 hours per week, and have for the whole time. I have a GREAT time at Microsoft. I’m a veteran of Silicon Valley. Been creating mostly systems software since 1977. Microsoft is no different from most Silicon Valley companies –better hours than most startups, more driven than HP. I do work an occasional 50-55 hour week close to ship time.

Now, there are people that work here with completely different stories. But I am in no wise unique. I have lots of friends in basically the same position — 40 hour weeks.”

Thanks for the quote, Mike. I’ll try not to get you into trouble…”

February 18, 2002 interview

Reaction from Microsoft

2/18/2002

 Here’s a quote from an anonymous source:

I was given your page address from a friend who happens to work at Microsoft and does interviews. He has told me that Microsoft has told all its interviewing employees to keep an eye on your page for ideas and thoughts.”

Figures. I set out to help the interviewees and I end up helping the interviewers. Is there nothing that Microsoft can’t leverage for their own benefit?

February 17, 2002 interview

Contacting Microsoft

2/17/2002

If you’d like to beg Bill directly for a job, his email is billg@microsoft.com. If you’d actually like an answer some day, send your questions to askbill@microsoft.com.

February 16, 2002 interview

Microsoft Interview Questions

2/16/2002 The following are actual questions from actual interviews conducted by Microsoft employees on the main campus. Microsoft Consultants are sometimes allowed to have a life, so questions asked of them during interviews don’t really count and aren’t listed.

The questions tend to follow some basic themes:

Riddles

  • Why is a manhole cover round?
  • How many cars are there in the USA? (A popular variant is How many gas stations are there in the USA?“)
  • How many manhole covers are there in the USA?
  • You’ve got someone working for you for seven days and a gold bar to pay them. The gold bar is segmented into seven connected pieces. You must give them a piece of gold at the end of every day. If you are only allowed to make two breaks in the gold bar, how do you pay your worker?
  • One train leaves Los Angeles at 15mph heading for New York. Another train leaves from New York at 20mph heading for Los Angeles on the same track. If a bird, flying at 25mph, leaves from Los Angeles at the same time as the train and flies back and forth between the two trains until they collide, how far will the bird have traveled?
  • Imagine a disk spinning like a record player turn table. Half of the disk is black and the other is white. Assume you have an unlimited number of color sensors. How many sensors would you have to place around the disk to determine the direction the disk is spinning? Where would they be placed?
  • Imagine an analog clock set to 12 o’clock. Note that the hour and minute hands overlap. How many times each day do both the hour and minute hands overlap? How would you determine the exact times of the day that this occurs?
  • You have two jars, 50 red marbles and 50 blue marbles. A jar will be picked at random, and then a marble will be picked from the jar. Placing all of the marbles in the jars, how can you maximize the chances of a red marble being picked? What are the exact odds of getting a red marble using your scheme?
  • Pairs of primes separated by a single number are called prime pairs. Examples are 17 and 19. Prove that the number between a prime pair is always divisible by 6 (assuming both numbers in the pair are greater than 6). Now prove that there are no prime triples.’
  • There is a room with a door (closed) and three light bulbs. Outside the room there are three switches, connected to the bulbs. You may manipulate the switches as you wish, but once you open the door you can’t change them. Identify each switch with its bulb.
  • Suppose you had 8 billiard balls, and one of them was slightly heavier, but the only way to tell was by putting it on a scale against another. What’s the fewest number of times you’d have to use the scale to find the heavier ball?
  • Imagine you are standing in front of a mirror, facing it. Raise your left hand. Raise your right hand. Look at your reflection. When you raise your left hand your reflection raises what appears to be his right hand. But when you tilt your head up, your reflection does too, and does not appear to tilt his/her head down. Why is it that the mirror appears to reverse left and right, but not up and down?
  • You have 4 jars of pills. Each pill is a certain weight, except for contaminated pills contained in one jar, where each pill is weight + 1. How could you tell which jar had the contaminated pills in just one measurement?
  • The SF Chronicle has a word game where all the letters are scrambled up and you have to figure out what the word is. Imagine that a scrambled word is 5 characters long:
    1. How many possible solutions are there?
    2. What if we know which 5 letters are being used?
    3. Develop an algorithm to solve the word.
  • There are 4 women who want to cross a bridge. They all begin on the same side. You have 17 minutes to get all of them across to the other side. It is night. There is one flashlight. A maximum of two people can cross at one time. Any party who crosses, either 1 or 2 people, must have the flashlight with them. The flashlight must be walked back and forth, it cannot be thrown, etc. Each woman walks at a different speed. A pair must walk together at the rate of the slower woman’s pace.

    Woman 1: 1 minute to cross
    Woman 2: 2 minutes to cross
    Woman 3: 5 minutes to cross
    Woman 4: 10 minutes to cross

    For example if Woman 1 and Woman 4 walk across first, 10 minutes have elapsed when they get to the other side of the bridge. If Woman 4 then returns with the flashlight, a total of 20 minutes have passed and you have failed the mission. What is the order required to get all women across in 17 minutes? Now, what’s the other way?

  • If you had an infinite supply of water and a 5 quart and 3 quart pail, how would you measure exactly 4 quarts?
  • You have a bucket of jelly beans. Some are red, some are blue, and some green. With your eyes closed, pick out 2 of a like color. How many do you have to grab to be sure you have 2 of the same?
  • If you have two buckets, one with red paint and the other with blue paint, and you take one cup from the blue bucket and poor it into the red bucket. Then you take one cup from the red bucket and poor it into the blue bucket. Which bucket has the highest ratio between red and blue? Prove it mathematically.

Algorithms

  • What’s the difference between a linked list and an array?
  • Implement a linked list. Why did you pick the method you did?
  • Implement an algorithm to sort a linked list. Why did you pick the method you did? Now do it in O(n) time.
  • Describe advantages and disadvantages of the various stock sorting algorithms.
  • Implement an algorithm to reverse a linked list. Now do it without recursion.
  • Implement an algorithm to insert a node into a circular linked list without traversing it.
  • Implement an algorithm to sort an array. Why did you pick the method you did?
  • Implement an algorithm to do wild card string matching.
  • Implement strstr() (or some other string library function).
  • Reverse a string. Optimize for speed. Optimize for space.
  • Reverse the words in a sentence, i.e. My name is Chris” becomes Chris is name My.” Optimize for speed. Optimize for space.
  • Find a substring. Optimize for speed. Optimize for space.
  • Compare two strings using O(n) time with constant space.
  • Suppose you have an array of 1001 integers. The integers are in random order, but you know each of the integers is between 1 and 1000 (inclusive). In addition, each number appears only once in the array, except for one number, which occurs twice. Assume that you can access each element of the array only once. Describe an algorithm to find the repeated number. If you used auxiliary storage in your algorithm, can you find an algorithm that does not require it?
  • Count the number of set bits in a number. Now optimize for speed. Now optimize for size.
  • Multiple by 8 without using multiplication or addition. Now do the same with 7.
  • Add numbers in base n (not any of the popular ones like 10, 16, 8 or 2  — I hear that Charles Simonyi, the inventor of Hungarian Notation, favors -2 when asking this question).
  • Write routines to read and write a bounded buffer.
  • Write routines to manage a heap using an existing array.
  • Implement an algorithm to take an array and return one with only unique elements in it.
  • Implement an algorithm that takes two strings as input, and returns the intersection of the two, with each letter represented at most once. Now speed it up. Now test it.
  • Implement an algorithm to print out all files below a given root node.
  • Given that you are receiving samples from an instrument at a constant rate, and you have constant storage space, how would you design a storage algorithm that would allow me to get a representative readout of data, no matter when I looked at it? In other words, representative of the behavior of the system to date.
  • How would you find a cycle in a linked list?
  • Give me an algorithm to shuffle a deck of cards, given that the cards are stored in an array of ints.
  • The following asm block performs a common math function, what is it?
    cwd xor ax, dx
    sub ax, dx
  • Imagine this scenario:
    I/O completion ports are communictaions ports which take handles to files, sockets, or any other I/O. When a Read or Write is submitted to them, they cache the data (if necessary), and attempt to take the request to completion. Upon error or completion, they call a user-supplied function to let the users application know that that particular request has completed. They work asynchronously, and can process an unlimited number of simultaneous requests.
    Design the implementation and thread models for I/O completion ports. Remember to take into account multi-processor machines.
  • Write a function that takes in a string parameter and checks to see whether or not it is an integer, and if it is then return the integer value.
  • Write a function to print all of the permutations of a string.
  • Implement malloc.
  • Write a function to print the Fibonacci numbers.
  • Write a function to copy two strings, A and B. The last few bytes of string A overlap the first few bytes of string B.
  • How would you write qsort?
  • How would you print out the data in a binary tree, level by level, starting at the top?

Applications

  • How can computer technology be integrated in an elevator system for a hundred story office building? How do you optimize for availability? How would variation of traffic over a typical work week or floor or time of day affect this?
  • How would you implement copy-protection on a control which can be embedded in a document and duplicated readily via the Internet?
  • Define a user interface for indenting selected text in a Word document. Consider selections ranging from a single sentence up through selections of several pages. Consider selections not currently visible or only partially visible. What are the states of the new UI controls? How will the user know what the controls are for and when to use them?
  • How would you redesign an ATM?
  • Suppose we wanted to run a microwave oven from the computer. What kind of software would you write to do this?
  • What is the difference between an Ethernet Address and an IP address?
  • How would you design a coffee-machine for an automobile.
  • If you could add any feature to Microsoft Word, what would it be?
  • How would you go about building a keyboard for 1-handed users?
  • How would you build an alarm clock for deaf people?

Thinkers

  • How are M&Ms made?
  • If you had a clock with lots of moving mechanical parts, you took it apart piece by piece without keeping track of the method of how it was disassembled, then you put it back together and discovered that 3 important parts were not included; how would you go about reassembling the clock?
  • If you had to learn a new computer language, how would you go about doing it?
  • You have been assigned to design Bill Gates bathroom. Naturally, cost is not a consideration. You may not speak to Bill.
  • What was the hardest question asked of you so far today?
  • If MS told you we were willing to invest $5 million in a start up of your choice, what business would you start? Why?
  • If you could gather all of the computer manufacturers in the world together into one room and then tell them one thing that they would be compelled to do, what would it be?
  • Explain a scenario for testing a salt shaker.
  • If you are going to receive an award in 5 years, what is it for and who is the audience?
  • How would you explain how to use Microsoft Excel to your grandma?
  • Why is it that when you turn on the hot water in any hotel, for example, the hot water comes pouring out almost instantaneously?
  • Why do you want to work at Microsoft?
  • Suppose you go home, enter your house/apartment, hit the light switch, and nothing happens - no light floods the room. What exactly, in order, are the steps you would take in determining what the problem was?
  • Interviewer hands you a black pen and says nothing but This pen is red.”
February 15, 2002 interview

I Don’t Provide The Answers

I’ve have several people ask for the right answers the these questions but I just can’t bring myself to publish them. It seems just too much like cheating to me. Instead, consider this page a study guide. However, if you’d like to know how M&M’s are made, that I can help you with. : )