Poll: Given the opportunity would you work at Google?
Knowing all these things, do you want to work for Google? Do you work for Google? I would love to hear your stories.
Knowing all these things, do you want to work for Google? Do you work for Google? I would love to hear your stories.
Google has an orientation that is opposed to my agenda.
I joined the internet in 1992. It was a pretty decentralized place, and any person on it could set up an online service accessible to any other person on it; but you pretty much had to write your service in C (less of a security worry at the time) and it was easy to get in trouble by bogging down the DECStation you shared with fifty other people. So it was such a hassle that there were only a few dozen online services, plus a few thousand FTP sites. As an example, there were no public porn sites, although there was lots of porn.
A few years later, when the internet hit mainstream, it was a decentralizing force; server-centric Novell LANs and mainframe-terminal networks gave way to workstation networks, where anybody at the company, or anybody with an ISP account, could set up a web server on their personal workstation with a little trouble.
I started running my own mail and web server when I moved to Ohio in 1997, and I've been running one ever since, first alone and later with half a dozen friends. Until 2001 it was on dialup, which was fine, although obviously there are limits on how much traffic I could cope with.
But this rosy picture is complicated by centralizing forces. Apple wants to relegate websites to second-class status on their popular computers, and exercises viewpoint censorship on what "apps" they allow in their "app store". Google wants you to keep your mail in Gmail instead of on your home computer (with backups, naturally, on your friends' home computers), and they'll delete your account with no recourse if you admit you're only 10. Microsoft won't let you run unsigned device drivers on your own computer any more. Facebook wants to know every web page you visit and log that information permanently for later analysis.
And email from our little mail server automatically gets dropped into the spam box on Gmail these days. Not sure why. Apparently our domain has a "bad reputation", but even finding that out required an inside connection; no way to find out more.
I imagine a different future, where if Alice wants to talk to Bob and Bob wants to talk to Alice, there's no unaccountable intermediary that can interfere with their communication, whether they're speaking text, or video, or 3-D models, or simulation. If Alice's email gets marked as spam, Bob ought to be able to find out why — and fix it!
We're a lot closer to that world today than we were in 1992, and the evidence suggests that it is to that that we owe the collapse of oppressive regimes throughout the Middle East and Northern Africa; the revelation and destruction of the nascent government-funded slander campaign against Glenn Greenwald and other WikiLeaks supporters; and the public discovery of the CIA's "extraordinary rendition" flights. If we successfully beat back the global menaces of governmental corruption, global warming, overfishing, and terrorism, it will be because we were able to collaborate and organize more effectively around the world by means of this new medium.
Google, of course, wants to solve these problems too. But it has a different, less-democratic approach in mind. While of course the company contains an enormous diversity of opinion internally, their approach publicly has been somewhat paternalistic, and their engineering culture is organized around big centralized solutions; warehouse-scale computing, as the title of Barroso and Hölzle's excellent book puts it.
A rather shocking view of the depth of some Googlers' commitment to centralized computing can be found at http://edition.cnn.com/2011/TECH/web/05/11/google.skype.wire...
I believe that warehouse-scale client-server computing will, in the end, undermine the kind of democratic freedom of communication that we need to deal with today's global menaces. It's more practical than peer-to-peer computing at the moment, but that pendulum has swung back and forth several times over the decades. (Some of my friends were among the first employees of a hot cloud-computing startup, in 1964, called Tymshare.) The proper response to the current impracticality of decentralized computing is not to sigh and build centralized systems. The proper response is to build the systems to make decentralized computing practical again.
Google is not institutionally opposed to this; they've funded substantial and important work on it. Nevertheless, because of their overall orientation toward centralized solutions, I believe working there would be a further distraction from that goal. Worse, with every advance that companies like Google and Apple make, the higher is the bar that decentralized systems must leap to achieve real adoption.
I'm not making much progress on that. My friends Len Sassaman (who committed suicide yesterday), Bram Cohen, Jacob Appelbaum, and Zooko O'Whielacronx have made substantial contributions. But I don't think I'd make more progress at Google, and I might make negative progress.
Nowadays, I see a lot of downsides. First, it's a full-time on site job, which is something I left behind almost 10 years ago, so it'd be tough to go back. Probably more importantly, I doubt they could offer me the kind of salary that would tempt me away from consulting.
At this point, the only reason I could see myself working for a big company again would be if one of my products made it onto their radar and I found myself acqu-hired. Even then, I'd probably look at it as a necessary evil that came with a nice payday. Given all the stories of founders getting absorbed by the Googles of the world, waiting out their obligatory 2 years, then jumping ship, it just doesn't seem like a good fit for somebody with an entrepreneurial mindset.
If counting cash + equity, adjusting for risk, only a few companies (FB etc.) now can beat Google in terms of expected income.
So if your only concern is money, you can still try to see how Google could offer.
Are you including e.g. Morgan Stanley and Knight Capital in your pool? Because Google's salaries would have had to rise a lot more than 10% to catch up to those guys, last I heard.
Please read my original comment, which was comparing Google with other software companies.
1) I'm not sure I could hack it there. While I consider myself to be a good coder (and people tell me so), I don't consider myself to be a top-notch guru ninja coder. I also don't have a CS degree, and I tend to get a little lost when people start getting into CS theory.
2) I have a (probably irrational) aversion to working at really big companies, I think probably due to my time dealing with insane bureaucracy in the Navy. If there was something at a relatively autonomous smaller group though, I would probably be down with that.
The two things the interview process is really looking for is a.) How do you react when faced with a challenge? Do you dig in and attack it, or do you flinch and go away? and b.) Do you really want to work at Google? Things like big-O notation and coding skills are important, but if you really want to, you can pick them up on your own.
Incidentally, this is the same criteria YCombinator uses, except that instead of "do you really want to work at Google?" they ask "do you really want to found a startup?" It's a pretty handy mindset to develop in general.
2.) I felt the same way, and then discovered it was nowhere near as bad as I expected. There're a bunch of pretty autonomous small groups working at Google, often on pretty cool things. One trade-off is that the more important your work is to the company, the less autonomy you have, yet the more important your work is to the company, the greater the resources you have at your disposal and the greater the financial and career rewards.
Your job in any company doesn't deal with algorithms that much but it's very useful to know them for the rare opportunities that do occur so that you make better choices.
As for YCombinator, in startups when you hit scaling issues if means your product is good and you're already on the path to success and you can hire someone with better fundamentals to help you deal with the load.
mzuckerberg (facebook ceo) Algorithm Rating: 1044 Total Earnings: $124.00 School: Harvard University http://www.topcoder.com/tc?module=MemberProfile&cr=27613...
dangelo (former facebook cto) Algorithm Rating: 2351 Total Earnings: $3,082.50 School: California Institute of Technology http://www.topcoder.com/tc?module=MemberProfile&cr=26098...
http://www.youtube.com/watch?v=RpRRUQFbePU&feature=relmfu
I too have had interviews with Google and had questions about big O notation. And questions about sorting during interviews with several other companies.Not knowing fundamentals like this never helps. Many interviewers will spoon feed it to you, but you're not going to respond to questions with all your mental resources if you're spending all your energy trying to understand the context.
But its not necessary. And it costs nothing other than time to fix it. And it may even be fun.
I enjoyed my time in the Navy because of my shipmates. I've really enjoyed my time at Google because of the interesting work and absolutely fantastic people I work with.
Just my two cents...
It wasn't the rank structure or chain of command that left a bad taste in my mouth, it was the layers and layers of approvals and paperwork needed to do something as simple as run a security audit on my servers, or set up an intrusion detection system on a spare PC, or even keep an extra set of backup tapes in a separate location on the ship.
I wouldn't expect it to be crazy like that at Google or any other progressive tech company, of course.
EDIT: Not to mention that Twitter (and many other software companies) is crawling with ex-Googlers, so the caliber of engineer coworkers will be roughly equal.
I'd consider returning.
a) Google has good infrastructure, but there's a high barrier to adding a new technology in production. If I put 5 engineers in a room with a rough design for a product, they'd probably suggest the same components. I wanted to step outside and use new technologies. (I wouldn't do this off work hours because I don't have the brain bandwidth to work on side projects)
b) Avoiding my own complacency. Google was my first gig out of university and I didn't want to stay there just by default.
c) I wanted to work somewhere where success and failure rested on my work (and of everyone on the team's) - I wanted to put my heart into something, and that, for me right now, requires something that can fail and then I'd be out of a job as opposed to just switching teams. Later, I might be happy making 1 billion people's search results 0.1% better, but now isn't that time. Certain teams at Google are more at-risk like this, but mine wasn't.
There are a few other minor reasons, but none of them were other people, an uncaring company, or incompetence.
Google's certainly not perfect, but I'm pretty sure no other company even a quarter of its size is as good a place to work.
having done contracts for federal govt and companies the size of nortel, I expected otherwise, but this is exactly what I discovered when I was on site last week.
Google is the right place for certain kinds of people; I don't think entrepreneurs are one of them.
Google certainly isn't seen as the "hip", "cool" place to be anymore. Google+ seems shiny and new, but as a whole, Google has this aura of being a place where creative, active developers get sucked into a black hole, and you never hear or see anything from them again.
I would love the chance to work with great people and to make a killer income there, but to work at Google I'd have to move to a different country, or move completely across the country I already live in. Both of those options are simply unacceptable right now - even if I was willing to jump willy-nilly, I have a significant other who has real ties to where we are right now.
I also seriously doubt that I'd get to work on something that interesting at a company so large.
That said, if Google offered me a large salary and the opportunity to work on my side projects full time - Hell yeah. You'd have to make a really good argument why anyone shouldn't take advantage of that! :)
Is this true?
The obvious course of action is for developers to universally stop signing over their rights willingly like this. Nobody should ever have to sign these invention clauses to be employed.
If you're not working on something similar to what the employer is working on, it's not a problem. If you're working on something that will compete with what your employer is doing, there's a problem.
If you were running a sports team, you wouldn't let your employees run a betting parlor - they'd have too much incentive to throw a game and profit off it. In the same way, employers don't want their employees having situations where the company's goals and the employee's goals are at odds.
If you're not working on something similar to what the
employer is working on, it's not a problem.
Depends on the contract you sign. A lot of employers demand their employees automatically sign over all invention rights (past and future), and then have a process to (maybe) give your rights back -- and it sounds like this is how Google approaches it.The success of getting IP rights assigned to you personally is heavily dependent upon what you're doing. If it's just a Chrome extension for your favorite website or a webapp that caters to a niche interest you have, no problem. If it's a casual game (now that Google+ has launched) or a mobile app, it can be very, very difficult, as those are industries of pretty heavy strategic importance to Google.
It is true that Google has a very easy process to open-source your projects. One practical pain is that if you want to accept patches you have to get every contributor to sign Google's CLA.
edit: added "in my experience".
Also, it's not a simple open-and-shut "yep, we own it" response. It takes ages, while you lose whatever enthusiasm you might have had going in to the idea.
If it wasn't for the stuff I'm doing right now, which I find extremely fun, I would apply.
My only concern would be the issue of being in a huge company where it might be hard to make an significant impact. But all the people I know who are at Google currently seem to work on very cool stuff.
Ultimately, I think there are probably more exciting possibilities getting into the skunkworks or R&D departments of companies like LivingSocial, Groupon, Twitter, or any position at a smaller, progressive company like GitHub. They might not be jobs for life but you're going to be doing exciting work, learning new stuff, and meeting some interesting folks for sure.
but after spending a weekend there, I've changed my mind. I'd definitely work there for a period. There are so many intelligent people there that it'd be foolish to not go through the experience, given the option.
Edit for context: I live in the east in canada, so part of my awesome experience is definitely the environment, as well as the people.
There should be a option for "Maybe, if I knew what I would be working on."
Still, it took me less than a split second to decide. As a founder and a location-independent entrepreneur the loss of freedom and self-determination were unthinkable. With my current setup, I can jump a flight to anywhere I want, for as long as I want without having to ask permission from anyone. Likewise, my income and share of the profits I produce are determined by me alone. I wouldn't trade that for anything.
I'm actually tremendously thankful for the opportunity that I had at Google because, as potentially the world's best place to be an employee, they helped crystalize for me the realization that I am in exactly the right place.
If the question means 'right after I finished my current degree', I also would say 'No' because I planned to start a PhD.
If the questions means 'after I have finished all studies', I'm not sure yet. If whatever I am doing at that time is less interesting than working for Google and I'm not bound somehow to my current location, I probably would say 'Yes'.
So maybe there should be another option like 'Not now but maybe at some later time'.
I don't believe Google has either of those. Instead, Google has a lot of amazing features and technologies, but few outstanding products.
you heard of a land grab...well Google is in the process of doing a talent grab, hiring engineers left and right, so chances are unless you made a name for yourself, you'll be stuck doing something stupid
Yes, there's mundane work in any job. There is less of it in Google than in other places, even including the startups I've worked at, because when you operate at Google-scale, even simple things become an interesting technical challenge.
It's sorta hard for me to point out specifics because most of Google's internal infrastructure is quite secret, but if you can point out some things that you think would be mundane and boring, I can try to illustrate some of the challenges involved, up to the limits of my confidentiality agreement.
Sure the guys who made a name for themselves are working on something cool and doing big things. But some peon? They are stuck doing the mundane busy work that the big guys don't want to bother with.
It's like automotive design...most people go to design schools thinking they'll be designing cars, but in the real world, you end up being one out of the five designers working on designing the side mirrors.
And then there's the infrastructure supporting that, which is technically fascinating but never gets any public recognition, because it's all confidential.
If your goal is to be famous, then yes, this is mundane work. But if your goal is to work on interesting technical challenges, it is a lot more challenging and fascinating than slapping together a RoR app.
I'll point out that the startup world is like this too. For every Mark Zuckerburg on the cover of time magazine, there are a dozen DropBoxes and Herokus that get some acclaim within their niches but are unknown to the world at large. And then for every Heroku, there're a dozen FreshAddress.coms or Bingo Card Creators that have a very tiny niche that can support their founder but is virtually unknown outside their customer base. And for every BCG, there are a dozen startups that fail completely and nobody knows about.
One thing that really surprised me about the real world was just how deep the iceberg goes. I was an outsider until I was about 27, first as a student, then as an employee in a startup with big dreams but small successes, then as a founder in a startup with big dreams but small successes. People know the Zuckerburgs of the world because the media write about them; the media write about them because they need larger than life personalities to get people to buy their magazines.
The "celebrity programmer" is a creation of the media. Just look what happened with Google+ and Andy Hertzfeld. He worked on one aspect (UI) of one feature (Circles) of one product (Google+). He is just as much of a peon as the rest of us, but because he has a prior track record and people love a good hero story, somehow that got blown up into "the lead designer for all of Google+". Andy, to his credit, didn't take the credit and shared it with all the people who were actually involved in creating the UI for Google+.
(Actually, I worry sometimes that listing projects I've worked on here will result in the same thing happening, since I'm at least a recognizable personality on HN. I was not the primary developer for Wonder Wheel - the guy who was is a kickass developer with his own startup now. I was not the primary driving force behind merging all properties into one - the woman who was is now working on a cool data analysis problem in an overseas office. I was the first engineer on the 2010 visual redesign, but I was not the tech lead, and many many other people helped out. I'm not the primary doodler, I've only done one or two when that guy was busy. I'm one of three co-TLs on Authorship...I'd like to think I contribute a lot, but many other people contribute a lot too.)
I do have to second this thing about the "celebrity programmer". We have a group of people working on ext4, some of whom have been working on it at Google before I decided to start working there. (In fact, I learned about Google adopting ext4 from their contributions of no-journal mode for ext4 to the upstream.) I may be one of the more visible persons at Google, but I'm certainly not the only one working on ext4, and ext4 wouldn't be where it is today without some really talented folks who have been working on it with me for the last 2-3 years --- and I've only been at Google for 18 months!
One of the reasons why I am at Google is precisely because it is a big company. It is only when have a very, very large number of machines in your data center does it make sense to put a whole team of people working on infrastructure code such as file systems. (I'm pretty confident, by the way, that Sun never recouped all of the money they poured into ZFS --- it's a project which is highly impressive from a business perspective, but from a business person's ROI perspective, not so much.)
One of the things I can definitely say about Google is that while it may be a large company, compared to IBM, it has a minuscule amount of bureaucracy. I used to sit on the team that worked on the annual budget for the Linux Technology Center, and that would be weeks and weeks of conference calls where the ROI of work items at the granularity of 6 to 12 persons months worth of effort for the next fiscal year would be weighed, judged, and decided. Which is something I'm glad IBM does as a shareholder --- but as someone who had to sit on those interminable conference calls, not so much. I get to do far more real, honest coding work at Google than I did at MIT (where I spent the bulk of my time on Lotus Notes, PowerPoint via Crossover Office, and conference calls.) The one good thing about having gone through a very dispassionate review on the ROI of various different bits of technical work is I can say with fairly great authority that there is huge amounts of work which makes sense from an ROI perspective for me (and a whole team besides) to do at Google, but which wouldn't make sense at most other companies, just because of the scale at which it operates.
If you are interested in working on very large scale systems problems, Google is definitely one of the best places in the world for you to do this kind of stuff. I know a tenured faculty member at Harvard who decided that it was far more fun to do systems work at Google, and who left his tenured faculty position for this reason.
It depends on your perspective. This also means that you can spin for a year or more just getting one feature out the door.
I think I had about 10 meetings over six months on whether addresses for Google Checkout would contain two or three address lines, and whether we needed a separate field for France's CEDEX postal codes. Some of this was justified as it involved complicated negotiations with external vendors too, and I had to negotiate with the guy who was hired to unify Google's internationalization libraries for Java.
But seriously, I'm not sure this was the best thing I could have been doing with my life.
If I remember correctly we simply came around to the exact same hacks I proposed on the very first day.
On the plus side, you learn from many, many different perspectives this way. It's like Peter Norvig's advice in "Teach yourself to be a programmer in 10 years":
1.) Get involved in a language standardization effort.
2.) Have the good sense to get yourself off the language standardization effort as quickly as possible.
Great way to learn, perhaps not such a great way to get things done.
Also, the guy they had doing the official i18n libraries had a default position of We Only Do The Right Thing. Admirable, but not fun to work with. So even if I proved to him that our downstream vendors, and indeed almost all French companies, handled these special French zip codes with a simple hack... that wasn't good enough for him.
Your story could be read in a positive way by an MBA class: "After much careful company-wide introspection, the smart guy's instinctive solutions were allowed to prevail."
Me? I would have given up on the process long before a year had passed.
Doesn't stop me from applying though :)
One of my Noogler classmates was assigned to doing backend indexing work when he really wanted to be doing frontend UI stuff. He left for Facebook after 5 months, which was a total manager fail, because we had headcount in Search UI and would gladly have taken him had we known he was dissatisfied with his current job.
But if I could get in on the RE < C or electric-vehicle stuff, hell yeah, I'd take a pay cut.
Google seems to be busy in many challenging areas, and after a Ph.D. in C.S., technical challenges look like a rare commodity in Montreal.
Google might have been hard to get into ten years ago, but times have definitely changed.