Things I Learned at Google: Prologue

This is part zero of a multi-part series on lessons I learned while working as a software engineer at Google. If you’d like to skip the biography and get to the content, part one is here.


Everything that follows is just my opinion, informed by a seven (and counting) year stint at Google at the beginning of my career. Any advice is specific to me and my experience – it may not generalize to you and yours. Also, I am deeply biased: there is going to be a lot of ‘Google does X and X works well’.

My Story

I first joined Google as an intern in the summer of 2016, working on a web UI team within Google Ads (then AdWords). The internship earned me a full-time job interview and eventually an offer for a role on the Google Drive web frontend team in Boulder, CO. After graduation, I started my ‘real’ career there in the fall of 2017.

The Drive Web frontend team was large (~18 engineers) and senior, including several people with over a decade at Google and some who had worked on Drive since its inception. In this environment I quickly reappraised my skills: I was an average programmer with no knowledge of software engineering whatsoever. In hindsight, my time on Drive felt like ‘the academy’; I got trained in many software engineering skills that were missing from my university CS program and worked under some fantastic leaders and role models. Many years later I still think about emulating the people I looked up to on that team.

After a year (and for personal reasons) I transferred roles to move to the Seattle office. I loved my team in Boulder and was sad to leave them behind, but I found a great new role on the Google for Nonprofits team. This was the complete opposite experience in terms of organizational scale: the entire (full stack) engineering team for the product was five people.

With that came lots of opportunities to broaden my skill set as well as a practical education in large company dynamics. While Drive was a behemoth, the nonprofits team was (affectionately) a sideshow in the corporate engineering product area. This meant limited resources and headcount, but also comparative freedom from micromanagement by higher-ups. The team had ownership of the product and pursued its mission diligently – I was proud to be a part of it.

However, luck changed in 2021 when a reorg moved the team under a new director in Google’s philanthropy organization. This greatly disrupted the team’s work and motivated me to look around for other opportunities. Ultimately I transferred roles again, this time joining Google Cloud to work on the Cloud Console UIs for Dataflow and Pub/Sub. As I write this, it’s been three years since I joined Google Cloud.

The first notable piece of my experience in Cloud has been working as part of a more typical business unit. Because Google’s revenue has historically been so concentrated in the Ads product area, a majority of engineers work on products that don’t generate much revenue (Drive is a classic example here – though organizations do pay for it via Google Workspace, it’s mostly given away for free). Cloud has a more typical business model: customers pay based on their usage of the products and services. This creates more classical org dynamics (for better and worse) and has been a great learning experience. It’s pleasantly simplifying to have customers that pay you when you solve their problems!

The second notable piece of my time in Cloud has been acting as the tech lead (often abbreviated ‘TL’) of my team. At Google, TL is an informal leadership position that brings with it responsibility for setting a team’s technical direction, mentoring junior employees, and guiding team practices. In 2024, one of the most enjoyable parts of my job now is facilitating an environment where team members can learn and grow.


With apologies to Mary Schmich

If I could offer you only one tip for the future, ‘send small PRs’ would be it. The long-term benefits of sending small PRs have been proved by scientists, whereas the rest of my advice has no basis more reliable than my own meandering experience