I think the correct title would have been - "Why I won't work at Microsoft, again.".
I don't think it's a valid argument against Google without having any data-points. I've seen many Startups also don't finish their features/products and throw away when they realize this is not the right thing to do.
Overall, don't generalize too much. Experiences are different for different people at different places.
Right, but look at google's recent history: more and more people, and in some way, less and less signal generated.
This is some truly unavoidable thing I guess, unless you do some radical stuff like splitting apart your company in different pieces, like anti trust itself would do?
Also for me is truly disturbing the idea of being able to select people that will do great stuff just using an interview. You can just check if they understand big O, can design things, and are actually able to code. This is already a result, but I bet this also creates a monoculture as this way you create a filter that is not just cool, but also bad in some way (IMHO this is why Google fails when trying to design stuff that are designed for the masses).
disclaimer: I got a request for interview from google two times and refused it, so I'm not frustrated about that or alike.
I disagree on the less signal part of your comment. To me, it looks like more and more signal. Since search, we've seen maps, mail, reader, chrome, android, app engine, big table, google docs, wave, google voice, a google branded phone, google fibre to the home for those lucky enough, prediction api, charts, dns services, @font-face directory, google home page, and others many others.
Sure, some of those have been buyouts. But overall that is a lot of signal as far as I'm concerned.
First, why does it matter what "originated" there? Many of the projects that didn't originate at Google wouldn't have seen the light of day if Google or someone with comparative capital hadn't acquired them. And actually, it's a bit ironic that you make this complaint here given the subject of the article, since acquiring startups is a way to hire people who are both smart and get things done.
"Originated" is also somewhat ambiguous. There are at least a couple of examples where Google was working on a project internally and saw a similar external project that they decided to acquire and merge with the internal project. Did the resulting project "originate" at Google? Even if you answer no, I think at least half of the items at that list still "originated" at Google.
Google and Microsoft both do a great job shipping certain kinds of products. The teams that work on these products have influence, autonomy and ability (without middle management or PM interference) to ship products.
For Microsoft it's Office tools, development tools and operating systems. We may not like those products, nor wish to work on those teams irrespective (I'm a UNIX hacker, there's no way I'd be happy at Microsoft, lest they bring back Xenix), but I'd imagine those teams are great to work on.
For Google, it's obviously search, infrastructure (incredible competitive advantage for them), advertising system and other things Internet or networking (including Android, Chrome etc...). It's not their office or enterprise offerings (Google docs are useful, but they're popular because they're only game in town so far).
I wouldn't join Microsoft to work on online services or join Google to work on desktop or enterprise products (with exception of Chromium). I would imagine I'd be sidelined by management or technical leadership who is just not used to that particular type of software (e.g., if you make shrink wrap office software you'd be hesitant to adopt methodologies that involve daily pushes of code or see the value of making services highly available and fault tolerant).
Of course, I am open to hear arguments to the contrary (do you work on online services at Microsoft and find that you're able to "get things done" without interference? Ditto for desktop software at Google).
I don't work for MS, but I must admit I'm impressed with Bing. Is it better than Google? Maybe not, but it's still impressive. And they certainly seem to rev changes to it just as fast as Google is doing nowadays.
We'll see how Office online plays out. And don't forget that MS Online Services has like 40million paying customers.
They also do something called XBox Live and even Hotmail has gotten a little better over time. And I find Live Mesh to be the best cloud sync'ing app I've ever used. All in all, I think they're doing OK (not great, but OK).
> I don't work for MS, but I must admit I'm impressed with Bing.
That's not surprising, given the person running Bing is Qi Lu. There's a reason they brought in an outsider: they just couldn't afford to screw this attempt up.
I've had the enormous privilege of working in his organization at Yahoo (I still have no idea how I was able to fool my interview panel into hiring me straight out of college and into that group).
That experience gave me an extremely highly bar in terms of choosing engineering organizations to work for. There's only a couple of non-startup companies I am willing to work at after this experience: most everyone else - including non-search parts of Yahoo - just does not get how to run an online service and are unwilling to listen to a young punk like me :-)
So what do you look for when choosing those organizations? (And if possible how to do that, multiple interviews, experience period?)
Being in my second job right now my heuristics are:
- Strong and clear team leadership
- Fitness to value proposition, besides my work as a developer how well can I contribute to help improving the organization
Would love to hear from you how to be more selective.
Perhaps the more valuable takeaway from this piece is not whether Google or Microsoft have good hiring practices but how academic intelligence might be insufficient for success.
As someone who struggles to attain academic intelligence, I've focused on the other types. I've seen how that has held me back but equally I've seen how people stunning more bright than myself never reach their full potential and sometimes fail entirely.
This seems to paint the world in overly broad brush strokes.
There are good teams, and there are bad teams, and there's bound to be a bunch of both in any organization. You have the same problem with startups: there are good ones and bad ones, and it's usually not possible to tell one from the other until you join them.
Why not just try, see what you get, and then you can transfer or quit if you end up on a bad team? Hell, it's a lot easier than joining a bad startup, where you have to get a whole different job to escape from it.
Nope - I've read before that to move teams at Google, all you need do is say so, and you can move to whichever other project you want to - no questions asked. Not sure how any of the less interesting projects get done, but that's just what I've heard.
this is not true. if a team is "hiring" you can transfer in, but the popular ones are full up, and getting in is very competitive. plus many teams are only in a particular office and if are not willing to move to it, then you are out of luck.
that said, transfers are supported by management and there's a nice internal web app for browsing which teams have reqs and for requesting a transfer.
I agree. It seems as if she's taking whatever she's experienced in Microsoft (which is one company) and applying that to any other company with multidisciplinary teams and a large bureaucratic layer.
She should, at least, give working in Google a chance (maybe a couple years or so?) before writing something like this.
I am struggling with the decision to accept a job offer at the moment, and I keep hearing this: "why don't you just try it (for a couple of years)". And I don't understand it.
Granted, I could quit after 3 months, but it would probably invoke bad feelings. So I assume for employment I would be looking into at least one year. That is HUGE investment of time. It is 3% of my officially remaining time in the work force (provided I stay healthy, until the official retiring age). Is that really an investment you are supposed to make "just to try things"???
Freelancing, selecting projects with shorter durations. Saving enough money to be able to bootstrap a startup and determine one's own working conditions.
Though I might be unique in feeling uneasy about quitting a job after a short amount of time (like a month). Maybe for other people it is not as much of an issue.
You shouldn't feel uneasy about quitting within 90 days. Most employes have the 90 day provision to fire you if you don't work out, so just use the same logic.
Not to mention she's focusing on one experience within Microsoft. Its a big company and not every team is like that but the blog post would lead you to believe that every team is.
Your statement isn't really refuting her argument though. Sure, any sufficiently inexperienced individual might be wrong, but inexperience does not guarantee wrongness.
Generalizing from a single example often does guarantee that you're missing a whole lot, though. It's almost as bad as generalizing from no examples, even when the single example is a good one. Which it wasn't, in this case.
It's also sometimes important to simply fail a project. I don't know what she worked on, but I suspect that it's just as equally likely that the product should have never reached market.
I believe because the publicly available reports of their interview process don't seem to emphasize "getting stuff done" as much as she prefers, but instead emphasize other attributes. She believes that if it's not emphasized in the interview process, it's likely to be underemphasized in the organization as a whole. Since she believes that attribute to be more important than its proportion of apparent emphasis, the probability of being dissatisfied with her work environment is too high for her tastes. That's how I read it anyway.
I would say that interviewing for engineering knowledge (coding, algorithms, software engineering) is pretty straight forward, but interviewing to figure out if a candiate can get 'real' work done is very difficult.
I don't know of any magic way of testing for that. There are some good signals, of course, such as:
1) pre-interview open source reputation and release.
2) References from people you trust and respect.
3) Publications with significant content written by the candidate.
But I've seen each of these fail, even in combination, in predicting the ability to execute. That said, it's better than nothing.
(disclaimer, I work for Google, and am also waiting for the part about Google in the OP)
There is a way to test to see if someone can get stuff done, but that usually entails hiring someone for a predetermined time (6 mos, a year, 2 years) and then evaluating whether they meet your standards at the end of that time period. If they do, they stay on. If someone really wants to work for your organization, I can guarantee that they'll do everything in their power to get stuff done during this time period.
Yes, I totally agree, but I was assuming we were talking about evaluating people who were for the most part unproven in the work world. Many investment banks and consulting firms hire fresh undergrads on contract.
>and am also waiting for the part about Google in the OP)
One good reason not to work for already big companies like Google and Microsoft, is that your growth potential is limited. Case in point, video.google.com and www.youtubue.com. Nobody needs to wonder about which of the two developers among these projects struck it rich.
Why shovel for someone else's palace when you can build your own?
It is actually pretty easy, you look for developers that understand minimum viable product and can explain their development methodology to produce software in such a manner.
There's a joke on the old saying: if it walks like a duck, and talks like a duck, don't be deceived, it is a duck. Smart people have a tendency to overcomplicate things and be so suspicious of "superficial" indicators. The assumption is that it really can't be so simple, you can't make snap judgments based on how they run interviews, you need to do some sophisticated analysis or something to really know. They end up being deceived by not wanting to be tripped up by naive conclusions and trying to look deeply, so they miss what's staring them in the face.
First, it would mean a lot more to explain why you don't want to work somewhere if that company had actually offered you a job. Anyone can say that they don't want to work at Google, but it doesn't have much force if it could just be a sour grapes rationalization. It would at least be good to disclose whether or not you've talked to them about it.
Pretending that isn't a problem, though -- where does the claim that Google doesn't finish things come from? Google must have one of the highest ratios of number-of-devs-on-a-product to number-of-million-users-using-that-product in the industry! I see no reason to conclude that a Google engineer's work would be likely to be canceled and disused.
Completely rational and smart people can form an irrational group. Since you have a network of people, they could form such a group, that everyone's individual talents are cancelled out.
This is why, I don't believe in complete democracy at work. There has to be a clear leader, who is not afraid to make decisions, to see them through, also is accepted by others to make decisions (in most cases at least), and is someone, who finishes stuff.
Last week I read a great way to assemble such a group (at least it sounds like a good way to me). In the book '33 Strategies of War', there was a chapter on how George Marshall, an American military leader trained young proteges, and picked the ones, who were the most like him. After putting these young people to test, he gave them key roles and placed them in key positions. He, then encouraged them to also train their own subordinates.
Basically he 'cloned' himself, and then showed his 'clones', how to 'clone' themselves too. Thus he was able to create a new, more efficient group of leaders, without confronting leader with large egos.
As a counterpoint, I'd never work for Microsoft, not because they would make me use Windows, Outlook and Visual Studio, not because I'd have to end lines with semicolons. Neither it would be for a lack of smart people to work with - there are incredibly smart people there, several of them dear friends of mine.
I wouldn't because management has continously engaged in unethical (barely sub-criminal) behaviour I don't want to enable. I don't want my work to be used for that.
The passing mention to the antitrust investigation is telling.
As long as you don't mind working on boring software. (I mean, I know Joel is everyone's nerd idol and everything, but really: bug tracking software? Version control? That's all you got?)
Disclaimer: My FC internship starts on Tuesday, so I can't promise complete impartiality.
I had the chance to contribute to Chromium as part of a class project. It was super bitching. I got to communicate and ever have discussions (virtually) with some brilliant google guys and put some code in. Even got my name on the AUTHORS list.
My biggest contribution was changing the way they did metahandles in sync. You see, when a 'synced' bookmark item is updated in a transaction, it must be marked 'dirty' so that it can be pushed to the server when the cycle comes around again. This was an O(n) operation, as they scanned the whole set of metahandles to do this. I just added some things to the WriteTransaction class to add it to a much shorter list and spare the effort of the whole scan at the end.
Now, I haven't worked at Fog Creek yet, but I have (coincidentally) built a bug tracker before (high school internship; I have no idea why I was given that task, in retrospect). Granted, I was a high school student so I did an awful job with it, but I did learn a lot about how to make software (I'd hope) and it was pretty cool. One thing in particular comes to mind which is that I had to add multiple-parameter sorting, and so I figured out how to do that (I had no idea libraries and even successive merge sorts would accomplish the same thing) and they were happy with what I made.
I guess my point is that a feature is a feature is a feature. Most of the REALLY boring stuff is present in ANY software project, and a lot of the REALLY interesting stuff is present in almost anything (COBOL and banking applications aside).
She does have a good point; I've always found that people that like those mindgames are never really very good at programming. Something about wanting to find the right answer to a specific question seems to conflict to finding an answer to a vague set of requirements, programming.
A better interview question might be "draw a picture of anything that comes to mind".
I interviewed with Google four years ago and have been working there since. None of my interview questions were of the puzzle variety. Many were coding and some interviews were completely open ended of the type "You seem to have done a lot of X" followed by a series of hard questions on X from someone who is clearly interested in learning more about X. I found the interviews quite enjoyable. YMMV.
tldr: I interviewed at Google two years ago, I didn't get an offer so now I'm writing a blog post to explain that I didn't really want to work there anyway. Psych.
I'd say the ultimate proof of being both talented and effective is being part of a talent acquisition where the acquired team's product can be fully evaluated.
The fact that Google does many such acquisitions is, to me, conclusive evidence that they do value both of these traits.
But no, maybe not so much in the hiring process, because it's difficult and error-prone enough just to determine potential effectiveness.
"Microsoft" represents hundreds of different places to work, and I'm pretty sure Google does too. Different teams at large employers can be worlds apart. The corporate culture that they all have in common is a thinner stripe than most people think, especially when it comes to how you really feel about your day-to-day work and your ability to get things done.
Would be interesting to know which product she worked on at Microsoft. Sure they have teams that don't deliver, but they also have teams that get shit done.
Google hiring is done at a company level, so for most hires, you don't actually know what team you'll be working on during the interview. You are typically given some idea at offer time (I was told my manager's name, my manager's manager's name, and the department), and you can talk to people you might know at the company, but if you're remote or don't know many Googlers it can be tough to get more information.
It's also not unusual for teams to change shortly after you start - I switched managers in my second day there, and then what I ended up working on wasn't exactly what I was assigned to work on.
Strangely enough, I just turned down a job offer from Google today, for a complex variety of reasons. Mainly, though, I had a choice between a promotion at my current company, where I know exactly what I'm getting into, and a job at Google, which is a giant black box from the outside with a promise that they'll find you something you will want to work on. (I had two other job offers as well in fact, so it wasn't just those two choices)
Probably the hardest decision I've ever made. I'm sure I would have been happy with any of the offers, but I feel like I might as well take up my employer's offer and see how things go for the next year or two (also they offered more salary than Google did but the bonuses aren't multiplied like they are at Google).
It depends a lot on what your particular project is, but 3-6 months seems much more typical to me. Mine lasted exactly 4 months from the day I joined to the day we launched...I was joining an already-existing project that was fairly far along, though.
It often takes 12-18 months before you have a good enough understanding of the company and your own desires to figure out where you want to be. (And often more - I know people who joined in 2007 who are just now working through this.) But that time isn't all spent on one project: typically you'll work through a bunch of them, all in the same focus area. I think this is more akin to the normal process of discovery that most young people go through, though, and not something specific to Google.
I don't think it's a valid argument against Google without having any data-points. I've seen many Startups also don't finish their features/products and throw away when they realize this is not the right thing to do.
Overall, don't generalize too much. Experiences are different for different people at different places.