Well, it’s been a little over a month since I joined Google. I feel like Keanu Reeves in the Matrix: I know kung fu.
Not really, but I have learned a ton about Google. I took a Tech Immersion training class, I travelled to our gleaming Sunnyvale campus, I commuted on an infamous GBus (but in the wrong direction, reverse-commuting from the valley to downtown San Francisco), I visited the San Francisco office (where there are really cool views of the bay), and I mostly learned how to get around the sprawling Chelsea office in NYC. The Chelsea building is has quite a lot of history. And yes, there is excellent food everywhere. I am trying to take the stairs and walk more to counter that!
First things first though: the tech, as you may have heard, is nuts. In 2.5 weeks I only scratched the surface of the enormity that is Google tech. Calling this training “immersion” may be a little… ambitious. It’s impossible to go deep with Google tech in that short of a time period. It’s just too big!
However, we did learn how to use the famous mono-repo for source code, the also famous massive code-build system (which is open-sourced as Bazel), the code search and code review tools, and all of the other basic tools you need for excellent software engineering. In typical Google fashion, there’s a good research paper that summarizes these things if you want to read up on it more. The source code repository has literally billions of lines of source code, and you can search all of it instantly. Google is pretty good at search, and this includes source code!
More on said mono-repo in this talk:
I also learned more about practices like Site Reliability Engineering (SRE), which Google famously wrote the book(s) on, Testing, Accessibility, Security & Privacy, and others. This part of the training program was quite thorough and enjoyable.
Even more important, I learned how to learn things at Google. Meaning, I learned the basic patterns of documentation, collaboration, team roles, structures, and all of the elements that go into working in an organization. Given that this is by far the largest organization I’ve worked for, this was something that I was concerned about. How do I figure out who to talk to? How do I find information about team X or product Y? How do I understand how things work, and how can I get things done? Which cafes are open now? I’m happy that I now have reasonably good answers to these questions.
Books I’m reading to supplement my learning: