HN user

skj

2,779 karma

Two Sigma, xoogler.

Posts7
Comments1,021
View on HN
Managing People 4 years ago

Pretty uncommon at tech companies, but it's entirely based on the company's policy. The company can fire you at any time (as long as it's not one of several specific bad reasons like racial discrimination), but it's the company that employs you, not your manager. So only the company can fire you.

Generally big tech companies don't give your manager the authority to blindly fire you, but only because that's a decision the company made.

Pretty low chance that the status page is automated, especially via health checks. I imagine it's a static asset updated by hand.

When we designed the security model for Google Cloud Build (I do not work there anymore), we decided that containers were not valid security barriers. So, all partitioning was done on the VM and network (configured outside the VM) level.

It wasn't hard to convince anyone that this was the right way to handle things.

Google uses map reduce extensively... where it's appropriate.

True time helps with things like spanner transactions. It's just a totally different use case.

Hmm cloud build spoofs it :) if the customer build accessed the underlying VM's metadata it would be very confusing (though not a security issue).

It was not straightforward. I learned a lot about iptables and docker networking.

With big python projects it's often difficult to figure out what code is going to be executed next due to inheritance and mix-ins.

With Go, it's usually pretty straightforward. Yes, there are interfaces, but they're used in places where people actually want the choice of code to be dynamic, rather than people just having fun building up crazy hierarchies in the name of DRY.

So, with Go I find it very easy to read because of high code locality and the ease of following to the correct destination with function calls.

For things that are already local, "ease of reading" is just code for "familiar". Go is strictly easier to read because tracing through is strictly simpler. Anything else is just spelling and those barriers disappear with only minimal experience.

In Google, auditing is handled separately.

The availability guarantees necessary for basic authorization are far more strict than auditing. Auth fails closed, audit fails open.

Anything that can be stripped out of auth should be, even if we're talking about a best effort extra rpc from the auth service.

Auditing typically needs more information than auth as well, and making the auth pipe wide is a risk.