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?
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
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… : )
A friend of mine sent along some questions he was asked for a SDE/T position
at Microsoft (Software Design Engineer in Test):
“How would you deal with changes being made a week or so before the
ship date?
“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.
“Write a function that counts the number of primes in the range
[1-N]. Write the test cases for this function.
“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.
“Write a function that inserts an integer into a linked list in
ascending order. Write the test cases for this function.
“Test the save dialog in Notepad. (This was the question I enjoyed
the most).
“Write the InStr function. Write the test cases for this function.
“Write a function that will return the number of days in a month (no
using System.DateTime).
“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.
“Why do you want to work for Microsoft.
“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.).”
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.
“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.”