Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Is Google still a cool place to work?
107 points by offer_today on Aug 31, 2012 | hide | past | favorite | 122 comments
I'm most interested in opinions from xooglers. From what I see it's still a great company and great place to work. Some xooglers seem to think it's lost its luster. I'm trying to collect all opinions; I'm expecting an offer today.



I am a xoogler. Google is the best "Big Company" I have ever worked for. They're well organized for the size, very engineering centric, pay well, good perks, lots of travel opportunities. The engineering infrastructure and culture is the best I've seen.

That's the good. The bad is mostly typical big company stuff: you're a cog, you won't get significant choice on what to work on, you have to "play the game" to get promoted.

I left two years ago because I wanted to try a startup and it was the right decision for me. Much more diverse role, touched a lot more technologies, got exposure to a lot more interesting problems. YMMV


I've been at Google for about 7 years now and i really dislike what it is today compared to what it was back then. But that said, i still haven't quit because it's so much better than so many other places. Most people i know who quit either went to Facebook (either for the pre-ipo options or because it's apparently easier to launch things there) or to do their own thing. If you have to have a boss and work in a large organization then despite its many, many failings (for they are legion), Google is still by far the best option in software engineering. And the pay and perks are pretty good.

Also, if you are a new grad who like engineering, all of this is pointless irrelevance. If Google makes you an offer shut up and take it for at least 2 years. Even if the project you get is like stabbing yourself in the eye repeatedly, just reading the code in the core google libraries and figuring out why systems are designed the way they are and talking to random people will up your software engineer game much, much, much more than any other place. Talent here is not as uniformly spread as it used to be, but when you find it, the quality of people here will blow your mind. And if you get to work with them, you will up your game even more.



I work at Google, and I think it's great. Keep in mind that there are many, many different projects and groups at Google, and so the explicit set of things that you might work on will vary a lot. However, people can also transfer between projects after a year or two, so there is also plenty of opportunities to find cool work that you are passionate about.

As far as the "cog in a big machine" that people have talked about, it all depends on what you are comparing it against. Speaking as someone who worked at Big Blue for 8 years, people who are complaining about Google employees being a "cog in a big machine" have no idea what they are talking about. Compared to working at 10 person startup where you have no idea if the company will be able to pay your salary six months from now, but where you can have a huge outsized impact on the product, sure. But if you compare how many users will get impacted by your work at Google, compared to at a typical startup, impact is also relative and it all depends on what you are comparing against.

So if you want the adrenaline rush of working at a startup, Google will definitely not be for you. But if you want to work at a company which will very likely be around for a very long time, and where you can have a huge impact, Google is a really good place to be. I'm certainly very happy to be there.

And the biggest reason why I love working at Google? Nearly everyone I meet at Google are amazingly smart, and great to work with, both from a social and a professional point of view. Trust me, this is not necessarily true at many other companies....

(And as far as "shitty legacy maintenance" is concerned, I work in the same department as michaelochurch used to work in, and my team --- the production kernel team --- just recently finished rebasing the Linux kernel which runs in all of the machines in Google's Data Centers to the 3.3 Linux kernel from upstream. So for a month or two, I was a very well paid patch monkey. But then again, it's very careful, exacting work that requires quite a bit more analysis and deep understanding of the code that you might think --- and any mistakes could impact users all over the world. Personally, I found it very satisfying, and at the end of it, we had paid down a lot of technical debt and it will make future engineering work on the kernel a whole lot easier. And now, after taking a week in San Diego to attend the Kernel Summit, and the Linux Plumber's Conference, I'm going to take a week of vacation in Santa Fe, and then I'll be back to making file system and storage better for Google and for Linux.)


We need more of these posts and less about "weight management and free lunch."


Thanks for the info, Ted, and congrats on the referral.


I work for Google, and I think it's an awesome place to work, but I can see in my two years there how things have been changing in subtle ways. It's not a small company anymore, which hasn't changed how "cool" it is, but does mean that with so many other moving pieces that it's not as lean as a startup, where someone could - in principle - redo everything from scratch. The complaints I've heard from Xooglers tend to center around the technical aspect of working with a much larger codebase and increased ossification, rather than the company culture.

Still - Google has the spirit of a startup at its core. Engineers run the place, not execs. I like to say that there is very little "adult supervision" at Google; nearly all technical decisions are made bottom-up by engineers, and there is an active element at the center of the company culture to Do Things The Right Way.

If by "cool place to work" you mean, working with smart people, lots of perks (free food, massage, on-site doctor, all that), and a culture centered around doing amazing things, then yes, it's a cool place to work.


(Eight years at Google here.) It's changed a lot over the years and has certainly disappointed me many times, which any xoogler can also tell you. But every time I've considered leaving I've been unable to imagine some other work that gives me the same combination of high freedom and good compensation.

I've also seen the occasional person pull a michaelochurch. I've been lucky in that my random fun hacks have been seen as valuable work for the company. I could imagine things not working out under different circumstances (there's a large wing of the company working on boring Java apps that I don't think I'd enjoy). With that said, everything has a risk factor to it and the number of michaelochurches seems pretty low to me.

I think there are some things Google is very good at (giving you powerful toys) and others it's very bad at (launching products where UX matters, for example; maybe Marissa's departure will help there), so perhaps it also can depend on what sort of person you are.

(All the above and most of the other comments are engineer perspectives. Other non-technical positions, like reviewing ads for bad words, are reportedly much more variable on the awful spectrum.)


What is the michaelochurch controversy that keeps getting referred to?




Thanks for your perspective. I should have mentioned this is a software engineering position.


Can you elaborate on Marissa and UX launches? For example, as related to G+?


Reports (eg "In the Plex") have said she reviewed every UI change, above a fairly low bar. For instance, multiple meetings about exactly which shade of blue to use for various controls.

Some people say she brought a valuable discipline and consistency to Google products and held back the worst "designed by engineers" proposals. Other people say she slowed down launches, relied too much on non-scalable personal gut feel, and was arbitrary. I don't know. But if someone previously so central to UI launches leaves, things will at least be different.


Congrats on the offer! I will be a Xoogler as of about 2pm today, so you could say my opinion is at least fresh.

Google is an awesome place, and huge opportunities will open up for you if you do accept the offer. Google is still very highly respected and has a great internal culture. There is very little bureaucracy and a lot of autonomy allowed. My life basically completely changed (for the better) after joining and I'm a way better developer than I was 2 years ago. You can also read Steve Yegge's recent G+ posts about what he thinks of Google - I would say I am about 80% as enthusiastic about it as him ;)

