Hacker News new | past | comments | ask | show | jobs | submit login
My Interview Experience at Microsoft (philosophicalgeek.com)
39 points by parenthesis on Aug 12, 2008 | hide | past | favorite | 29 comments



Interesting read. I don't know the author, but it seems he practiced a lot yet fumbled some. Which can be normal, as writing code in a whiteboard is just not natural. To test raw coding skills, it would be a better idea to provide or have candidates come with a latop with their favorite dev enviroment/IDE/editors so they can code in a more realistic situation, the way they do every day.

It is always a good idea to get a good refresh of CS basics, and algorithms, and more advanced stuff as data graphs, but at the end of the day, (if the interviewers are good), your raw skills will show up. Just like math, skills are built in top of each-other and show with time, an you can advance more if you internalize low level abstractions (pointers, linked lists, hashtables, etc). You can't just pick a book and learn these things in few days.

But a 9.5 hrs interview is grueling and a tad exessive, also tells something about the company that you are joining. If they like interviews that long, means that have some huge bureocratic internal processes. Interviews by 3 technical people, and one manager/product manager should be more than enough to spot a good a candidate, within a 4hr time-frame.

Anymore than that, it is just a waste a time.


9.5 hours is actually just thorough. Hiring is the #1 thing any engineering org has to do right. Remember, a false positive will cost you far more in dollars, time, and effort than a false negative.

Microsoft is a huge company. The best thing it can do to improve its odds in the marketplace is to put enough process around hiring such that they can significantly reduce the false positive rate.

I'd argue more people should do full day interviews than less. You wouldn't marry someone after knowing them for only 4 hours, so why should a company hire someone after getting to know them for less than a day? ;-)


You wouldn't marry someone after 9.5 hours, either.

The problem is, if you insisted that every first date lasted ten hours, you'd rarely get a second. The ones who did make it though your screen would probably be neurotic and weird.


If every first date lasted TEN HOURS. Well, if you're cooking breakfast in the morning, maybe a second date might be expected. ;-)


i hope you are not really equaling marriage and a job. The average person stays about 2 years in a job, and they go thru about 10.5 jobs before age of 40.

Most people get married once or twice in their lifes, and expect their marriage to last forever. Nobody expects that from a job.

You might want to equal getting a job with dating and sleeping with a new girl, but not getting married ;)


Well, not quite. But who you get married to will determine a huge amount of how happy you are, possibly for the rest of your life if you're so lucky. =)

Similarly, for a startup (or engineering team), each hiring decision is so important that in aggregate it will pretty much determine how happy/productive you are... and possibly in the case of a startup, for the rest of your life as well.

The time scales may be different, but the impact is similar.


I'm not making the comparison. I'm making fun of it.


I am very skeptical about these interviews.

All I am ever interested in is a code sample. That will answer all coding questions. It can not even be compared to forcing a nervous candidate to code by writing on a white board. It also can not be compared to a quiz on topics in programming. Get a code sample, read it, ask a few questions about it, that is all.

As to if a person would "fit' on a team, it takes roughly 3 seconds to figure that out. So have each team member meet with the candidate for 1 minute, that's plenty of time.

Then do a background check, call references and that's all there is to.

Everything else is just smoke and mirrors BS. It selects for people good at interviewing, not good hackers.

And lastly you can always fire people, if they lied about their code sample or whatever. So lets stop acting as if hiring someone is irreversible. In America at least, firing people is still easy.

There's one thing to note about large companies. Large companies can't trust one good developer to evaluate a code sample. So that's bad, and they then fall back on a day long dog and pony show. And then they usually have huge, ugly, crufty code bases, that means that they can't even tell if someone is good or bad until AFTER they grok the code base. And groking the code base often takes a LONG time. So to pay someone for months only to then fire them and start again is expensive.

And the moral of the story is: Stay away from big companies.


If I was to work for a company, it would probably be one that had rigour in its employment practice. Those that hire carefully, fire carefully, and you can actually learn a lot about a company from the interview (as much as they can learn about you).

If that takes a 9 hours or a 9 days, then so be it. At least then I'd know I would be working with people I can respect and learn from and would enjoy being around.


Exactly. A long, thorough hiring process is insurance that your future coworkers hired after you will be high quality.


Sad but true that landing a job with a great company takes more than charisma alone.

Last 2 interviews I had I was turned down largely due to poor performance on coding challenges.

