Live data from Hacker News

Working on complex systems: What I learned working at Google

thecoder.cafe

81–90 of 147 posts

Re: Working on complex systems: What I learned working at Google

#81

Earlier quoted context omitted.

[flagged]

I don’t get the connection to capitalism here. Care to elaborate?

Probably referring to the fact that they only rewarded them with a candy bar for being a good employee. Which ignores the fact that they're already probably getting paid a decent salary to do their job, and being a good employee is already part of the job description to receive said salary. Anything extra is nice.

Re: Working on complex systems: What I learned working at Google

#82
post #17

Earlier quoted context omitted.

What are peer-bonuses?

The idea is if someone helps you in a really big way that you’re able to reward that. So you can ask the company to give the person either credits for an internal store, or a direct addition to their salary for one month. Obviously, there are limits to how many pay bonuses you can give out and if it’s direct money or store credits. Directly asking for a peer bonus’ is not very “googly” (and yes, this is a term they u…

Credits to the store? I have never heard of this or seen that.

Re: Working on complex systems: What I learned working at Google

#83
post #61

Earlier quoted context omitted.

And when you’re at a smaller company 90% of your time is fighting societal complexity, limit of which also approaches infinity, but at a steeper angle. No greater Scott’s man can tell you that the reality is surprisingly complex, and sometimes you have resources to organize and fight them, and sometimes you use those resources wiser than the other group of people, and can share the lessons. Sometimes, you just have n…

Look, I've never had to design, build or maintain systems at the scale of a FAANG, but that doesn't mean I haven't been involved in pretty complicated systems (e.g., 5000 different pricing and subsidy rules for 5000 different corporate clients with individually negotiated hardware subsidies (changing all the time) and service plans, commission structure, plus logistics, which involves not only shipping but shipping t…

You are right but it misses the flavor of the problem. I was a consultant in infosec to F500s for many years. Often solving a problem involves simply knowing the right person that has already thought about it or toiled on the problem or a similar one. But when there are 100,000 engineers it becomes an order of magnitude (or two!) more difficult and that puts forth unique challenges. You can still call them “people problems” and they often may be. However if you try to solve them the same way you might solve it at a smaller engineering org you will get and be nowhere and be poorer for the time you spent trying it. Ask me how I know lol. The technical problems are also like that. Almost everything has an analog or similar thing to what you are probably familiar with but it is scaled out, has a lot of unfamiliar edges and is often just different enough that you have to adjust your reasoning model. Things you can just do at even a typical f500 you can’t just do at big tech scale. Anyway, you are directionally correct and many of these wounds are self inflicted. But running a company like Google or Facebook is ridiculously hard and there are no easy answers, we just do our best.

Re: Working on complex systems: What I learned working at Google

#84
> My immediate reaction in my head was: "This is impossible". But then, a teammate said: "But we're Google, we should be able to manage it!".

"We can do it!" confidence can be mostly great. (Though you might have to allow for the possibility of failure.)

What I don't have a perfect rule for is how to avoid that twisting into arrogance and exceptionalism.

Like, "My theory is correct, so I can falsify this experiment."

Or "I have so much career potential, it's to everyone's advantage for me to cheat to advance."

Or "Of course we'll do the right thing with grabbing this unchecked power, since we're morally superior."

Or "We're better than those other people, and they should be exterminated."

Maybe part of the solution is to respect the power of will, effort, perseverance, processes, etc., but to be concerned when people don't also respect the power and truth of humility, and start thinking of individual/group selves as innately superior?

Re: Working on complex systems: What I learned working at Google

#85
post #12

Earlier quoted context omitted.

This is probably the most accurate statement possible. “I just want to store 5TiB somewhere” “Ha! Did you book multiple bigtable cells” https://youtu.be/3t6L-FlfeaI?si=C5PJcrvLepABZsVF

What are peer-bonuses?

I was in Kindergarten and watching my fellow classmates get gold star stickers on their work. They were excited when it happened to them. I saw it as being given nothing of real value and person could just go to the store and buy them for $1 or $2.

It is a social engineering technique to exploit more work without increasing wages. Just like "Employee of the Month" or a "Pizza Party."

Company I work for does this with gift cards as rewards. I was reprimanded because I sent an email to HR that this " gift" is as useful as a wet rage in the rain. I don't eat at restaurants that are franchises or have a ticker on Wall Street. Prefer local brick and mortar over Walmart and will never financial support Amazon.

If you want to truly honor my accomplishments, give me a raise or more PTO. Anything else is futile. That gift card to Walmart has 0 value towards a quality purchase like a RADAR or LiDAR development kit to learn more or such.

Re: Working on complex systems: What I learned working at Google

#86
post #24

Earlier quoted context omitted.

I’d wager 90% time spent at Google is fighting incidental organizational complexity, which is virtually unlimited.

The phrase thrown around was “collaboration headwind”, the idea was if project success depends on 1 person with a 95% chance of success, project success also had a 95% chance. But if 10 people each need to succeed at a 95% chance, suddenly the project success likelihood becomes 60%… In reality, lazy domain owners layered on processes, meetings, documents, and multiple approvals until it took 6 months to change the te…

Another side of this coin is that the expected payoff from a project depends on how many unrelated projects your organization is engaging in, which is deeply counterintuitive to most people.

Every project carries with it three possibilities: that of success, where the company makes money, that of failure, where the company does not, and that of a "critical failure", where the project goes so wrong that it results in a major lawsuit, regulatory fine or PR disaster that costs the company more than the project was ever expected to make.

If you're a startup, the worst that can happen to your company is the value going to 0. From an investor's perspective, there's not much of a difference between burning all the money ($10m) and not finding product-market-fit (normal failure), or your company getting sued for $3b and going bankrupt (critical failure). The result is the same, the investment is lost. For a large corporation, a $3b lawsuit is far more costly than sinking $10m into a failed project.

You can trade off these three possibilities against each other. Maybe forcing each release through an arduous checklist of legal review or internationalization and accessibility testing decreases success rates by 10%, but moves the "critical failure rate" from 1% to 0.5%. From a startup's perspective, this is a bad tradeoff, but if you're a barely-profitable R&D project at big co, the checklist is the right call to make.

This problem is independent from all the other causes to which bureaucracy is usually attributed, like the number of layers of management, internal culture, or "organizational scar tissue." Just from a legal and brand safety perspective, the bigger your org, the more bureaucracy makes sense, no matter how efficient you can get your org to be.

Re: Working on complex systems: What I learned working at Google

#87
post #10

One of my pet peeves with the usage of complex(ity) out of the traditional time/space in computer science is that most of the time the OPs of several articles over the internet do not make the distinction between boundaried/arbitrary complexity, where most of the time the person has most of the control of what is being implemented, and domain/accidental/environmental complexity, which is wide open and carries a lot o…

I've not seen "accidental" complexity used to mean "domain" (or "environmental" or "inherent") complexity before. It usually means "the complexity you created for yourself and isn't fundamental to the problem you're solving"

Re: Working on complex systems: What I learned working at Google

#88
post #5

> My immediate reaction in my head was: "This is impossible". But then, a teammate said: "But we're Google, we should be able to manage it!". Google, where the impossible stuff is reduced to merely hard, and the easy stuff is raised to hard.

“the difficult we do immediately. The impossible takes a little longer” WW2 US army engineer corp

>“the difficult we do immediately. The impossible takes a little longer”

This was posted in my front office when I started my company over 30 years ago.

It was a no-brainer, same thing I was doing for my employer beforehand. Experimentation.

By the author's distinction in the terminology, if you consider the complexity relative to the complications in something like Google technology, it is on a different scale compared to the absolute chaos relative to the mere remaining complexity when you apply it to natural science.

I learned how to do what I do directly from people who did it in World War II.

And that was when I was over 40 years younger, plus I'm not done yet. Still carrying the baton in the industrial environment where the institutions have a pseudo-military style hierarchy and bureaucracy. Which I'm very comfortable working around ;)