The one thing I will say is that the team you're on matters. Google still has the great "don't be evil" policy which permeates throughout the company, but the teams are free to organize how they want. If you're into TDD and pairing, you may find a team that is into that and have a great time, or find a team who hates it and not. Google is big enough that there are teams doing things very differently. The good thing is that you CAN change teams, and there is an internal application that lets you do just that. It's not really that hard.

If you are deciding between Google and the other big SV players like Facebook, Twitter, etc, then I would just pick the company that seems to fit with your personality the best.


It's a large enough place to have many microcultures. Geo (Maps, Earth) is totally different from, say Android. YouTube's culture is nothing like Search and GMail's. And so on.

So after you join, go meet other teams and get to know the big picture. Then, you can seek a transfer to wherever you think you'd best fit in.


This is good advice, but be advised that you won't be able to transfer for 18 months.


I transferred after ~3 months because my original team wasn't a good fit for me. One of the topics that is mentioned during orientation is that Google is designed to be fault tolerant at multiple levels. If a server goes down, the workload needs to be able to move to a different server. If a Noogler is placed a team that isn't a good fit for their skillset, they need to be able to move to a different team. This happened to the person giving the orientation when he was first hired and it still happens today. Some people end up quitting because they can't adapt, while others successfully recover from the error.


that's weird, because my experience is exactly the opposite! I've spent about 4 months on my team so far, which has very little to do with my background, and after I realized just how bad the fit was, I started a conversation with my tech lead, his supervisors, and some HR people about moving to a team that would be a better fit (which had openings at the time).

3 weeks of conversations later, I was told that the 18 month rule was "fair" in everyone's opinion, and that if I'm really concerned about working on projects that are interesting to me, I should just find one to spend my 20% time on (easier said than done).


In my experience the 18 months 'rule' is much more a guideline than a hard rule. I've personally seen a number of cases where someone transferred much sooner than that for a variety of reasons.

If you approach situations like this in a constructive and professional manner, the company will go to great lengths to find a solution. At least that's been my experience.


unfortunately, it certainly doesn't seem like the company does this all the time. i got placed onto a team which has no bearing on my background experience whatsoever, and after approaching my tech lead and some HR people to continue the conversation, everyone else decided to agree that the 18 months guideline was "fair" and that the 20% projects were there to satisfy my need for interesting problems.