I feel it was the right choice for each company to make. They had really great teams and I admire them for holding out to hire an equally charismatic individual with truly excellent coding skills.

The hurt you feel getting turned down when you know you've put your best face forward is the blunt end of professionalism. A good indicator that you've got your sight set in the right direction.


There is original art everywhere. I liked the boat made from junk.

Sounds vaguely symbolic.


"something exhilarating about working for the underdog"

Someone drank the koolaid.


In the context of his team (Live Search), they really are the underdogs. Google owns about 59% of the market share in the US as of March '08. Live only owns about 11%.


Aren't most startups "the underdog" too? There is something exciting about the underdog, whether in sports, business, or life. Most of us probably became fans of Google way back when it was the underdog.


This was certainly useful as I'm scheduled to interview with them in a couple weeks. I know some people who have been interviewed there on both the accepted/rejected sides of the coin.

You can be technically savy and still not be a good fit for the team and vice versa. Communication is equally important if not the most important facet. If a team isn't on the right wavelength you'll have more problems than you can count.


I'd suggest continuous practice is the best way prepare for such interviews (and lifestyles). Write software. Build web apps. Make things. Expose yourself to different languages and diverse challenges. Do things outside software too.

Then write about it, be it a blog, wiki, or your own personal notes.

Adaptability, creativity, insight, and the ability to think quickly and accurately and express ideas clearly and concisely are often greatly enhanced by such activity.

Some people are successful in "cramming" knowledge before an interview (or exam), but the best ones I know are those who live it and absorb deeply the learning. They also hone their art, and if you want a truly great company, these are the people to employ.


Makes me think about the recent articles on decision making, which said that people who pondered less about their decisions in general were a lot happier with them. I wonder if the same thing applies for companies (the less they fuss about hiring, the happier they are with their hires)?

Certainly I can not see somebody stellar enduring a 10 hour interview to get a job. No offense to the author of the blog article - he might still be potentially stellar, but not knowing it yet...

Considering the dating analogy: suppose you were on a date with Scarlett Johansson. If it would took you 10 hours to figure out if you really like her, she could be forgiven for thinking that there is something wrong with you.


Now imagine the pain you would have to go through before acquisition.


I wonder if it would be good to just have an interviewee just sit with the team through a couple of debug sessions, or let them have a crack at a nagging problem in the codebase.


The whole process reminded me of the old days of chess competition.

I need to read those books if not simply out of curiosity.


One main reason that I would never ever interview for MS is that I will have to use Vista. I can live with XP, but god forbid not with Vista.

Is there any MS employee in this board, can they shed some light on what OS-es do people use to develop with. Maybe it is allowed, but is it frown up to use a non-MS OS?


Everyone I know there uses Vista (unless they're using something EVEN NEWER WAHAHA)

But really, Vista-hate? Does Vista really get in the way of you opening MS Visual Studio (which seems to be the IDE of the day there)?


Does Visual Studio Rot the Mind?

http://www.charlespetzold.com/etc/DoesVisualStudioRotTheMind...

The only reason I can imagine why Microsoft would put its programmers, device vendors, third-party developers, and ultimately its customers, through this much pain is because once this copy protection is entrenched, Microsoft will completely own the distribution channel. http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.html


It doesn't. But since drag'n'drop doesn't work with Vista and UAC the Visual Studio experience is really a lot worse.


I'm pretty sure a lot of the real engineers don't use visual studio. I've heard VIM is popular.


I'm pretty sure most of the engineers at Microsoft use Visual Studio.

And I'm pretty sure they run Windows too.


Having contracted for msft for a few years I can tell you what you should already expect - it varies.

There are the fanatics that insist on using vista and live search instead of google because anything else would be "helping our competitors".

There are the normal xp/vista + VS people, I would wager most people fall into this category.

Then there are the awesome crazy ones, the people who write the .net CLR and windows drivers and stuff seem to use VS, source insight or emacs.

There are also macs around, but very few. There are a lot of tablet PCs, I think msft itself is the worlds largest consumer of those things.


During my internship (summer 07) I was encouraged to use XP instead of Vista. Both my boss and mentor used it. Though this may be atypical, I don't think anyone cares what you run as long as you get your work done.

Don't know why you would want to use XP though, it seems pretty old and funky these days. And who really wants to check for spyware every day or two. I choose to use vista, but did a good deal of my coding in emacs, and kept ubuntu on my home machine.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: