Hi everyone! Evan Goldring here (the one who got talked into making my whiteboard coding public!).
Having read through many of the posts in reply to the video, I want to say that I see a lot of great thinking around this particular coding question. Many of you are thinking clearly through the whole problem, which is very important. It really underscores
the "think first, then code" mentality I talked about in the video.
What I'm even more impressed with is seeing some of you going above and beyond and starting to think about the next logical question that an interviewer might ask: How would you test this code. Thoughts on security, performance, and other issues raised are
great to see. It's not all about the code functioning correctly. As I mentioned in the video, I'm an
SDE/T manager, so the follow-up test question is one I use often.
Although mentioned almost everywhere you are reading about technical interviewing, I feel it is worth repeating here: As an interviewer, I'm not necessarily looking just at what your answer was, but HOW you answered the question. Although contrary to popular
belief, questions like this aren't a "final exam" with a strict Pass/Fail grade based solely on the code you wrote judged against some mythical "right" answer. There are many "right" answers with even more unique paths to get there. These questions are a
good look beyond just "coding" into your engineering style, problem solving approach/skills, how you handle a new challenge, how you deal with being put on the spot - the list goes on.
Finally, remember that this is only one of many types of questions you'll see in a technical interview (at Microsoft or otherwise). For a good summary of what to expect in general, take a look at these two posts at the Technical Careers at Microsoft blog:
Part I and
Part II of Interviewing at Microsoft.