Six months into Google as Software Engineer: technical complexity & tooling
21 Aug 2022
« Previous chapter: work-life balance
Google is huge. I knew that even before joining it, but I hadn’t truly grasped how huge it is until I was inside. After six months, I still learn something new every single day. Just to give you some idea of how huge it is, here are some numbers:
- Google has 150 000 employees,
- present in over 70 offices across 50 counties,
- has over 250 products/services
- serves over a billion people
This level of scale surely comes with a great deal of technical complexity supported by custom Google-made internal tooling. Yes, almost all tools used by engineers at Google are built by Googlers. Why reinvent the wheel? — most of you might ask. Google products and services have their own specific needs and given its scale, it is beneficial to tailor its tools to those needs.
For example, when I joined Google, the only piece of relevant technology I had under my belt was Java. I know Git — we don’t use Git at Google. I know Spring — we don’t use Spring technologies at Google. I know MySQL/PostgreSQL — they are not used at Google either. I am very familiar with tools like GitHub/Jira/NPM — nope, we have our own. The internal tools Google uses are so optimized to its own needs that I think they might not even perform well if applied in other companies.
Thus, it can be challenging for a Noogler, like myself, to become productive in the team. New joiners face a big learning curve at Google. Thankfully, Google teams understand this very well and set the expectations for you accordingly. In the first six months, you are not expected to accomplish much. But, they do expect you to ramp up on the tools, technologies, and processes they use daily. To do that, you have more than enough useful resources in the form of guides, documentation, slides, code labs, and your ready-to-help teammates.
Being a Noogler can be quite stressful if you don’t have the right mindset. Imposter syndrome can hit one hard. That was especially true for me since I made a big change in my area of Software Engineering, moving from Web development to Android development. And, it is not just Mobile Android, but Automotive Android — those two, though they share common technical concepts, operate in different user experience areas. Some of the people I work with have more than 10 years of experience in Android development. That is very intimidating for an engineer who has zero experience.
To succeed as a Noogler, I believe it is important to assume you know little and keep asking questions like a newbie, no matter how stupid those questions might seem. Your teammates actually appreciate this because this demonstrates from your side a true effort to onboard the team. This unhesitant questioning will benefit you very much in the near future because the faster you get rid of those trivial how/where/when questions, the earlier you start working on juicy things such as delivering the next cool feature in your team’s OKRs.