Microsoft's Personnel Puzzle
theodp writes "CNET reports on Microsoft's reputation for arrogance in its personnel practices, citing the experience of Arthur Sorkin, who responded to an unsolicited invitation to interview with MS back in 2000. But instead of trying to sell him on the company or the job, interviewers challenged him with a technical 'pop quiz.' Sorkin, who holds a PhD in CS, withdrew his application. During the past year, Microsoft called Sorkin to say it had scheduled a phone interview with him for another job, although Sorkin hadn't applied for it and no one had asked if he was interested."
There is an entire book called "How Would You Move Mount Fuji?" about Microsoft style interviews. It even gives a list of their favorite questions, and is a must read for anyone who intends to interview there.
I've seen plenty of 60-year-old PhD's who hadn't produced anything for 30 years. Before hiring anyone, I think it's fair to ask them some interview questions.
Methinks his response is sour grapes because he no longer has the mind he once had when he did his phd studies and flunked their interview.
On the other hand, I agree with his comments about MSFT arrogancy --- back in the day when MSFT stock was doubling every few months I could see how they could be pretty selective about attracting top tallent. At the time they earned the right to be arrogant Now all MSFT has to offer is a lot of hard work in a stressful environment working on technology that no-one wants to work on (as inconcevable to linux developers as this may sound, did you realize they have to pay people to work on Windows!!!)
No, it's more the arrogance of their approach; almost assuming that if offered a job there, ANYBODY would just JUMP at the chance -- it implies a one-way kind of relationship. Also, the 'quizzes' they offer are much less like a CS proficiency exam than you might think. Getting the 'right' answers is a strong function of having read/heard that one before, or are open ended questions designed to see the thinker's thought process, willingness to attack a large problem, see the big picture without neglecting the details, etc. So no, he doesn't think he should be hired without showing his ability, it's that the questions they ask don't actually show those abilities, and the whole thing wasn't even his idea :)
A computer without Microsoft is like ice cream without ketchup.
The son of a colleague interviewed with both Google and MS and got job offers from both companies. He took the MS job because he felt the Google folks were more arrogant than the MS folks. The Google folks were quite shocked that he turned them down.
It's only one anecdotal data point, but it does suggest a simple fact of life. Success breeds arrogance whether a company is "evil empire" or seeks to "do no evil."
Two wrongs don't make a right, but three lefts do.
The issue has come to the fore in part because of comments made this month by internal Microsoft recruiter Gretchen Ledgard, who blasted some of her company's managers as "entitled, spoiled whiners" who assume that everyone wants to work for Microsoft.
Unfortunately typical of a company that is and/or thinks like a monopoly. There isn't very good business practice in just being arrogant (in the midst of well-known bugs in your own software especially!) and I don't think I know anyone who would want to work for a company that behaved in such a way -- not a professional image I'd want to be associated with!
Among the charges leveled at Gates, Ballmer and crew: Job candidates have been turned off by Microsoft arrogance...But he is one of many observers within and outside of Redmond who's raising questions about the way the company recruits and retains its work force
Reading the article reminded me of what I've heard about Google employees. I can't see Google leaving much room to be arrogant when they allow their employees to spend part of their work time on their own personal projects. I certainly don't hear this about Google and I think they are very good reasons why.
Of course, Microsoft, which is seeking to defend its turf in operating systems while expanding into newer areas such as desktop search, isn't alone in facing a tougher climate when it comes to competing for employees.
When you've got Desktop Search really being pioneered by Google in addition to their excellent search engine I'm sure if I was choosing a company to develop for I'd be choosing the one that was doing well from the get-go regardless of who was around longer. I'd rather go on with company that does real innovation and I'm sure that's why all these other individuals aren't signing on board.
He didn't ask for the interview with them; they asked him to come to an interview. If somebody asks me to come for an interview, I'd damn well be pissed to have to explain to them why they asked me to come in.
Infuriate left and right
Was it unsolicited? The article seems contradictory:
Sorkin, who holds a PhD in CS, withdrew his application.
The phrase "his application" seems to imply that he applied for the job, the first job mentioned in the article. Unless you can somehow "apply" for a job you were invited into, maybe I'm missing something...
Tech, life, family, faith: Give me a visit
I don't know who to defend. M$ or the PHD grad? I have seen some of the smartest people from universities go work for M$ and absolutely just sit at the bottom of the pile.
They have no real projects, assignments nor are they developing any real skills for their next resume. Whose fault is it that the PHD grad gets mad?? You be the judge.
I had the SAME "interview", to be on their debug team for 'Windows Error Reporting' resolutions & analysis...
.NET too...
:)
First, on the phone, MS folks' asked me alot of questions on the phone about string processing & string lists (limitations, how to use them, etc.) which got me past step #1...
Because, mainly iirc, that was round #1...
Then, via email, they sent me an ACTUAL test to take, which had only 3 questions on it, the first 2 I got right I am fairly sure:
1.) How to swap two variables (numeric) w/out using the (what I call it) "Father, Son, & Holy Ghost" technique of 3 variable placeholders...
They would not allow you that!
(This was the easiest, & involved math, & easiest)
Generally, engine/algorithm I used was/is:
A=1
B=2
(Goal being A=2, & B=1, w/out using C as temp var)
B=A+B (3)
A=B-A (3-1 = 2, first swap complete)
B=B-A (3-2=1, second swap complete)
2.) The second, was how to find the midpoint of an array, without knowing its total number of elements!
(This is simple enough, with 2 pointers, one always being DOUBLE the size of the other, both starting @ 1 of course... Eventually, & when the 2nd can no longer advance? The first is @ the midpoint of the array, & without knowing how many elements in the array!)
* And, since they said there were apparently OTHER possibles? They wanted the MOST EFFICIENT & BEST ANSWERS from any candidates!
So, I thought I'd "impress them" by writing the questions answers out in 3 diff. languages (C, VB, & Delphi Object Pascal), but... no dice apparently!
AND, 3rd question was SO friggin' hard?
I did NOT get it imo...
Heh, in fact, it was SO hard imo, that my mind wouldn't even let me recall it here in fact!
(Guess I blocked it out (probably outta shame, lol, in my own mind for NOT knowing the answer to it)).
Needless to say? I didn't make it past the 3rd level of the interviews...
This, however, told me ALOT about Microsoft & the type of talent they've got & are willing to pay for:
The likes of (one of my 'intellectual/technical heroes' in fact!
Particularly, in Mr. Anders Heijelsberg, whom "King Billy" purchased from Borland outright, & who is responsible for iirc, Turbo Pascal and FOR SURE, the excellence that is Delphi/Kylix (my fav tools))... MS regularly "brain-drains" Borland I have heard over time.
I mean, who's next? Chuck Andrzewski?? (Co-designer of Delphi)
Anders Heijelsberg (sp?) again, is PARTICULARLY outstanding in this field imo!
He holds the 'distinguished engineer' title, which only 15 others @ MS hold!
AND, he did it QUICKLY, in like 2-3 years time to get that title & IS the reason largely for what you are seeing as improvements in Visual Studio's latest &
(Much of it VERY "Delphi like" (VB data containers anyone? Been there for YEARS in Delphi!))
Even the other MS 'whizkids' speak worlds & highly of him saying "his design skills are WAY above the norm!"
(He & John Carmack are, imo, the 'best & brightest out there' now, @ least of those in the spotlight)
Back on track though, enough "hero worship" (sorry guys, I am NOT above that, admiring others as people to look up to):
MS gets the VERY best. I shouldn't have tried for that level of work imo, but I went pretty far into that process... I wasn't "let down" (well, a bit, it was humbling because sometimes you get caught up in thinking you're better than you are)... I only learned I have to learn more is all!
* Heck, some of the guys who reply here (like Mr. John Carmack)? In some of their replies, just BLOW ME AWAY, & I know it... just on their quality of reply output & technical knowledge & imaginative brilliance applying it...
ESPECIALLY IN THE DEVELOPERS SECTION HERE!
APK
The reason I generally pass on PhDs when looking to hire. At several companies I've worked at, the SOP is to send candidates a programming test (filled with questions that are very relevant to what we do, not BS C++ idioms and quirks).
More times than not, a PhD who has applied at the company will get the test and complain loudly that they don't have time to fill the test out. Which is simply code for arrogance on their part or a lack of understanding of what is important in "the real world."
As far as quizzing onsite, the fact of the matter is that if you are good at what you do and are in it because you like it, pop quizzes are fun, not a reason to think of your employers as arrogant. When I was grilled for 7 hours at my current place of employment, the thought that was going through my head wasn't "wow, these assholes are arrogant." It was "wow, these guys are all totally brilliant. I definitely want to be surrounded by coworkers that are as smart as them." When the offer letter came, I accepted in a heartbeat.
I currently have no clever signature witicism to add here.
After the interview I heard back from Microsoft and was told that they wouldn't give me the job as my answer showed I wasn't prepared to back up their sales techniques. I was amazed. Basically they wanted me, as a pre-sales consultant, to lie to prospective customers about the capabilities of MS software. I've been in situations before where I've had to dig my company out of sour deals where salesmen have lied to customers about products they're buying, and it ain't nice. Too hear that MS do this shouldn't have been a suprise, but to hear it officially certainly changed my mind about working for them.
Microsoft asked a guy interview questions.
I expect he objected to the unprofessionalism. I mean it is one thing to ask an expert in a given field in, then ask him questions about how well he would fit into a given role. It is quite another to give him a generic quiz, likely written by people with much less competence than he. Asking questions is fine, but the implication of incompetence in giving a generic quiz is quite another. If a large company is that impersonal and indiscriminate when hiring, what other stupid bureaucratic procedures would an employee have to deal with? I would not walk out of a job because I am given a quiz, but I might if it was a quiz that did not really apply to the type of job I would expect to be working on.
Think of it this way. You're a nationally renowned chemist and DOW asks you to interview for a position. When you arrive they give you a test asking the atomic number of something and how you would centrifuge a sample of something. It entirely discounts your accomplishments to date. Obviously you know the basics or you would never have been able to do all you have done. It could be very insulting and good warning sign of a bureaucracy run amok.
You say the question is designed to ask whether people can think in terms of bits, but my answer would be:
You've got triple redundant storage but have simultaneous access to all of the bits to compare them?
What's up here- is this three hard drives in one box (ouch!), or every time you want the data do you really not care about paying for the bandwidth and latency to move the entire file from the remote sites to local storage for comparison?
What's the matter with just voting on a checksum or hash of the whole file (since most of the time, all three backups should agree and you'll save lots of data movement if you compute the hashes locally to each backup)?
To get the detailed answers you seem to be looking for, you might be better off describing the problem as three real-time instrument feeds measuring the same boolean experimental condition at each time step (bit).
This has got to be one of the oldest cliches in the book... matter of fact I've heard plenty of Microsoft interviewing stories and they always seem to turn on some goofy cliche of a technique that, once you know it, seems obvious, and if you don't, seems impenetrable.
These are the computing equivalents of the sorts of tricks you keep on hand for bar bets...
You know, it's really hard to hire people. but testing them on recall of something out of the CS Grad's Standard Toolkit is perfectly fine, if you want to know if they're loaded and ready to roll, but it's kind of a dumb way to figure out if you'd want to hire them. Three questions of this nature and that's it? I'd be insulted.
spoiler alert, but oh my god this is one of the oldies...
bitwise:
A = A xor B
B = A xor B
A = A xor B
and you've swapped the values.
Wikipedia entry
I have a strange reaction to that question "How would you move Mt. Fuji?"
I love technical challenges - the harder the better, but the idea of moving Mt. Fuji offends me so much that I have trouble even thinking about it.
No doubt I'd fail the interview because my answer would have to be, "You shouldn't even joke about moving Mt. Fuji!"
I interviewed with MS once, and the interview was much more like a CS exam that I thought it would be. I completely blew the interview (I hadn't slept at all the night before because the hotel room was freezing, there was only one blanket and the bed was rock hard - so I was not at my best) It went like this:
The interview was a full day affair, with very few breaks. They said in the AM that I may or may not be finished at lunch, basically - they said that if I was a total idiot then they wouldn't waste anyone's time after lunch.
All of the interviews involved writing code on a whiteboard in various languages. The code was reviewed for syntactical correctness as well as logical.
The first interviewer was really cool - she asked me to mock-up a battleship simulation in C# and laughed at me as I did a very bleary-eyed OOP model in C# of the Game object, the Player object etc... when really what she was after was the validation logic for putting the ships on the board - ensure they are in bounds and don't hit other ships etc... to me that seemed completely worthless - I mean that just an algorithm you would work out and tweak, the important stuff is your class structure.... but I digress.
I walked out of that interview feeling pretty good until I got in the next one. It was horrible - the interviewer was very arrogant and rude and had a thick accent which made him difficult to understand. He would ask me a question, and sit and roll his eyes as I was answering and check his email - basically communicating clearly to me that he didn't like me, want me there or want to be talking to me. For a code sample, he asked me to write code in C# (on a whiteboard) that would traverse a tree of nodes and print out the values in order of all nodes at an arbitrary level. So I wrote a recursive function that would do what he wanted, and that would work just fine. He didn't like that way I had written it, and demanded that I rewrite it "more efficiently". I stood there for like 20 mins feeling like a total idiot because I couldn't figure out what he was talking about, until he got mad and said I should be using "queues" and that it would be more efficient. I had no idea what he was talking about and told him, and he came up and tried to explain that I could have used a FIFO queue - but looking at his example, I didn't understand how his approach would have been any more efficient than mine - when I asked him this, he just got angrier and said it was. Suffice to say, that interview didn't go so well. I realized as soon as I was done with him that I wasn't going to get the job, so I resolved to just have some fun and enjoy the rest of the day. As an interesting footnote, I kept thinking about the question, and a couple days later I did find a much more efficient way of doing it, but it had nothing to do with queues, and it would have been much faster than either of the methodologies we had discussed. I damn near emailed him the better solution, but figured "Whats the point?" Ah well, like I say I was not at my best.
My next interview was with a guy who asked me a different technical question involving organizational hierarchies. I was lucky in that interview because I had written a budget system for a bank that used a similar structure, so I had found a very clever solution to the exact problem he asked me. When I explained my whiteboard code, he got a "damn this guy is good" look in his eye, so I felt pretty good coming out of that one.
Next was a lunch interview, a guy who that said would be my "peer" took me to lunch and asked me a bunch of questions while I was eating. The questions he asked were ridiculous, I mean stuff straight out of the MCSD Analyzing Solutions test. Seriously, I'm pretty sure he pulled a couple test questions before our lunch interview. He would ask me something, and I would answer him with a couple ways that I had solved the problem in the real world, and then he would say "no, that's no the answer, the answer is Scalability, Maintainability, Performance and....
Drinking habits can be dangerous. You can choke on the cloth and the nuns will wonder where their clothes are.
I broke my pipe down to pieces (the chanter, believe it or not, is the longest segment) and put the four-reeded monster in a tote. /., so I got that goin' for me.
Ascended Fuji. I was #2 in the group to reach summit.
Assembled the instrument. Splitting headache from the ascent.
I played "Amazing Grace" and "Morag of Dunvegan" looking down into the crater.
The mountain was moved.
For 500 yen, a fellow lit off a blowtorch and stamped the foot of the chanter (a hard-plastic Dunbar-Eller) with some Kanji that say "Top of the Hill, 3220m" IIRC.
Trying to play the instrument at that elevation qualifies as full-on stupid, but WTF, it's braggin' rights on
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
People are easy to accuse Microsoft for their arrogance. But Google recruiters (and other companies big & small) does the same thing too. Multiple unsolicited invitations. IQ tests in the interview. I wish the recruiters would have done more work to really know the candidate rather than just resume fishing with google (like search for 'Java web services resume'!) But hack, you can politely decline or not even respond to unsolicited message if you are not interested.
Yes, the job market is heating up this year. Simply putting a resume in your home page might get you a few unsolicited recruiter spam.
Well, maybe it was the fact that I was in PSS... But the fact is, my interview process was atypical. They needed to hire someone fast and so it was about two weeks between when I applied and when I was hired. I only had three interviews.
And they stopped asking me weird puzzles when they asked me what sort of software development work I had done and I started talking about some of my AI experiments....
But two things: Most of the managers who interviewed me were clueless about technical fields. Again this may not be representative of Microsoft or even PSS, but perhaps just my department.
The one interview I had that was really good was an informational interview for a possible Services for UNIX support position that never materialized.
Also when I say "play politics" I mean in the sense of managers saying "Great to see you contributing to Microsoft as a whole" right up until the review and then using your contributions to other departments against you at that point (despite the fact that you met or exceeded all of your goals). My experience there was not unique, as I have heard from many other employees who have had similar things happen to them.
My contributions to Microsoft were often highly visible and well above my level (53). Yet, they actually kept me from being promoted. A few of my contributions (in supporting roles) were:
1) Introducing and championing the idea that Exchange would never compete with Sendmail because the email and groupware markets were substantially separate. This eventually lead to the addition of a POP3 server in Server 2003. Steve Wasko pushed this project through.
2) Introducing the idea that Services for UNIX should be displated at Linuxworld. Paul Cayley (sp?) agreed to provide the additional funding for more display space for this.
The above seem quite obvious, but you would be surprised...
Additionally I provided consulting time to competitive managers regarding how Linux, Samba, and other open source products would actually be used in a real environment.
There are several other ideas I pushed in the competitive circles which have not yet been implimented so I won't comment on them here except to say that the I pushed very heavily the idea of introducing telnet servers and clients into SFU which could use Kerberos to encrypt the session (OpenSSH is omitted from this product due to patent liability concerns).
The problem is that MS's interviewing problems are part of a larger unresolved issue... And I used to work at Microsoft, so it is not that I was too snobish to go through the interview process, but simply that I found it largely a waste of time.
LedgerSMB: Open source Accounting/ERP
If you mean slave away long hours on a single project, I fail to see how that skill is unique to Ph.Ds. Actually, the majority of the ones I know are lazy bums until the deadline comes. :)
I will say this, though. I'd be a little offended if I was subjected to nine consecutive technical quizzes (as from TFA) while carrying a Ph.D. I understand a few open-ended questions to see if a person can think creatively and prove they aren't an anti-social prick. Maybe a few technical questions with distinct solutions to check their background. However, I would get really tired, really quickly if they spent more time toying around than asking me about my research.
There are two types of people: those prepared for the zombie apocalypse and those who will be eaten.
A = A xor B
B = A xor B
A = A xor B
This will work for any values of A and B as long as the two registers have the same number of bits.
WWJD for a Klondike Bar?
Im interested in what your solution to that toy problem is. The FIFO queue solution is quite obvious and runs in linear time. I don't see how you can get better than that.
The real reason manhole covers are round reflects late 19th century manufacturing technology. In the late 19th century, casting worked fine, but the only power tools were lathes, planers, and steam hammers. Milling machines and welders were in the future.
Given that toolset, a round manhole cover is an easy thing to make - cast, chuck in lathe, finish machine in one setup. A manhole cover ring, which needs a little finish machining to clean up the inside of the ring, is also straightforward. Simple, cheap, and suitable for volume production.
Making a rectangular plate with 1890s technology is harder than making a round one. It would probably require four passes through a power planer, which is a more expensive machine than a lathe. Making a rectangular manhole frame with that toolset is really tough. You can't use a lathe to do the finish machining. It's tough to get a planer into the inside of a rectangle. You'd need a specialized planer with a long reach, and it would take at least four setups to do the job, probably eight to get into each corner from both directions. Today, you'd cut four straight sections and weld the parts together, which is how rectangular frames are made today. But that option didn't exist in 1890.
Take a look at a steam locomotive from that era. All big metal parts consist of cast surfaces, flat machined surfaces, circular machined surface. Anything else was really difficult to make.
Of course he was upset. The overhead for recursive functions is many times more than that for implimenting queues. From this page covering what you should have remembered from basic computer science, we find that "Every time a method is called, all of the local variables, registers, and method parameters must be pushed on the call stack. This can make recursion very time consuming since recursion usually adds a lot of method calls."
However, had you recalled Breadth-First-Search, you'd realize that with a queue you could traverse the the tree one level at a time, starting with the root and adding all children found on each level. This explicitly stores in queue the information you implicitly programmed in the recursion. It requires more thinking, but it saves the costly recursive calls, which can pile up very quickly if you're searching an unbalanced tree. You were lazy and neglected algorithmic analysis for the easy recursive solution and got rightly burned for it. This may have happened because you were tired, and that's certainly understandable, but this is early CS/basic algorithms material, and if I was your interviewer I'd also be concerned (but less of a dick about it).
Thanks. I am getting sick of this simplistic urban legend. But I think there's more to it.
When you design a cast metal part, you have to make sure the molten metal will reach all the corners. The easiest thing to cast is a sphere; the hardest is something with thin parts sticking off. It's probably easier to cast round manhole covers with a lower reject rate.
Also, sewer and storm drain manholes are generally shaped like big bottles. A skinny neck to enter through, and a large body to work inside. Given a round neck, wouldn't it be awkward to attach a square frame? (Power and phone manholes are usually rectangular, with short round necks supporting the mh cover frame.)
And also, a precast manhole may be installed at an angle to the center line of a street. The round cover disguises this, but a square cover would look odd if rotated from the CL.
You are not the only one getting a bit sick of this,
Here in the UK manhole covers are no longer round.
They are square and split diagonally. Yes they can fall down the manhole, although the two halfs are loosely bolted together and Yes they are a real bugger to get back out again.
I know I have built enough sewer lines. The round neck is usually covered in a flat slab with a square hole in it. On that, between 2 and 4 courses of bricks are laid and then the frame is cemented on, into which goes the cover.
The cover slab can generally be twisted enough to line everything up with the kerb so as not to look too odd. Generyll speaking the most important thing about cover placement in a road is to avoid placing the cover directly under the tyres of most cars. So they will normally try to place them in the middle of the lane. This reduces the amount of impact damage the manhole sustains and probably avoids vehicles slipping on the metal covers.
Watch me build my house