i had potential teams lined up (one of which I would've been allocated to initially, had they not hit their new grad hire cap), so it was certainly a very frustrating experience. perhaps they care more about established engineers than recent graduates?


I thought you could ask for a reallocation right away. The 18 months might be if you stay more than a couple of months in your preallocated position.


18 months? That's a problem if you have the bad fortune of being put on a project you don't enjoy. I've heard you have little to no say in the project you get assigned when you first join, is this true?


No, while this was once true, this is no longer true at all. You should know exactly what team you will be working on before you ever get an offer.


This is also not entirely accurate. I got my offer a good 5 months before I even knew which teams I had a chance to speak with before the allocation process, let alone before I knew which team I would be placed on.


That agrees with my experience. I got team information yesterday and expect an offer today.


My advice is reach out to the team and talk to the engineers on the team. Even meet up with them for a Google lunch.

This is the best way to align everyone's expectations.


When I got the offer, I interviewed the 6 teams from two product areas before I accepted the offer.

This is always good advice whether the offer is from Google or a Big Bank.

Talk to the manager, talk to your coworkers. Once they give you the offer, their job is to market the job to you. Use that as an opportunity to interview your future coworkers. When I was considering finance job, I've even gone as far as asking the future coworkers to implement different algorithms and/or talk about their system architecture. If it was too crazy, it was an immediate sign that I won't be happy there.


Congratulations on the offer! I don't currently work there, but from what I've heard, it's still pretty good. It may no longer measure up to the Google of yore, but I'd still look very favorably upon Google compared to the average working conditions for software developers today.

The folks who seem down on it have legitimate gripes (e.g. you're a cog in a large machine, management is intentionally sparse, hard to get promotions), but I think it really depends on what you want out of a job. If you want to be your own boss or expect to remain a big fish in whatever pond you're swimming in, Google's probably not going to work out for you.


That sounds about right to me. It's very good for what it is (a large successful IT company where you're going to be a cog in a large machine)

But I don't think it's what many are looking for, or at least, not me.


So I'm an ex-Google employee and I can tell you that is an earnest, but ultimately unanswerable question. Google, like any organization, changes over time so for some it wasn't cool before but now it is, for other it was cool and now it isn't, and for still others it never was and may never be a cool place to work. (And of course those for whom it will always be a cool place to work, looking at you Larry)

Engineering work is generally referred to as "R&D" which is short for "Research and Development." That is a spectrum where Research results in a peer-reviewed paper, and Development results in a shipping product. For many years Google was pretty hard into the R side of the equation for most people, and hard over into the D side for a smaller group of people. It created a lot of unhealthy tension where the groups were near each other.

It was a little too much R and too little D for me, I prefer working on problems that have an impact on the business as opposed to just pure coolness factor [1]. But a number of people I know are quite happy just working on science projects.

Also note this is no different than Sun Microsystems for the 10 years I was there, it went from Workstation company to Enterprise Server company to Web services company. Very different companies all in the same skin.

So the only thing you can do is interview, accept if they offer a job, and form your own opinion.

[1] In full disclosure I would have liked to have worked on the Self driving car since it combines my interest in robotics with programming/engineering but alas Sebastian turned me down.


Sigh. How do I answer this with new content?

Let's try this: throw out anything you may have heard about the company prior to 2012. Don't believe any of the marketing. It's all changed, and I'll let you figure out whether that's a good thing or a bad thing. You need current assessments of what it's really like. Then you have to determine whether to believe them.

Finding those assessments should not be particularly difficult, since something obvious has changed. It used to be that if you worked there and weren't one of the "blessed PR people", then you didn't talk about it. In fact, a lot of people wouldn't even mention they worked there. Now it seems like any post about the company brings out the Astroturfers. They all seem to be recent hires and so are probably still in the "honeymoon" phase where everything is sparkly and shiny and nothing could possibly be wrong.

You might also consider that others are quite simply stuck there, and are not going to jeopardize that relationship. Maybe they have one of the Valley's infamous sky-high mortgages, or perhaps they have one of those work visas which amount to legalized slavery keeping them bound to their current master.

Finally, ask yourself this: what are they actually doing as a company, and do you want to be a party to it? That is, assuming you care about such things.


Now it seems like any post about the company brings out the Astroturfers. They all seem to be recent hires and so are probably still in the "honeymoon" phase where everything is sparkly and shiny and nothing could possibly be wrong.

Holy strawman, Batman!

You might also consider that others are quite simply stuck there, and are not going to jeopardize that relationship. Maybe they have one of the Valley's infamous sky-high mortgages, or perhaps they have one of those work visas which amount to legalized slavery keeping them bound to their current master.

Two thoughts. One, having Google on your resume typically results in an offer that is greater than what Google pays you, so anyone that has a "sky-high mortgage" can probably leave Google safely at their leisure. (This is not specific to Google, of course. Job + 1 always offers you more money than Job + 0, otherwise you would reject their offer.) Secondly, Google lets people on visas pick the type of visa they want, so there is no need to bind your employment status to your immigration status. (Also, it's tech: prove you have even the most minimal ability to click shit in Eclipse, and all the money and visas you can ever want are yours. If you feel trapped in a tech job, you're doing something wrong.)

Anyway, it's clear from your comment history that you didn't have a good time at Google. Everyone is unhappy with their exes: that's why they're exes. But it's silly to assume that everyone that does like it is mentally defective in some way or that they're all working at Google enslaved by financial or legal obligations. I may have only worked at Google for 8 months, but I still like it as much as I did when I started.


[deleted]


I went to lengths to not give an actual judgement here, and you come back at me personally. Awesome job.

Again, do not rely on that which was to judge that which is. Do your homework and don't assume things are the same.


How long have cletus, nostrademons, and mdwelsh worked at Google?


I have no idea who they are in real life, so I can't say.

The deleted comment was not written by any of them.


I just saw this and don't know the context, but I've been at Google since Jan 2009, so almost 4 years now. Assuming mdwelsh is Matt Welsh, he started his sabbatical in June 2010 and left Harvard full-time in Nov 2010. Cletus started right around then as well.


When you get an offer the answer is generally the same:

Go and see for yourself, otherwise you might regret it.

But yes and no, most googlers I met still love it.

Some of them feel that theyre too late, and that had they joined a few years earlier theyd be in a position where they could actually be more successful instead of being a workhorse.

yes it's a cool place, but the right place, I don't know.


From my xoogler and googler friends, its the best big company you could possibly work for, and better than 95% of the medium/small companies as well.

Obviously its not a perfect fit for everyone, but for most it is.


Not an ex-Googler, but I would ask if "cool" is a metric that you should use as a decision point for choosing whether or not you are accepting any job.

Here are some things that you might want to ask yourself during the decision making process:

* Did I meet my future coworkers? Did my gut have any red flags about any of them?

* Did the prospective work I'm applying for interest me?

* Did the work environment / culture of the team I'm going working with appeal to me? Work environments and subcultures can vary wildly by department in large companies, so sometimes the company's overall reputation may not be representative of the sub-environment you're being recruited into.

* If "career path" is important to me, does the company offer that for the position I'm being recruited for?

* Will I learn anything by being there?

* Does the overall structure and the way the company works fit in with what I'm used to? This is highly personal - what fits one person may not fit another.


"Cool" is a deliberately vague metric to get people to talk about what they like/don't like.

Your other questions are good and I certainly won't neglect them.


A little under two years ago I got offers from both Facebook and Google. The Google offer was a lot bigger (including in stock, the break even point was a valuation of 50 bln), but I accepted the Facebook offer instead, because I knew I'd only get to work on the kind of infrastructure projects I wanted to work on at Facebook. Bootcamp beats the hell out of preallocation for things like this.


> The Google offer was a lot bigger (including in stock, the break even point was a valuation of 50 bln)

That is close to FB's valuation (40bn today) now....


The break even point for buying the stock options was a $50bn valuation. Current Google market cap is $225bn. That's a big upside.

The market cap of FB is irrelevant to the valuation of Google stock options.


On my team, most of the disagreements that come up are still technical issues. That's pretty good IMO, considering company size. Yes it has its fair share of issues, but having worked at some companies several times smaller, this one is pretty darned good.


(ex-Googler here)

Do it. It's a great experience.


I did an internship last winter, and will likely do one again this winter. It was a great experience, and I'd consider it an awesome place to work at :)


I've never worked for Google, but here's some thoughts on your offer. These may all be obvious to you, but for the benefit of everybody..

0. You have an opportunity of real power to shape your financial future in the small window between when an offer is made and when an offer is finalized. These negotiations commonly take a few days. In those days, your effective hourly rate for your strategizing and execution of the negotiation is far far higher than what you earn as a software engineer.

1. I hope you've taken everybody's boilerplate negotiating advice and not put yourself in a hard position over money. Did you tell them early in the process exactly what you're currently making? Or exactly what you want? If so, next time don't do that. Even if somebody tries to button you down, just finesse it a bit. "Dollar amount isn't the most important thing, yadda yadda" and ask them to give you the range they're considering to ensure you two are in the same ballpark.

2. Accept this fact: It's OK to earn 10's-of-percent and/or 10's-of-thousands of dollars more than your previous job. In fact, compared to other professions with similar skill requrements I think software engineers are underpaid as a whole and we all should work to fix that.

3. Never accept any offer on the spot. Remember that companies, even Google though certainly to a lesser extent, are making best-guesses about how much to offer somebody. There is a range there. You probably have not maxed it out on their first letter. Tell them you sleep on all big decisions and you'd call back tomorrow.

4. Ask for more of something. They have a lot of perks, but it could be options or base salary. If you cannot get them to budge in those, move on to other benefits like signing bonus, vaca time (this matters less at Google and the myriad other tech companies here that have open-ended vacation policies)

5. It's OK to give back some things (signing bonus for example) in exchange for a higher base rate, but obviously don't offer that up at first.

6. Show humanity. You're negotiating with another human. And only one of you his your own wallet on the table. Suppose for the sake of argument you've been making $110k as a mid-level engineer at a startup. That is low, but you've been there for a few years, you've earned a lot more experience. Their offer is $130k. Show humanity, something like "First, i'm thrilled (almost giggling) that you've made this offer. And we're allllmost there. Obviously it's a competitive market and when I look at where I'm at now, and my experience, well I just don't want to feel like I'm taking a step backwards. I need to do what's best for my family and my thinking is currently in the $145-150k range." This has the benefit of being true. We all do have these anxieties. You just are bringing them into the discussion.

If you ever told them you make exactly $110k then obviously you have to be a little more careful how you word this plea (and seriously, don't share that info next time, you don't have to share it). But doing what's best for your family, and a need to not feel like you're taking a step backwards, are powerful human emotions that can help you from looking like a craven opportunist. Even if your family right now is your dog and your girlfriend.

They will probably counter on something. They will NOT revoke the offer because you had the nerve to ask for more. That maybe happens in less demanding, less skilled jobs. But you're a professional making 6-figures. Having a little savvy isn't a bad thing. And if for any crazy reason they did, then you definitely did not want to work there anyway. Obviously a seed-round startup has different economic realities, but that's not who you're working with here.

I could talk for hours about this, and I also think you shoul d read a bit about basic negotiation strategy. And as always YMMV. But these general concepts have served me and my family very well.


> 1. I hope you've taken everybody's boilerplate negotiating advice and not put yourself in a hard position over money. Did you tell them exactly what you're currently making? Or exactly what you want? If so, next time don't do that. Even if somebody tries to button you down, just finesse it a bit. "Dollar amount isn't the most important thing, yadda yadda" and ask them to give you the range they're considering to ensure you two are in the same ballpark.

As both an employer, and someone that has previously been a hiring manager, this can be counter-productive.

If you think you're underpaid, say so. Don't try to cleverly wiggle your way out of sharing your salary, because what you're doing is obvious. If you don't want to give your salary, you can say "I prefer not to say", but we know what that means, too.

We've offered $30k more than someone's current salary because, by our assessment, they were grossly underpaid. Their current employer came back with an even better counter-offer that we couldn't justify or afford, but the candidate chose us. Their current employer had sunk any goodwill by paying so far below market rate.

As you noted, in many cases, "only one of you his your own wallet on the table". Of course, currently, as a self-funded employer, I do have my wallet on the table too, and I'll tell you as much. We pay market rate, we pay fair, and we negotiate honestly, but we don't play weasely negotiating games.

The best negotiating strategy is to be firm, honest, straight-forward, and to have the substance to back what you're asking for. Stand up for what you want, but don't try to weasel your way into getting it. That'll garner you far more respect than playing games during negotiation.


My current job hired me at a 40% raise. This was after telling them exactly what I made. And I did exactly what you said: I told them I knew I was underpaid.

Now, I'm pretty sure I could have gotten another 10-20% if I had not given them this information. But really, I'm getting paid what the job's worth, so I'm not complaining. If I thought the job was worth more, I'd have held out for the last bit. They did mention my existing lower salary as a reason they couldn't offer more, too.

I understand both sides of that. They have to be sure I wasn't being paid low because I can't perform, and I want to get paid what I'm actually worth. When you're as badly underpaid as I was, it's rough. I should never have let myself get into that position.


Appreciate the perspective.

In this job market, if you've got an experienced candidate, and he tells you, when you ask, that his current salary isn't important, that we don't want to get hung-up on dollar amounts right now, do you perceive that as he's currently underpaid and/or coming from a positon of weakness?

I've never felt perceived that way. And I have always shared information about my current comp package later in the process, after we've gotten range-setting out of the way, after we've both had an opportunity to drop anchor so to speak. So maybe I wasn't clear about that. I added an "early in the process" to the post.


How does sharing their previous salary benefit the prospective employee?


If it's a high salary, it benefits. In my experience, the ranges people in our industry get paid are sufficiently broad that not sharing your salary can result in serious offers that are, well, not so good.


As somebody who took an offer from Google a year ago: I debate the merit of point #1. I openly shared what I was making (including bonuses), and I got an offer that I was quite happy with. No negotiation required.

In fact, I do make a point of telling HR departments that I don't negotiate. They have one shot to make me an offer, and either it's good enough or not. As far as I can tell, this has worked fine for me so far (25 years and counting) - and takes the entire haggling component off the table.

If you're a person who actually enjoys negotiation, this is obviously not valid for you :)


Absolutely - negotiating strategies are not zero-sum. There are many ways to achieve a favorable outcome. And you telling them up front you will not counter offer is a negotiation strategy.

There's certainly a number each of us would be happy with. I find that some people look at this as a point, others as a line. I (obviously) see it as a line, and I want to get a number that's as far along that line as possible.


I've already shared my existing compensation, and I'm not drastically underpaid. If their offer is not 15% better than what I'm making now, it will make me think they aren't that interested in hiring me.


Although I'm not an employee, whether someone thinks it's lost lustre or not, is rather irrelevant. What's probably more important, is whether it's cool place to work presently and in the future, and how that compares to other options.

Speaking to many xooglers, I get the impression it's awesome, and would be a great opportunity in all likelyhood.


I've for a few friends who work over there - some of the having gone to Google only recently - they all love it


I joined few months back - it's really a great environment in many ways. Plenty to learn and grow, variety of projects to make an impact, great colleagues, culture and amazing perks. I have heard things are difficult regarding promotions. But definitely an engineering experience to be had.


It's probably relative at this point. I have some friends who've switched in and out of Google, and while it may not have the same sort of luster it had before, they all seem to agree that it's better than where they used to work, or where they work now.


Does anyone know what it's like for non-coding jobs? (Analyst Positions)


can you please post the way you prepared for technical interview. Just what you think can help someone who is preparing for it. what kind of questions they asked ? any thing to watch out for..


This is the best book on technical interviews for places like Google:

http://www.amazon.com/Cracking-Coding-Interview-Programming-...


I second this, helped me a lot, too. In particular, it covers a wide range of topics, each with some introductory exposition, and gives a variety of example questions with answers.

Additionally, glassdoor.com has a lot of user-contributed interview questions and lets you search for/filter by specific companies.


Does it just prepare for code interviews, or do you actually learn something useful with it, besides getting a job?


It is for interviews. You should already know the useful stuff for your job. The best you can do that is relevant to both fronts is

Work through CLRS algorithms book

Practice explaining technical ideas in spoken conversation.


When I interviewed, I studied this book cover to cover for 3 months prior to the interview. It definitely came in handy: http://www.amazon.com/Algorithm-Design-Manual-Steve-Skiena/d...

There's also lecture videos here: http://www.cs.sunysb.edu/~algorith/video-lectures/

Learning data structures that you don't use often, like bit arrays, come in handy for interviews, especially for when they ask you to optimize your solution. (http://en.wikipedia.org/wiki/Bit_array)


The Steve Yegge blog post.


This is the post tonfa@ refers to: http://steve-yegge.blogspot.com/2008/03/get-that-job-at-goog...

I believe some recruiters actually send it (or a modified version) to candidates who ask how to prepare. I'd also recommend the book "Algorithms for Interviews"


Yes, this describes how I prepared. The questions were not as difficult as the topics Steve listed.


I have always preferred micro companies because of the freedom to drive the chiefdom from your humble developer positions. I remember an article about an Apple engineer developing first Mac to run on X86 architecture. This is an example of micro company that Apple has always been and I doubt any company, including Google, can match it.


Apple have 60,000 employees now. They are not a micro company any more - why would they be able to feel like one? Obviously some engineers would have worked on the original x86 Macs, just as plenty of engineers at Google worked on the original Android software - that doesn't make it feel like a small company.


"They are not a micro company any more - why would they be able to feel like one?"

It can be done, but it takes a lot of work (and by "work" I mean "the pointy-hairs leaving the engineers the hell alone". That seems to require a huge effort in some companies.

The old-school name for this is "skunk works".

http://en.wikipedia.org/wiki/Lockheed_Skunkworks


Noted on the skunkworks thing. I do think in general though that managers do fairly well at leaving engineers alone at Google; the big company feel seems to come from engineering inertia a lot - inflexible coding standards, groupthink on which technologies to use, etc.

Mostly though I was hoping for a little clarification from the parent poster of why Apple should feel like a small company more than Google does - both would seem to be great places to work, but I wouldn't expect either to feel small.


I was there for 18 months or so. Google is absolutely a great place to work. I remain very fond of them and an organization. Lots of awesome people.


Where are you located? If you're in NYC, I'm a new hire there now.


Cambridge. I start orientation in MV on Sept 17.


Google's problem is that most of the work is shitty legacy maintenance. If you can get on one of their machine-learning or research projects and have a good manager, you'll have a fantastic experience (and I say this as a notorious Google detractor). Take the offer seriously but negotiate extremely hard on project allocation because it's really hard to transfer to a good project if you start in the wrong place, so your first project is the difference between an awesome Google career and shit. And most people get shit. Good luck!

ETA: Google would be awesome if it adopted the Valve culture where employees are trusted to allocate their own time, but I wouldn't hold my breath.


Do not, under any circumstances, take this guy's advice or in fact listen to anything he says. Anyone who was an engineer during his brief tenure is well aware of just how much he self-destructed and how much he's living in a fantasy world. The only problem here is that to an uninformed observer some of what he says looks plausible.

As for the OP's problem: a lot depends on your options, your experience, what you're hoping to achieve, what you'd like to work on, what office this would be in, etc. There are tons of variables.

Speaking as a current Googler, it is a fantastic place to work but it's not suited to everyone.

tl;dr it depends.


I don't have time to respond to this ad hominem smear. Yes, there was some blowback related to my attempt to save a failing product. I learned a lesson and moved on.

I'm not anti-Google. I want the OP to have a great Google experience and to do that he needs to negotiate hard on project allocation.


As a random HN user with no connection to Google who has seen what happens when you comment on stories about Google here (it's a shit storm), might I humbly suggest that you consider not commenting on stories about Google? It seems to always turn into The Michaelochurch Show when you do. Not saying your opinions aren't valid, but I think your contributions re: google are unfortunately not useful because they inevitably spawn arguments about your character.

Take one for the team and sit out the Google discussions maybe? That way when you have a contribution about some other topic, people will see you as a person and not "that crazy ex googler whose credibility is highly suspect." :)


I don't think he should sit out Google discussions. He had the experience he had. Others have the experiences they have. We're all capable of assessing his reports for ourselves.

I might add we're also all capable of assessing the responses of Googlers to his reports for ourselves, and those responses don't always speak well of Google.


And we've almost all seen what's happened to Gmail, Google Reader, Google Labs and 20% time.


Mayson, can you be more specific? What has happened to them?

Gmail: I can't think of anything negative that's happened to Gmail in recent times (unless you didn't like the UI redesign - there are certainly mixed opinions on that), and certainly the performance and uptake of Gmail has only improved.

Google Reader: Not much new happening, but it's still running. Are you referring to the changes in the sharing model? Whichever sharing model was better, surely you can agree that having one unified sharing experience across Google produces results in a more streamlined product, and at least this was a step in the right direction.

Google Labs: Was closed down, yes. I still don't understand how this relates to the parent post. My thoughts on closing down labs: Labs was supposed to be a way to get ideas out there in the wild before turning them into a fully-supported core product. This was great for the engineers who had built these things (they got to see them used), and the early-adopters who tried Labs products. However, as time goes on and nobody's doing any development work on a particular thing in Labs anymore, there is still an operational cost to other engineers at the company who have to keep the thing up and running. Since it's a 'Google' product, the brand image is at stake, so we can't just let them wither. So I think it's reasonable to decide to have each labs product either shut down or integrated into a core (supported) product. Perhaps it would have been better to chuck all the old labs and start again, with a published policy that things in labs will either be fully supported or completely gone 1 year after launch (or something). The removal of labs is a signal that there's more red tape around launching new products than there used to be, but I think that's inevitable as a company grows, and more than some engineer's weekend is on the line if a lunch goes badly.

20% Time: Still as strong as ever, from what I can tell. About half the engineers I know have a 20% project, and there's nobody who doesn't have one who wishes they could have one. Most of the time if people don't have a 20% project it's only because they find their core job interesting and diverting enough that they don't have a desire to split their time with a side-project. Despite what some people have claimed on HN, your manager can't deny you from having a 20% project if you want one.

(I work for Google, but not on any of the products mentioned above, and I (willfully) don't have a 20% project. These are my opinions and not necessarily those of my employer.)


Despite what some people have claimed on HN, your manager can't deny you from having a 20% project if you want one.

Theoretically, managers can't block you from having 20% time, and there's no official permission process you need to go through to take it, but if your manager says, "I'll fuck you over in Perf if you do a 20% project", then you don't have 20%-time.

What I'm told is that, before 2007 or so, Google actively worked to avoid manager-as-SPOF, and that this is what made Google great. But then they hired a bunch of executives from mainstream large companies and didn't tell them to wipe their fucking feet off before coming inside.


> if your manager says, "I'll fuck you over in Perf if you do a 20% project", then you don't have 20%-time.

I find it hard to imagine a manager could get away with saying that, but even if they did, I think it would be an empty threat. Perf is designed so that the manager is not a SPOF, your peers' reviews are considered at least as important as your manager's review. It would be pretty obvious if there was a big discrepancy between what your manager says and what your peers say, which would call your manager's review into question. The only way this would be a problem would be if your peers give you bad reviews too (and if that's the case, then maybe, just maybe, you need to take a look at yourself).


See, I have absolutely no objection when people speak positively of their Google experiences. A lot of people have good Google experiences, and they should. I didn't. I had a shitty one.

What I find ridiculous is that any time I say something about Google, people leap into ad hominem attacks without even reading what I have to say.

You know what I did to piss these people off? Absolutely nothing. I've never met most of them. I'm surprised they even give a shit about me or what I have to say.

It's never the powerful people getting indicted who crush whistleblowers most with the most fervor. It's other peons who want to stick their fingers in their ears and say, "nanananan-I-can't-hear-youuuuu!" in the face of depressing news.


Maybe it has something to do with the way you say it. Maybe you meant to say, "I had a shitty experience at Google", but you accidentally typed, "most of the work is shitty legacy maintenance". Maybe you meant to say that you were not satisfied to start out with the other Nooglers in intro jobs and prove yourself by working your way up, but instead you said that most people start out in shitty jobs and never escape.


What I've observed is that most people at Google are working on shitty legacy maintenance.

I was in New York, which is generally considered to be slightly above other satellites on the project-allocation heap but far below Mountain View, because that's where all the players are. Most people I knew were on uninspiring work, although there were exceptions, but you generally had to be Senior SWE or higher before you were even considered eligible for the good projects (and even some people at Sr. got shafted).

Google has a palpable "Real Googler Line". Above it, you're free to transfer and work as you wish. If you want to change teams, just decide to do it. Hell, Steve Yegge quit his project in public. Below it, you have manager-as-SPOF and one-assigned-project... banking without the upside. When I was there, the RGL was moving upward to somewhere between Senior and Staff.

I don't know why you have a chip on your shoulder against me. I never did anything to you.


You are maligning my company.

You could not figure out how things worked at Google, and expected people to start following the new guy who had only been there a few months and hadn't actually accomplished anything yet, and when people didn't drop the 100,000 engineering years of accumulated wisdom to listen to you, you started believing that it must be the system that was broken and not you.

And that was fine; you can believe whatever you need to believe. But when you start spreading this delusion outside of Google, you are hurting Google.

Most nooglers get a legacy job to start out. When you prove yourself, and people like your ideas, you will be asked to join other projects. You were only there for a very short time. In order for you to transfer to another project, that project has to want you. Without any accomplishments...

And you quickly developed a reputation as the new guy who was publicly lecturing everyone about how things should be. You told them that their languages of choice were all crap, when they were the ones actually getting work done. Despite how talented you think you are, can you see how that might be a turn-off for any team thinking of taking you in?

All these things you claim are you projecting: 1) Most work is shitty legacy maintenance. (You didn't like your first assignment.) 2) Google doesn't listen to reason. (Google does not give carte blanche to nooglers.) 3) There is no way out of a shitty first job. (You couldn't hack your first assignment.) 4) There is a glass ceiling. (You were alienating people.)

When you present your paranoid beliefs as objective facts, people who don't know any better might believe them. That is why I have a problem with what you post.


You, sir, are deeply wrong.

You are maligning my company.

YOUR company? You're telling me you get your pick of the best projects, and that you have at least one of triumvirate on speed dial any time you want to hash out an idea? You think those SVPs and VPs and managers-of-managers-of-managers you're putting yourself out there to defend give a shit about you? Ha!

But when you start spreading this delusion outside of Google, you are hurting Google.

Google is chock-full of high-ranking people making bad decisions. They are hurting Google. I want Google to succeed. It had a great run and a really great culture... for a while. It would be good for the world if it went back to such a state.

Without any accomplishments...

Google's problem is that there are a lot of influential but underqualified people who think that if you didn't do it At Google, it doesn't count; you didn't do it at all, and you don't know what you're talking about. Now that is the epitome of corporate arrogance. And it led to some absolutely stupid product decisions, which I won't name but they're relevant to this discussion.

You told them that their languages of choice were all crap

Google's limited language white-list (C++ and Java only, with Python deprecated in production) is a bad decision. C and C++ are the right tool for the job in some cases. I like Go, but I haven't done much with it. My problem is more with the short white-list and the bad justification for it than with the languages themselves. (Although there is no justification for Java over Scala in 2012.)

I disliked C++ then more than I do now. The quality of C++ code I fell into was pretty bad (object-oriented spaghetti) but that kind of code can be written in any language, and so can good code.

You couldn't hack your first assignment.

Wrong. I didn't get into what happened or why I left, but it wasn't a performance issue. My manager was unethical and lied to me and it caused a lot of hardship. Among other things, he promised a 3.4 rating to prevent me from seeking transfer (I agreed to stay on his project in exchange for a decent number) and then gave me something lower (making transfer impossible). If he had been a decent person and kept his word, I'd have stayed on the project for 18 months and things would have been fine. But I lost all faith in him after he openly lied to me in order to keep me on his project. (He also bait-and-switched me into joining his project, promising work on the new system but putting me on the old one. I gave him the benefit of the doubt on that one. Priorities shift unpredictably and it's often not the manager's fault. Lying about the Perf number was unforgivable.)

There is a glass ceiling.

I never made that claim.

That is why I have a problem with what you post.

I doubt that's all of it.


Will you two please just stop this?


Why? I find both perspectives very informative.

Please don't let your personal relationships spoil an informative (if sometimes heated) discussion. That kind of kills the "hacker" spirit.


Please don't misinterpret anything Michael Church says as being informative. The man is crazy. Like, paranoid schizophrenia crazy. He was banned from Wikipedia not just for vandalism, but for trying to blackmail wikipedia admins by threatening more vandalism (http://en.wikipedia.org/wiki/User_talk:Mike_Church). He will, of course, claim that this was all a conspiracy against him by the Wikipedia admins, just like he claims that Google management was out to get him. See also http://en.wikipedia.org/wiki/User:Isomorphic/Minions_of_the_....

At Google, Michael Church is infamous. Practically everyone has heard of him. He is known primarily for having posted many insane rants to a company-wide mailing list. These threads literally consisted of Michael Church writing a wall-of-text rants followed by leagues of coworkers replying to say, in effect, "For the love of God would you shut up already?". He had few, if any, defenders, yet he pretty much ignored everyone and would keep posting unapologetic follow-ups. He would say the same things internally that he now says externally. He is the best proof there ever was that Google employees can say anything they want and not get fired.

To this day, Michael Church is still a popular meme. As in, literally, we have a meme template that is a church with an M on it, and we (his former peers) use it to mock him. He is that crazy.


He's supposed to be the crazy one, and yet you're still arguing on this 4 day old thread everyone else has forgotten about? Will you please just let it go?


I was hired at Google at nearly the same time as a certain famous ex-Googler. Both of us were given difficult intro jobs with legacy systems, the sort of projects that chew up engineers and spit them out. It's a chance to prove your mettle.

One of us attacked the problem head on, taking on tasks that would normally be "below" us. In the end, the bad project taught him what he needed to know about Google engineering. He replaced the legacy system with modern infrastructure, which brought him public recognition from the senior VPs, new opportunities to work on interesting projects, and nomination for promotion.

The other one of us decided that he was too good for his job. He very publicly whined about how it was below him and how the only way to get ahead at Google is to start out in one of the interesting jobs. Rather than work his way up through a meritocracy, he expected to be instantly recognized for his natural genius. He got poor performance ratings from his peers and manager, and eventually rage-quit after about six months.

It was the classic Goofus and Gallant story.


That's radically inaccurate but I don't have the time to set you right.


As the author of more centithreads than God himself, you don't have time to reply to a comment on the Internet?

I'm kind of impressed with your restraint, actually.


Of course you don't. You are too busy writing the shiny new stuff.


Well, I was there for six months over the course of two internships in two different offices, and nearly everybody I met was excited about their project. I know you had a bad experience, but I think this is a little bit of projection. I would be extremely reluctant to, based on such a short time at the company, decide that most of the thousands of engineers are working on shit projects.


Since this comment is currently at the top, I feel I have to add that michaelochurch's overall Google experience was an extreme outlier, as is well known internally at the company.


People who are currently at Google will obviously not be an unbiased sample of all people who have ever joined Google.


My experience at Google has been nothing like what you describe. There's a ton of interesting work being done, and from everything I've seen, a culture extremely supportive of internal transfers.


Every time I see you write, i get the picture of a drunk guy in a bar walking around saying "lemmme tell you about the time i worked for google" in slurred speech to anyone who will listen.


Damnit - you're comment made me snarf coffee all over my laptop. :-)


As Google customer I wish there were more strong professionals at Google who like legacy maintenance.

Today I received email from Google AdSense about change in their system. The only important part of the change was not even mentioned in that email: AdSese lost my payment information (alongside with all other AdSense users I assume) so I have to re-setup payment information again.

Strong team would be able to preserve customers' payment information during system upgrade, but it wasn't the case today.


I don't want to speak on behalf of AdSense, but there are often good reasons for this.

In the project that I did for another product, we required users to re-enter their payment information to revalidate the account and ensure that the user still had access to the instrument. That process was done to protect the user's instrument.

As I said, I don't want to speak on behalf of AdSense and I'm not familiar with their processes to speak with any authority.

In any case, the change and the reason should have been very well documented and messaged to you (we go through a lot of internal user testing even on these mundane processes). If not, please reach out to the consumer operations team, they should be able to resolve your concerns.


I would highly doubt that they dropped everyone's payment information. Think about how much money would be lost from people not willing to overcome the inertia and re-entering their payment info.


It could be that management hopes for that -- due to publishers' inertia AdSense will delay payments them.

I wonder if that delay would improve GOOG Q3 revenue results.

Edit: it seems I guessed incorrect (due to GAAP).


You report revenue and expenses during the quarter in which they were earned, not when they're paid. So a delay in payment wouldn't change their Q3 filings at all.

Beyond this, Google makes a profit from having both sides continue to participate. The more ads they can show, the better. Hampering one side of this equation for temporary gains that only really improve how you look to Wall Street (not how you're actually performing) is silly, and seems completely counter to how Google typically works.


I agree that it does not make sense from long term business perspective.

But then what's left?

I know for sure that my own payment information is gone and it coincided with AdSense system upgrade.

Can anyone with AdSense account share if their payment information is still set?

But even if it's just my payment information lost - it's not a good sign about quality of engineering at AdSense.


That's not how GAAP works.


> ETA: Google would be awesome if it adopted the Valve culture where employees are trusted to allocate their own time, but I wouldn't hold my breath.

I don't see how that's supposed to work. From what I understand it's too big and clunky. A lot of dpts don't even know others exist, some groups are just a product bought off other companies and kept in tact.

The way I see it's too big and diverse to be able to have such a structure.


I had seen your earlier comments and asked Googlers how hard they thought it was to change projects. They said they hadn't ever encountered another company that made it easier to change project than Google does, and wanted to know if you had encountered such a company.


Just for some context. I started a couple months after this former Googler and our work backgrounds prior to Google are pretty similar.

In that time, I started out on an underappreciated starter project, did a hackathon for Hangout, filed some patents for that work, did 20% work for an yet to be announced project, and now building out a completely new yet to be announced product.

Google is a place that really allows you to find something that interests you and encourages you to do that. Internally, people are always looking for people to put in 20% work on their projects; so if you come across something that interests you, nobody is there to stop you.

Personally, if I was only to work on one project for my entire tenure, I'd be bored out of my mind and be looking elsewhere for opportunities. At Google, I can feed by project-ADD within.

One thing you learn at Google is that it really humbles you. You really are working with really intelligent people and you need to have some faith in your fellow coworker. Everyone has something to contribute and you can learn even more than you can teach/preach. Much of the issues with this former Googler is that he may have had some good/interesting ideas but he failed at garnering support. It doesn't help when he publicly on a global mailing list dismissed coworkers that have a significant amount of experience and real world accomplishments in the field that he was advocating.


Much of the issues with this former Googler is that he may have had some good/interesting ideas but he failed at garnering support.

I had widespread engineering support, actually. The problem was that (a) the people managing that product didn't understand the importance of quality in content, and (b) they were under obscene deadlines (which almost certainly wasn;'t their fault).

What really kicked me in the shins was when an executive, pissed off that people on his team agreed with what I was saying being the right way to go, threatened to damage my Perf ratings. My manager promised to protect me (he promised to "peg" me to 3.3-3.4, which is decent) and didn't deliver. After that, I started looking for transfer opportunities, because I'd caught my manager in a few lies but that was a big one, and I just couldn't trust my manager after that.

It turned out to be easier to get a job outside of the company, so I did.


I had widespread engineering support, actually

From what I saw on the engineering-wide mailing list, where you told people who had many more years of engineering experience than you that they were full of sh*t, I'm sorry to say, no sir, you didn't have widespread engineering support.


We're talking about two different times. The RGI had a lot of support, and everyone who knew about it knew that it was the right way to go. That was in late July/early August before management started cracking down on internal dissent (the first Real Names PIPs were getting served around late August/early September).

Eng-misc went to hell about a month after that. By that point, it was obvious that RGI was going to fail due to executive pressure and that higher-ups were cracking down on internal dissent, so only the loyalists were even speaking up.


So what are you doing nowadays, anyway?


I stopped telling people where I work after Google. (Someone from Google tried to fuck up my next job, and Google refused to investigate. That's the main reason I hate Google's management. If they'd done their professional duty and investigated and fired the rat bastard, I'd have some respect for them.) But I'm doing well. Working on a side project to release this card game (Ambition) into the wild. The game rules are here: https://docs.google.com/document/d/1S7lsZKzHuuhoTb2Wj_L3zrhH...


Most companies make it hard to transfer by setting headcount policies that make it really hard to move internally, so people have to change companies to get a better job. Google isn't as bad with the headcount issue but they have this mean-spirited and possibly illegal thing where your "perf" numbers are visible in the transfer process and the result is that it's hard to get a good project unless your political success is top 25% or so.


"most of the work is shitty legacy maintenance"

LOL no. Stop projecting.




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

Search: