Developer Tropes: “Google Does It”
tomaytotomato.com
tomaytotomato.com
1: The people are smarter. It's sort of cheating I suppose; better inputs make better outputs. Google doesn't have all the smartest people, but it's one of the few companies that get top-tier talent in a way that is meaningful. Everything else hinges on this.
2: Your manager (and their manager) cares a lot about you. That's a pretty broad statement and definitely not universal, but it's more often true than not. Managers are explicitly trained to focus on the needs of their employees, and the ones who don't are largely viewed as failures. No other success compensates for poor treatment of your reports. Again, there are plenty of bad managers, but they're widely seen as bad managers; justification like "demanding but fair" or "knows how to get results" or "evil genius" have little effect.
3: It's easy to move. There is no pay difference no matter what project you work on and internal mobility is encouraged and supported. People do what they want to do, and they tend to be extremely motivated as a result. It also helps remove bad managers: sinking ships get abandoned really, really fast. This is arguably the company's greatest weakness as well as it's hard to get people to work on something soul-consuming. But it's great for the employees and it's great for innovation.
I've heard that you'll get raises for working on new things. That's why Google launches so many new projects (and closes so many of those projects) and that's why old projects are constantly rewritten/redesigned instead of just imprpoving and bugfixing. I don't like it as a user, I want to use the same interface for 50 years and I want all bugs to be removed, rather than learning new interface and new bugs every few years.
I think that the OP's referring to a phenomena at different big companies where certain divisions get paid more because management deems that division more important. That creates a dynamic where everybody tries to get into that division, and the ones that can't end up bitter, demoralized, and resentful (and hence unproductive). Connecting pay to tangible accomplishments rather than where you are in the company avoids that dynamic, though it does create the one you've observed where everyone is hunting for tangible accomplishments.
I spent 5 years at Google hoping the intrapreneurship thing would work. AFAICT it doesn't, and eventually I came to accept Paul Graham's conclusion that big companies are constitutionally incapable of innovating and that's why he makes lots of money funding startups. In my observations the biggest problem isn't even compensation: it's that there are too many roadblocks to launching things and trying things out in a big company, too much incentive to be risk-averse, and too little feedback from the market itself with too much feedback from irrelevant decision-makers within the organization. The flip side of fixing those is that it radically increases both the failure rate and the rate at which the company pisses off outside people, both of which would be fatal at Google's scale.
IMHO the way Google does compensation is the best I've seen, it's just that "the best" will still result in good companies getting crushed by upstarts. So just accept that and try to create a good working environment while the company continues to print cash.
It is true that people are rewarded for impact, which usually means new systems. But this does not necessarily mean new products from an external perspective. I know a lot of people who have been promoted really high based on stuff that they have led that has zero visibility to external users but ends up being worth oodles of money (or whatever metric you are trying to impact).
Zillions of product launches seems to arise from a combination of a largely bottom-up company with a ton of employees and a culture of building things themselves rather than using existing solutions.
This is clearly both necessary if they want to retain their "all our people are among the best (and therefore have lots of options if they want to leave)" workforce and harmful to their projects. There's plain flakiness to their approach to things that's at this point a distinguishing characteristic of Google products. Even things that stick around long-term and don't get cancelled outright show heavy signs of no-one wanting to do the boring work, and no-one making them do it. Or of half-assing the boring work and then never fixing it.
I've seen many great projects sink over time because management over-indexes on easily understood, time consuming efforts, with only marginal customer impact. These efforts are easy to justify quarter on quarter - but are incredibly generic.
Great big products tend to emerge from driving repeatable improvements in something everyone needs e.g. search, content, recommendations, servers, networks, data etc. and solving the hard problems that no one else has the dedication to solve.
It is incredibly ancient. It's possible to use Babel w/ it though, and write reasonably modern JS. There's a CLI tool out there to upload something into an Apps Script … app? too; at one point, I had a project w/ a Makefile that would run the project through Babel and then upload it to Google.
I didn't try all the features (and I didn't have any npm/package management), but things like format strings, for(… of …) loops, let/const, new Map() all worked. Babel is a wonderful, wonderful thing.
I built my babel config to balance clean, new syntax with the least intrusive transforms possible. e.g. I have loose template literals on, since `\`hello ${world}!\`` is an easy transform (and still readable in the final source) as `'hello ' + world + '!'`. Generators, for .. of, and object rest/spread, are okay, but babel puts a ridiculous amount of helper functions at the top to support this. I suppose I could always configure each project with a shim file, but that's extra overhead I really could do without.
block-scoping, arrow-functions, function-name, shorthand-properties, spread (for arrays and arguments), template-literals (loose, so `+` not `String#concat`), and exponentiation-operator I found give the most bang for your buck. `for .. of` is nice but if I can pass arrow functions into my `forEach` callbacks that's pretty clean too. Pretty great being able to say
``` rows.forEach(row => { const payload = row.map(([name, rank, serialNo]) => ({ name, rank, serialNo })); SomeApi.doThing({ onComplete() { foo(); }, payload, }); }); ```
in gapps. That said, it took a while to even figure out how much was possible, but yeah it's a big step up.
So, it may be easy to move, but only in certain directions where management wants people to move.
(Or see if you can make a case for increased headcount somehow. Being good at persuasion or having a manager who trusts you can work.)
In which way is Google innovative? They have good products for sure, but I haven't seen much innovation at Google since a while. If anything the past few years have been mostly disappointing (Loon, Calico, Fiber, etc)
https://www.bcg.com/en-ch/publications/2019/most-innovative-...
I’d phrase this a little differently: the people there can be relied upon to at least have some “baseline” technical ability. Having worked at both FAANG and more mediocre companies, one thing that stands out is that while not everyone at FAANG are super-wizards, you’ll never have to sit there and explain things like “what is a stack trace” and “what happens when you write past the end of an array” and “what is the difference between O(n log n) and O(log n)”. You’ll never have to argue whether using source control is a good idea. You’ll never have people who spend weeks just trying to get Hello Project” to compile. All of which I’ve seen in other companies.
The big guys hiring processes might not be great but unlike most companies they seem to be able to filter out the complete know-nothings, and that alone is probably what raises the average.
TLDR: it’s not that they hire smarter people—they just avoid hiring way-below-average people.
Ed.: also appear to be very often very insecure about it.
I'd love to read the back story on this. Was it really a "hello world" project?
Spill. The. Tea.
Spill. The. Tea.
Spill. The. Tea.
I've learned that once you're in a large and complex corporate structure, judging your value becomes difficult. In every job I've been I've found professional slackers who truly optimize to do the minimum. They can send all the right value signals while they keep their true lack of value hidden behind a complex maze.
The only way I can think of to minimize them is to set up high barriers of entry that require on the spot proof of ability: coding tests and programming problems. Everything else can be and has been bulshitted through.
Many companies hire people before they decide their position. So your job tasks might wildly different.
I've read and heard many accounts of college admission officers and hiring managers who say that among the top 30%, it is essentially random. They don't know how or even need to differentiate between the 30%, 20%, and 10%.
So what it comes down to is selecting a random differentiator that can stand up against nepotism (objective and measurable), legal scrutiny (fair), audits (easy to comply with) and so on.
Essentially everyone who answers those questions reasonably well passes. But the one who answered best gets hired because at that point we don't even have a good differentiating signal.
I would argue that the best innovations tend to also be "soul-consuming". If it were easy, someone else would have innovated in that area earlier, right?
There is, in my experience, plenty of appetite for hard, risky, complex, grinding, ambitious problems, and very little tolerance for boring, unimpactful or evil projects, since everyone at Google can already feed themselves and is more towards the self actualization end of the hierarchy of needs, and has no strong incentive to not roll off onto something more interesting or fulfilling.
Point being, crappy work is hard to staff, and some work is just always going to be crappy. Nobody wants to maintain a hideous collection of accumulated bad decisions workarounds that exist for historical reasons but which have no value other than allowing lazy customers to avoid upgrading their 1970s client code. At IBM we maintained it anyway and hated it. At Google that sort of thing can't keep a team together.
To what extends does this work? Let's say I want to work on Chrome's WebGL implementation, but I've no prior professional experience with neither C++ nor 3D graphics - would they still take me as a noob that will take a couple years to ramp up? I suspect not. So, you're probably most likely just stuck with your current niche and can only move within it - which, to be fair, is still much better than in most other companies where you're just stuck with your current project.
I’ll bite. Which other companies are like this would you claim?
I do think when folks talk about little perks and the environment they're not talking about how having the right kind of cake, or three kinds of cake vs two kinds of cake available (just a generic example) is important. What they are really saying is "I see this company has put some resources into making this environment better, and that reflects their values and makes ME feel valued." Heck even if you don't eat the cake it is a sign.
It's akin to the story (I can't find it) where a company stopped providing free soda (or maybe they stopped subsidizing the price, I forget). The engineers were very upset, but it was just soda and god knows they could afford it.... but really it wasn't soda, the fact that management thought it was worth their time to pull resources from soda of all things was a very worrisome sign that indicated the company's values and possibly their future. Soda was the canary in the coal mine.
While I think the reactions are a bit OTT (see my comment down thread); it's certainly true that companies do a very poor job of evaluating this kind of decision.
One of my key indicators for when it's time to start brushing up my CV is when people spend an inordinate amount of effort trying to save a few quid on stationary when these things are rounding errors on the companies bottom line.
Plus it's difficult to resist temptation when constantly working around food that's unhealthy yet very sweet and 'free'.
Then you get both.
Generally I don't think much about those things, but it was often enough after awhile that it was "Yeah I'm stuck here and they...."
Pretty easy for everyone in the office to sort of "check out" when it becomes a visible issue.
Oh, and later they gave every - (60+ people) a half-day 'off' to spend 'reducing your monthly bills' - they all got an email detailing how to call your cable company to save $10/month on your cable, and scripts to use to reduce your cell phone bill, etc.
https://steveblank.com/2009/12/21/the-elves-leave-middle-ear...
It's a memorable one, because it was "soda is now 50 cents".
https://steveblank.com/2009/12/21/the-elves-leave-middle-ear...
Though free soda at work-place will probably sound like a cigarette tin at the receptionist, when a company switches from growth to cut-costs, it is a clear indication that there's a transition towards "dead wood" clearing layoffs.
And the more successful the first round of layoffs are (and they should be, because the hiring process isn't perfect), the more likely there will be more ... etc.
About a year later, the CEO was fired and we had a less than AWESOME quarter. We needed to do some cost trimming, like all well-run businesses need to do.
(The obvious thing to do was to scrutinize costs, and offer a few people a generous severance.)
I was shocked that a bunch of employees (and my manager) rallied around getting rid of free soda. It was like they just wanted to extend the free ride for everyone, so they suggested the most obvious way to feel pain instead of finding something to get rid of that we didn't need.
I worked at a company that slowly but surely cut travel options in order to limit travel costs.
Except for the sales group.... the group the traveled the most.
After a couple quarters they hilariously sent out an email noting that travel costs were not going down fast enough, insinuated that people weren't watching their expenses close enough, and if everyone didn't do a better job that they'd have to limit the sales travel budget too.
I suspect the person who sent the email couldn't / didn't think critically about what message they sent everyone else in the company. Needless to say the costs didn't drop.
Even more amusing they decided that car rentals were too expensive, so they banned car rentals (but not for sales). I was to take a taxi or public transit wherever I went. The results was that it cost about 3x as much in local travel costs when I traveled. I actually accounted for it all, wrote up a report with charts about how a car saves the company money on my trips. I was told not to tell the travel team anymore as their management didn't want to hear it.
Spend $25k year on a SaaS? Throw it out and create an internal system. Nevermind that 4 people spend a month building it and you now 0.8FTE maintaining an inferior and buggy system. Employee costs are going on the big pile and aren't as directly measured.
For this reason, I don't consider the existence of stuff like that to be a reliable indicator of anything at all. When a company does this, it neither impresses me nor puts me off.
For example, if you aren't impressed by free snacks you would be impressed by a strict policy of no food in the office with no place to eat.
The classic example for me is the ping-pong table. Can they be a useful way to get cross-team interaction and bonding that increases the company's ability to solve cross-cutting problems? Sure. But they are often bought because that's what startups do. E.g., the photo recently going around Twitter of the ping-pong table marked with "NO PLAYING BEFORE 6 PM".
I love how that completely sends the opposite message.
It is convenient though, it makes it clear that the management team (as a team, maybe some are ok) has no ability, or can't be bothered to imagine how other people think / respond / feel.
Open warfare broke out between the people who liked playing it and the people who were driven mad by the noise while trying to get work done. It was the most successful team destroying exercise I've ever seen. It was banned and reinstated at the whim of conflicting managers. Eventually someone discovered silent ping-pong balls and order and harmony was restored.
A few months later I quit for a 15% pay rise.
He said, “when AOL got rid of our Snapple, we knew it was all over.” (And for context, the salary/job stability for someone at Time Magazine in 2000 is very different than in 2019. As in, the pay was very good and there was job stability.)
Similar to the soda story — it’s not that the employees can’t afford it themselves, it’s what it represents about not just the changing culture at the company, but of the financial realities.
I once worked at a place where they suddenly started to decrease the snack budget (but didn’t say anything —- we just got fewer snacks and in fewer quantities each week). In hindsight, it was an indicator of some of the financial issues happening at the company. Ironically, after some layoffs (followed by the voluntary exodus of ~20% of the company), the snacks came back full blast as an attempt to raise morale, but by then it was too late.
If you don’t answer yes to one of my questions I suggest you try one or more. I’ve gone through lots of hobbies outside my house (preferably outdoors) over the years including running, working out, walking my dog, and now kayaking.
If your able to get your work done you should swap the YouTube time for someone else outside work.
Because you won't be able to do that when you have kids. The period from 0-5 years old is just brutal on all of time, attention, and finances. Having a financial cushion is pretty critical if, for example, you get hit with $50K in hospital bills while also needing to figure out daycare and baby supplies and your wife is spending 6-8 hours/day nursing and you're both sleeping 3-4 hours/night. Many new parent problems can be solved with money, and most of the rest are a lot easier if you're not worried how to get the money.
Besides, it's my most productive 40 hours a week, during the prime of my life. I don't want to spend that as a work-robot who dutifully produces exactly 40 work-units, no more no less, then vanishes into the night. I find it much more fulfilling to have both personal time AND investment in my job.
The main downside of these high paying, prestigious companies is that the places they offer jobs in are usually the really expensive cities.
Someone at a company I used to work for, read that study in 2013, and removed the air conditioners from our server rooms.
We ran at almost 90 degrees from that point on, inside the racks it was much hotter. We lost a couple battery backups, internal fans, and power supplies before I could convince them to turn the air back on.
Maybe I'm just getting old.
Or we could fix the culture problem.
I went to the doctor and got drugs and vitamins. One of the drugs was supposed to be for erectile dysfunction, but had the side effect of keeping people awake. I tried it anyhow. They didn't work.
I ended up drinking a little caffeine to fix it. It worked really well.
Now I drink a lot of caffeine to fix it, and if I stop, I go back to falling asleep in the middle of the day.
If I could, I'd gladly just take a nap in the middle of the day to "fix" this problem. I get plenty of sleep at night, and I have a regular schedule. I don't work overtime and my job isn't abusive on my work-life balance.
But now I just need caffeine to keep going all day. And so I deal with that instead, and I no longer tell people that I don't like caffeine.
When someone says that they need caffeine to wake up, I certainly don't tell them that they should get off caffeine... And I don't even think it anymore. They might actually need it.
Something you may want to look into is how many carbs you are eating for lunch, and whether your blood sugar is being affected. An amazing number of people have minor hypoglycemia and a carb-heavy lunch can leave them falling asleep at their desk. When I switched to a low/no-carb breakfast/lunch it did help (tho did not cure).
That said, you've made me think and it's worth seeing if I can't further move my intake towards proteins safely and cost-effectively. And then maybe next time I try to reduce caffeine, it'll actually work.
Thanks!
The most interesting aspect is that this acceptance is near universe across cultures.
At the same time I worked in a support department where getting one lunch of garbage quality pizza every quarter was seen as "too expensive", so they cut that.... so I also chuckle at other developers when they complain about their mountain of perks.
I think many really don't realize that most people don't get, squat outside of a place to go work.
The perks are the claim to status. At the same time many people's choice of perks is a bit infantilising, which confuses people outside it.
(There is another, nastier kind of "perk" in many jobs which a few developers indulge in, which is the freedom to abuse lower status staff without real reproach.)
Software dev is weird. Mostly sneered at or patronized by those up the hierarchy, yet paid really well. Not especially well-regarded outside business hierarchies considering how high the comp is, in no small part due to its acquisition, deserved or not, of a reputation for being a He-Man Woman Haters' club, and also, you know, for being generally nerdy (which was entirely the historical reason for its being low on the social status ladder, until relatively recently).
Garbage collectors fit this description in every city I've lived in.
https://www.indeed.com/jobs?q=Waste%20Collector&l=Austin%2C%...
That was one of the first results, but it seems like the average is generally lower, around $15 an hour. My first tech job was as a Linux sysadmin in a web hosting company in Houston circa 2011, which paid 17 an hour.
This was with no formal education or experience (I'd played around with Linux at home and wanted to work with it professionally). So I'd say the claim that garbage collectors make the same as programmers appears to be generally untrue.
This is wrong and revisionist to boot. You're projecting your own biases or poor experiences on an entire industry.
Management looks down on programmers because they are not management. When one has real power and status it's easy to look down on others.
It's a piece of infrastructure. It may not seem like 20% pay cut, but it might very well be bleeding out 20%+ of productivity of the floor until the problem is fixed or people find workarounds. Same with network issues or outage, or crappy work hardware.
> "I saw this presentation by a Google developer and I think we need to copy their release process"
One of these is very different from the other. Fancy coffee and whatnot affects your environment but release processes, frameworks, interview methods, etc, change your productivity and are all made to fit an organization of Google's size and bureaucracy. They're a terrible fit for most small/medium sized companies.
I also always find it weird how nobody picks other giant companies to emulate, nobody's like "Well JP Morgan has great employee mortgage rates!" or whatever.
One principle I think about when refactoring, is reversibility. If something turns out to be wrong, can you change your mind with minimal cost? To generalize, when trying something, can it be tried and backed out for minimal cost, while providing good information?
I also always find it weird how nobody picks other giant companies to emulate, nobody's like "Well JP Morgan has great employee mortgage rates!" or whatever.
For the answer, I think one can analyze their marketing and how the culture once perceived SV and the startup scene.
Any details on this? :)
An executive can't just decree "no long meetings" and have it stick. Avoiding long meetings takes a culture of preparation and transparency. It takes clear agendas. It takes people showing up to the meeting knowing the agenda and the material, and being ready to approve, review, brainstorm, or do whatever the agenda calls for. It's hard--and worthwhile--to work on developing that culture.
An executive can't decree "one-click deploy" either. Obviously. It too takes a particular culture and a lot of time.
As for the perks: it takes a "no magic" culture. If the coffee runs out, some real human has to get more. In a big company, maybe that work can be outsourced. In a pre-revenue startup, there's no magic. You want coffee? Go get some. (They sell it at Starbucks and Costco, you know.) If you have an intern who will tolerate being asked to go fer coffee, send the intern.
Dirty bathroom, small company? No magic. Clean the bathroom.
Alas. New and shiny is a powerful temptation.
I heard exactly the opposite from some Googlers. That you DON'T want to copy their release process. At least, not without a good reason.
I made it to the last interview stage, which would have been a 4 hour remote white-boarding session, where they would give me something to code and a team of developers would watch me. I turned it turned it down and found a much better position the next day.
The first stage of the interview was light technical and almost all a psychological test to see if I would be a good 'culture' fit.
The interviewer was a first-time 20-something manager that wanted to make a name for himself and had read a few silicon valley books about technical interviews. He actually told me this.
Most companies aren't Google and shouldn't be emulating much of anything there.
To take your interview example, you can't really convince a company (or anyone for that matter) they are doing something wrong, if what they're doing is making them money/success. It is a very powerful form of feedback that gets ingrained and is almost impossible to shakeoff.
Haha what a champ. I respect the hell out of that.
Either way, there is very little, possibly nothing, that a company not named Google can borrow from Google. The scale and venue that Google operates in too different.
Generous (by US standards) parental leave, lots of holidays, excellent 401k plan, work flexibility, ease of job transfers, open/critical internal culture, blameless post-mortems as a standard thing, and of course, free food and gym.
Since you mention them though, many are not Google things. And others I would reject (ex: free food & gym).
What does this even mean? Most of the technical process stuff Google does isn't completely unique to Google either.
> And others I would reject (ex: free food & gym).
Why though? Honestly, having worked here, it'd be hard for me to go to a place that didn't have these things. It's just so convenient and awesome!
because that it the most mindnumbingly ridiculous and timewasting fad I've ever put up with on a development team or company "because Google does it"
maybe C-level management should just do it amongst themselves and just put their results on a list and it would be the same as a random directive coming down from high that nobody questions. most of your startup's "passionate team members" are lying about it and do not care if they the understood the direction the OKR process went or if they just did what was told, skipping the whole thing.
(I was ready to dismiss this article based on the title being too tropey, ironically)