Well, the army is a massive mainstream corp.

There are always some things that corps don't handle very well, but generals don't always care, if they have overwhelming force to apply, lots of different kinds of objectives can be overcome.

Teamwork, planning, military-style discipline & chain-of-command/org-chart, strength in numbers, all elements which are hallmarks of effective armies over the centuries.

The engineers are an elite team among them. Traditionally like the technology arm, engaged to leverage the massive resources even more effectively.

The bigger the objective, the stronger these elements will be brought to bear.

Even in an unopposed maneuver, steam-rolling all easily recognized obstacles more and more effectively as they up the ante, at the same time bigger and bigger unscoped problems accumulate which are exactly the kind that can not be solved with teamwork and planning (since these are often completely forbidden). When there must be extreme individual ability far beyond that, and it must emanate from the top decision-maker or have "equivalent" access to the top individual decision-maker. IOW might as well not even be "in" the org chart since it's just a few individuals directly attached to the top square, nobody's working for further promotions or recognition beyond that point.

When military discipline in practice is simply not enough discipline, and not exactly the kind that's needed by a long shot.

That's why even in the military there are a few Navy Seals here and there, because sometimes there are serious problems that are the kind of impossible that a whole army cannot solve ;)

Re: Working on complex systems: What I learned working at Google

#89
post #24

Earlier quoted context omitted.

I’d wager 90% time spent at Google is fighting incidental organizational complexity, which is virtually unlimited.

The phrase thrown around was “collaboration headwind”, the idea was if project success depends on 1 person with a 95% chance of success, project success also had a 95% chance. But if 10 people each need to succeed at a 95% chance, suddenly the project success likelihood becomes 60%… In reality, lazy domain owners layered on processes, meetings, documents, and multiple approvals until it took 6 months to change the te…

Well, good management/tech leadership is about making sure that the risks coming from individual failure points (10 people in your example) are recognized and mitigated, and that the individuals involved can flag risks and conflicts early enough so that the overall project success probability does not go down as you describe...

Re: Working on complex systems: What I learned working at Google

#90

Except computers attempt to model mathematics in an ideal world. Unless your problem comes from something side effects on a computer that can’t be modeled mathematically there is nothing technically stopping you from modeling the problem as mathematical problem then solving that problem via mathematics. Like the output of the LLM can’t be modeled. We literally do not understand it. Are the problems faced by the SRE e…

I think the vast majority of SRE problems are in the “side effects” category. But higher level than the hardware-level side effects of the computer that you might be imagining.

The core problem is building a high enough fidelity model to simulate enough of the real world to make the simulation actually useful. As soon as you have some system feedback loops, the complexity of building a useful model skyrockets.

Even in “pure” functions, the supporting infrastructure can be hard to simulate and critical in affecting the outputs.

Even doing something simple like adding two numbers requires an unimaginable amount of hidden complexity under the hood. It is almost impossible for these things to not have second-order effects and emergent behaviour under enough scale.

Post reply on HN