Live data from Hacker News

Ask HN: What Have You Learned at Google as a Software Engineer?

news.ycombinator.com

91–100 of 157 posts

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#91
post #26

Earlier quoted context omitted.

Yes they do. In all these places except Amazon, the engineering culture is essentially identical. I’ve worked at 2 FAANG companies and a few startups that had a big influx of ex-Google engineers. In fact it’s a whole process that startups go through to copy Google: monorepo + misguided in-house tooling for it, homebrewed canary deployment strategies, naming things “mon” like “altermon” or “datamon”, etc. It’s a very…

I assume the two FAANG you are referring to are the F and G. The rest of the letters aren’t like that. At least no monorepo.

Or "mons".

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#92
post #59

Not Google, but another Big Tech company. Visibility is very important to getting a promotion at a large company. Selling your work is important. To move up, you must be playing the "choose a good project or team" game for at least 6 months before you try to get promoted. Preferably for a year or more to hit the right checkboxes for multiple cycles. If you fail to do so, you can do absolutely amazing work but rigid p…

Alternatively, one can negotiate the desired level/salary when starting a job so you can ignore the politics at least for several years, right? Or is it as well easy to be demoted (without politics)?

At the big tech companies, you don't really get to negotiate your level.

For L6, for example, you might be able to convince the recruiter to set up the right interview process, but your level is 100% tied to your interview performance.

Salary is a different story--negotiate, always, but be aware level and salary are related.

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#93

Not Google, but another Big Tech company. Visibility is very important to getting a promotion at a large company. Selling your work is important. To move up, you must be playing the "choose a good project or team" game for at least 6 months before you try to get promoted. Preferably for a year or more to hit the right checkboxes for multiple cycles. If you fail to do so, you can do absolutely amazing work but rigid p…

This is all very applicable to Google. I was at Google for 2 years and I got promoted L5 to L6. The key (I think) was working across teams with people who were already L6 or higher, and who were willing to write for my promo packet. In terms of what I learned? I think the most important lesson was: Don't get bogged down in details that are irrelevant to you & count on others to do their jobs. I came from a small (~15…

>I was at Google for 2 years and I got promoted L5 to L6.

Congrats on making the leap. It's tough.

> The key (I think) was working across teams with people who were already L6 or higher, and who were willing to write for my promo packet.

I agree; having L+1 reviewers is key. In my case I had the equivalent of a Google L7 or L8, but it didn't work out.

Having a good enough project, even though it's often out of your control, is very important.

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#94

Not Google, but another Big Tech company. Visibility is very important to getting a promotion at a large company. Selling your work is important. To move up, you must be playing the "choose a good project or team" game for at least 6 months before you try to get promoted. Preferably for a year or more to hit the right checkboxes for multiple cycles. If you fail to do so, you can do absolutely amazing work but rigid p…

I feel the exact same thing about the promotion process from investment banking industries to the big tech firm where I am working now. Normally, you are expected to perform higher than the current level and at least make the contribution at the next level to be promoted. Worst, I feel like to get promoted, I would need to be assigned to work on a high visible project affecting cross teams/organizations like you mentioned. Sometimes, it seems like waiting for the stars to align in eternity.

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#95

Earlier quoted context omitted.

I thought the monorepo setup made cross-project dependency changes easy?

Not at all. Monorepo is merely a detail around VCS and it does not remove complexity and the need for versioning.

Yes, and because you can atomically update an internally breaking API change across all consumer projects in the same commit as the change itself, the monorepo setup is touted as reducing complexity where this change would otherwise be non-atomic across many repos.

https://danluu.com/monorepo/

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#96
post #41

At Google for 9 years, startup before that. Roughly half my time at Google I worked on individual products, and the other half on open source infrastructure (common libraries, compilers, linters, IDE plugins, etc). The biggest thing I've learned is how software changes over time. Previously I thought of a good program as like a crystal. Write it correctly the first time, and it doesn't need to change much, if at all.…

I've not worked for Google (though have had a few opportunities) and you're on the money.

It's such an uphill battle to instill these values in young organizations when leadership has no strong engineering background.

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#97

Not Google, but another Big Tech company. Visibility is very important to getting a promotion at a large company. Selling your work is important. To move up, you must be playing the "choose a good project or team" game for at least 6 months before you try to get promoted. Preferably for a year or more to hit the right checkboxes for multiple cycles. If you fail to do so, you can do absolutely amazing work but rigid p…

This is all very applicable to Google. I was at Google for 2 years and I got promoted L5 to L6. The key (I think) was working across teams with people who were already L6 or higher, and who were willing to write for my promo packet. In terms of what I learned? I think the most important lesson was: Don't get bogged down in details that are irrelevant to you & count on others to do their jobs. I came from a small (~15…

Congrats on the promotion, did you join Google as an L5?

Also, can you share more advice on the technical side, like what do you are the abstractions, mind models and technologies that you think are applicable outside of Google and would be worthy of studying?

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#98

Not Google, but another Big Tech company. Visibility is very important to getting a promotion at a large company. Selling your work is important. To move up, you must be playing the "choose a good project or team" game for at least 6 months before you try to get promoted. Preferably for a year or more to hit the right checkboxes for multiple cycles. If you fail to do so, you can do absolutely amazing work but rigid p…

A simple solution to a complex problem is what I strive for every day as an electrical power engineer. It makes it easier for my co-workers, customers, and anyone responsible for keeping the power on in the next 50 years to understand how something works and be able to fix it if it breaks or build off of it if more capacity is required or it can be reused on a different project. I am sad that top tier software engine…

> I am sad that top tier software engineering environments have lost sight of the value of simplicity.

I agree, but a more charitable reading is that they want you to demonstrate that you can deliver a complex solution if that's the only way to get things done.

Complexity is highly subjective, of course.

Suppose I need a distributed atomic counter service. After doing a lot of research, I come to the conclusion that the best solution is to write a wrapper around something in AWS or GCP but structure things in a way that other teams can use it.

Other teams are now less likely to need to do that research and can just get stuff done.

But the actual implementation is very simple.

Is that complex?

Maybe, maybe not.

This does provide a perverse incentive to continuously reinvent the wheel, though, which is the worst part of it.

Why not re-implement the low level goodies in DynamoDB if that'll increase the odds of promotion? Many engineers think along those lines.

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#99
post #25

Earlier quoted context omitted.

What does "promoted" look like for an software engineer at large tech companies? In my company you're either an individual contributor or tech lead. There aren't really any other rungs on the ladder without going to manager.

Check out levels.fyi to get an idea per company. At Google, we have "standardized" levels starting at L3 to L10, each with their own compensation range. Google allows you to climb this ladder while remaining an IC. Going to manager has a different progression and it's not an expectation.

How easy is it to transition into a manager if you're an IC?

Re: Ask HN: What Have You Learned at Google as a Software Engineer?

#100

Other than having “Google” on my resume there is nothing special or applicable outside of Google. Most tools are internal, isolated and the choices are restrictive. Management is shitty - micro-management is in full bloom, display lack of management knowledge, skills and there’s plenty of abuse of power. They don’t show their appreciation to what we do. All developers are very competitive. My entire time of over a ye…

What do you think are the best abstractions, mind models and technologies you learned at Google? I read somewhere about SSTables and several other topics related to writing distributed systems, can you share your take on this?
Post reply on HN