I've been at Google for 18 years, starting as an L4, I'm now a VP.
I've had nothing like the experience described (even while working on lots of non-shiny things).
I had previously worked at numerous large tech companies - Microsoft, IBM, etc.
Small ones too - redhat when it was quite small, etc
It is, by far, the best large tech company i worked at.
At the same time I would offer within a company the size of Google, particularly one whose divisions are large and do such different things, you will find remarkably different cultures and experiences.
> you will find remarkably different cultures and experiences.
I think people often mistake this. When you join a small early stage startup, you really are joining "the company". When you sign on as ID 25432 at bigcorp, you are (excepting exec roles) joining "a team". Your experience can be wildly different than someone who joins a different team, even at the same time. Depending on the org, this may be basically irreversible, or easily changed.
Yeah, "different cultures and experiences" is absolutely right, it's huge, unfathomably huge.
To complete the picture I had a kind of "mediocre" story at Google, negative but not the worst possible. I was hired as the pandemic started, before anyone had figured out how to onboard me or ship me a work laptop, then the actual onboarding experience itself was a lot of talks about how "privacy is very important to us, accessibility VERY important to us, oh you can't forget that security is VERRRY important to us." (At orientation we were broken into teams and told to build an app together, but the team met like twice and was undecided about what app to build and at the end someone presented one of the three ideas of apps that we might build, as an app that we had built, and not a line of code was shed.)
Working on my team was a little better, although nobody really took me "under their wing" and when I would ping with having trouble with my dev environment my team was not very responsive. For about a year the only person on my team who really cared enough to review my CLs was halfway across the world in Singapore, so day-to-day dev work fixing bugs incurred this really long latency. For feature development, there was a different really long latency: because everyone insisted on design docs that they didn't get around to approving! So after my second perf cycle kicked in and I was told that the volume of the output was not looking great (because, on perf, maintenance work and bugs fixed doesn't really count for anything), it was just like "okay, I cannot wait for my team to actually approve these before starting the work, that'll be just like the Nooglers bickering about which app to start." So I got like 90% of the way through shipping a feature and the key stakeholders still hadn't gotten around to reviewing and approving the design doc.
The ridiculous latencies actually led to me going a little "cabin-fever"-crazy and writing stochastic simulations of work at Google so that I could give better estimates to my manager about my deadlines. I was optimized by my whatever-it-was-like-7-years at smaller companies to eliminate multitasking and pursue things with a considerable focus; but the simulations showed that my major problem was that in this high-latency environment you have to multitask as aggressively as possible: you basically need to have "this person is reviewing this for me and that person is doing that for me and I have this design doc when my CLs are waiting to be reviewed and and and...". I was working in the best way possible to get a lot of meaningful work done in a small focused team, but simulations showed it was the worst way possible to work at Google, even though the actual team size was about the same.
The cabin fever was a sort of real mental-health decline. I deferred taking my baby-bonding leave to be with my daughter for like a whole year of my wife saying "hey I really need your help here" because every week it was like "oh we'll just finally ship this thing and then I'll be leaving on a high" and it's like nope, things never really shipped. Was so focused on "respecting the opportunity" that I didn't really "respect your own biology and go to the doctor and stuff" -- it never really seemed like my work was successful enough that I was psychologically safe to take time for those basic things. The simulations helped me know that it wasn't "just me" and "here's what you need to do."
So I eventually successfully got my work output up, even to the point of doing some honest-to-goodness team leadership: I noticed that we had overcommitted on our OKRs for the upcoming Q1 2023, I had some really productive work with others at the end of Q4 2022, so I developed a design doc on "Hot Potato Agile" for how the team was going to work together like a small-company team to deliver on our ambitious OKRs and we could get everyone's OKRs done if we all worked together, I had a super-excited manager and buy-in for everyone to do this experiment with me... and then like the very next day after everyone was super excited for this thing, I and thousands of colleagues chosen apparently at random suddenly discovered that we were locked out of everything, both social and professional, for two months as we waited to be axed. Nobody knew how to contact me to say goodbye to me, eventually some folks pinged me on LinkedIn.
And like it was nice to have Tony's Chocolonely in the microkitchen on the third floor and bidets on the toilets and a barista making me free mochas on the fifth, when I was in the office. Felt very swanky. Although my favorite part, truth be told, was just the GBikes. I love the wind in my hair. And it was especially nice in the US to go to a pharmacy for my maintenance inhaler and to have my card out and the person who handed me the medicine was just like "oh don't worry about that, you owe $0, have a nice day," like "what is this, the UK or something?". But the day-to-day work felt like Sisyphus and a boulder at times, just never-ending grind to end up in the same place you started. That, I didn't like. A real mix of "Great" and "WTF".
Wow, are stories are very similar but with a different ending (I'm sorry you were part of Jan 20).
Also started pandemic beginning of Pandemic as an SRE (not ads), didn't have onboarding in place and no one to really take me under their wing. Ran into long-latency issues, created & co created many agile pieces for the team, etc. I ended up "I'm leaving or joining a different team" and managed to get to a different non-Cloud team and it's been much better since, but 2 1/2 years of "awful".
So I understand, but I don't classify it quite that way. Note that I'm talking about "we onboarded right as the pandemic hit" -- like we chose to road-trip to California to bring our animals along and on that road trip there were hotels telling us "well you're lucky you came today and not tomorrow because as of tomorrow we have to shut down!", that's how fresh it was. It makes sense that a company that was always focused on in-person interactions was raw while onboarding. Some of the rest can be attributed to just "I was working on the wrong team for me, I'm very extroverted and everybody else except for this dude in Singapore was more introverted and used the newfound videoconferencing barriers to just focus on their own work" etc.
I think that the way they offboarded us was awful; the fact that I know that as of 1PM the day prior my immediate manager had no idea (because like I said, he was at this workflow meeting super-excited and asking questions, whereas if he'd known I'm sure even if he had to be quiet he's a very honest man and he'd have been like "uh, Chris, I appreciate your enthusiasm but let's come back to this topic next week...") ... and the fact that the business was doing well revenue and cashflow wise, it's hard to not be salty about that. But again that's kind of a separate issue.
The Perf culture is one big thing, and is the reason that Google's reputation is as "we will cancel everything:" that is what their old perf culture incentivized. And I cannot emphasize how bad it was to have to devote like four weeks twice a year to doing performance reviews, right, those quarters were just like "you will only have two thirds of your scheduled time this sprint, and also this work you spend making it easy for your manager to present your achievements and your team's achievements to the faceless committee, is not going to be rewarded by the faceless committee." But that procedure was canned because the managers complained about how long they spent perfing. (Also the four-weeks thing is dependent on how much your manager keeps apprised of the team's work and progress, I happened to have, at least at first, a very hands-off manager who needed the whole 6 months of work collected and summarized.)
I think the big thing I was missing was just mentorship. This was not for a lack of trying to find it, but I mean in terms of jobs where I've had really good mentorship, I think I've only had one (and maybe one or two jobs where I've succeeded in providing really good mentorship) so maybe I'm not criticizing that strongly enough, but I think "that's a problem everyone has", it was just much more visible in this case because I was aching loudly for it and still not getting it.
Sure! So by that point I could tell that typical normal software dev problems had not been magically solved by Google: in an ideal workplace maybe someone would have invented a corporate culture where the actual requests were "micro-sized" so that there were no surprises, but if someone has done this, it was not Google. So you commit to shipping a thing and you can't see all of the different parts of it.
So every project should be viewed as having work units and for each work unit you can define "I am 50% confident that it will be done in time T_50 and 80% confident it will be done in time T_80" and those are enough to define a log-normal distribution, whose cumulative density function is
P(t) = 1/2 [1 + erf[ ln(t / T) / (s sqrt(2)) ]]
for parameters T and Q, from there it's like if P(T_50) = 1/2 then I can work out that T = T_50 and from there s = k ln(T_80 / T_50) where k is just a fixed number you can work out[1].
You can then generate a random number Z with Box-Muller[2] and then a random variable T exp(sZ) is log-normally distributed with the requested parameters. This is nice because the log-normal distribution is long-tailed so when it's off it's unusually off.
You can then look at some ongoing projects and the commits associated with that project and the research steps and reviews and all that which went into it, and say
- what things happened up til now and what is happening right now on this project
- what was estimated for those tasks, if nothing was estimated then they were "invisible", otherwise assume that was an 80% estimate, try to guess how the 50% "optimistic estimate" might have been different
- how did the tasks that I identified, depend on other tasks happening?
- and finally, I want to know, was this a task I did or a task somebody else did?
So on the basis of that you can start to either
1. take an upcoming project or two, or
2. generate a random tree-like project,
and throw in a bunch of these various things, and define some agents with deterministic strategies like "work on the oldest task" or "these nodes are hidden, now work on the visibly-longest chain of tasks" or the like. Then for a given assignment of times to all the random variables, you can see which algorithm was able to do the project fastest and you can dig into an event log to see what were they doing at the time.
Rather than "start on the hardest problem, the longest chain of dependencies" being the best like I would have expected, it was usually wrong, dominated by approaches like "do the smallest task first," because those could multiplex the review times, "please review this, please review that, I'll be working on this third thing." They did have problems with "okay now there is a long hard slog at the end" but the latency savings usually made up for it at the beginning.
I think that probably you could find a balance between the two that would work even better, "start with a couple fast tasks then work on a slow one, try to do fast-fast-slow all throughout," but that was hard to program and I already had my fundamental lesson that I needed to change my workflow.
Conservatively, working any job that lets you put 25k/year into a tax shelter like a 401k for 20 years will make you a millionaire, or at least damn close.
This covers a large number of tech jobs in the US if you choose to.
The point is it shouldn't be impressive to people in tech, more par for the course if you work 20 years and save. I was responding to the question as written.
To your point though, if you do want to amass 1mm liquid quickly without a fancy certification (e.g. neurosurgeon), absolutely FAANG and wall st. are among the most risk free ways to do that.
Or you can go the route of pissing a lot of it away because you make "good money" now; your choice.
I mean, working this long anywhere will make you a millionaire, but also keep in mind things often happen in 20 years that can cost a lot:
Caring for sick parents/loved ones
Your own medical/etc issues
Kids
Divorce
Market changes
etc
I mean, without getting into my personal life, for example, , google gave options and not equity for years, and there were times those options were underwater, etc.
So it's not all just raking in money hand over fist.
Your point is actually understated with saying "within a company the size of Google".
Thinking about it, the same dynamics hold at even the smallest scale. If a company has two divisions of 25 employees in each division, over time they will start to feel like working at two different companies if you work in both divisions. Even the same department can feel like a different company after a management shakeup.
I had previously worked at numerous large tech companies - Microsoft, IBM, etc.
Small ones too - redhat when it was quite small, etc
It is, by far, the best large tech company i worked at.
At the same time I would offer within a company the size of Google, particularly one whose divisions are large and do such different things, you will find remarkably different cultures and experiences.