Thursday, January 22, 2015

Day in the Life of a Google Manager

Not long after joining Google back in 2010, I wrote this cheeky piece contrasting my daily schedule at Google with my previous career as an academic. Looking back on that, it's remarkable how much my schedule has changed in four years, in no small part because I'm now managing a team and as a result end up doing a lot less coding than I used to.

So, now seems like a good time to update that post. It will also help to shed some light on the differences between a pure "individual contributor" role and the more management-focused role that I have now.

By way of context: My role at Google is what we call a "tech lead manager" (or TLM) which means I'm responsible both for the technical leadership of my team as well as the people-management side of things. I've posted more details about the TLM role elsewhere, so I won't repeat that here. Our team has various projects, the largest and most important of which is the Chrome data compression proxy service. We're generally interested in making Chrome work better on mobile devices, especially for users in slow, expensive networks in emerging markets.

The best part of my job is how varied it is and every day is different (and I usually have a lot of balls in the air). The below is meant to represent a "typical" day although take that with a grain of salt given the substantial inter-day variation:
6:45am - Wake up, get the kids up and get them ready and make them breakfast, shower. 
8:30am - Jump on my bike and ride to work (which takes about 10 minutes), grab breakfast and head to my desk. 
8:45am - Check half a dozen dashboards showing various metrics for how our services are doing -- traffic is up, latency and compression are stable, datacenters are happily churning along. 
9:00am - Catch up on email. This is a continuous struggle and a constant drain on my attention, but lately I've been using Inbox which has helped me to stay afloat. Barely. 
9:30am - Work on a slide deck describing a new feature we're developing for Chrome, incorporating comments from one of the PMs. The plan is to share the deck with some other PM and eng leads to get buy-in and then start building the feature later this quarter. 
10:00am - Chat with one of my teammates about a bug report we're chasing down, which gets me thinking about a possible root cause. Spend the next half hour running queries against our logs to confirm my suspicions. Update the bug report with the findings. 
10:30am - I somehow find my morning has not been fully booked with meetings so I have a luxurious hour to do some coding. Try to make some headway on rewriting one of our MapReduce pipelines in Go, with the goal of making it easier to maintain as well as adding some new features. It's close to getting done but by the time my hour is up one of the tests is still failing, so I will spend the rest of the day quietly fuming over it. 
11:30am - Meet with one of my colleagues in Mountain View by video hangout about a new project we are starting up. I am super excited to get this project going. 
12:00pm - Swing by the cafe to grab lunch. I am terrible about eating lunch at my desk while reading sites like Hacker News - some habits die hard. Despite this, I still do not have the faintest clue how Bitcoin works.
12:30pm - Quick sync with a team by VC about an internal summit we're organizing, to plan out the agenda. 
1:00pm - Hiring committee meeting. We review packets for candidates that have completed their interview loops and try to decide whether they should get a job offer. This is sometimes easy, but often very difficult and contentious, especially with candidates who have mixed results on the interview loop (which is almost everyone). I leave the meeting bewildered how I ever got a job here.
2:00pm - Weekly team meeting. This usually takes the form of one or more people presenting to the rest of the team something they have been working on with the goal of getting feedback or just sharing results. At other times we also use the meeting to set our quarterly goals and track how we're doing. Or, we skip it.
3:00pm - One-on-one meeting with a couple of my direct reports. I use these meetings to check in on how each member of the team is doing, make sure I understand their latest status, discuss any technical issues with their work, and also talk about things like career development, setting priorities, and performance reviews. 
4:00pm - Three days a week I leave work early to get in an hour-long bike ride. I usually find that I'm pretty fried by 4pm anyway, and this is a great way to get out and enjoy the beautiful views in Seattle while working up a sweat. 
5:00pm - Get home, shower, cook dinner for my family, do some kind of weird coloring or electronics project with my five-year-old. This is my favorite time of day. 
7:00pm - Get the kids ready for bed and read lots of stories. 
8:00pm - Freedom! I usually spend some time in the evenings catching up on email (especially after having skipped out of work early), but try to avoid doing "real work" at home. Afterwards, depending on my mood, might watch an episode of Top Chef with my wife or read for a while (I am currently working on Murakami's 1Q84).
Compared to my earlier days at Google, I clearly have a lot more meetings now, but I'm also involved in many more projects. Most of the interesting technical work is done by the engineers on my team, and I envy them -- they get to go deep and do some really cool stuff. At the same time I enjoy having my fingers in lots of pies and being able to coordinate across multiple active projects, and chart out new ones. So it's a tradeoff.

Despite the increased responsibilities, my work-life balance still feels much better than as an academic. Apart from time-shifting some of my email handling to the evening (in order to get the bike rides in), I almost never deal with work-related things after hours or on the weekends. I have a lot more time to spend with my family and generally manage to avoid having work creep into family time. The exception is when I'm on pager duty, which is another story entirely -- getting woken up at 3 am to deal with a crash bug in our service is always, um, exciting.


18 comments:

  1. "my work-life balance still feels much better than as an academic" - just to tell us, to convince yourself, both?
    The whole set of posts seems to be very pro-Google, there should be something you are missing, no?

    ReplyDelete
    Replies
    1. I've posted about this before, but I do miss working with students and teaching.

      Delete
    2. I've posted about this before, but I do miss working with students and teaching.

      Delete
    3. Every tenured professor (at Harvard and elsewhere) smiled when you revealed you have to do pager duty in your 40s. :)

      Delete
  2. Sounds pretty sweet. Similar to management roles at other large tech companies, I think, but still interesting. One big difference might be that the culture is so accepting of leaving at 4pm and then filling in with a little more work in the evening. That's a rarity in my experience; time in building can be the primary signal of working hard in large companies despite the obvious low quality of that signal. Thanks for posting the details.

    ReplyDelete
    Replies
    1. From the website domain, he seems to be writing from Austria?

      Here it seems quite normal, that you can leave earlier. I work at a company with so called "core time" from 9am to 3pm, so I can leave at 3pm if I like, as long as I do my scheduled work hours (38.5 per week) over the whole year. Normally, meetings are also scheduled in this window. Only one time I had one (with external company) which lasted until 5pm on Friday - which sucks, because normally on Friday, everyone leaves at 3pm.

      Another job offer in Austria also had this core time system. And I think in Germany it's normal, too. At least for software developers it seems so.

      Delete
    2. > From the website domain, he seems to be writing from Austria?

      They try to serve everything from a local top level domain. I get my country top-level domain here as well.

      Don't know why they do it, I guess it has been a contributing factor to why I don't use blogger much anymore, but I guess since blogger is part of google they have done it for a reason. I mean google wouldn't break something that worked perfectly well for no reason?

      Delete
  3. How hard of a struggle is it for you to give up precious coding time? It seems like you miss it. How do you put aside time for continuous learning? Do you rely on the engineers on your team to help educate you on new techniques? Great post.

    ReplyDelete
  4. Matt, I don't know if this is only for you/team or pretty similar across Google. In Microsoft where I am currently working, I do see different situations from team to team. In some team it is pretty hectics, in some other teams it can be quite flexible like this. Also, I have been in both situations and overall it is not that much different from Microsoft or a startup that I was in few years ago. If you enjoy it there why don't you also consider Microsoft? You can work on HoloLens :)

    ReplyDelete
  5. This is interesting to read, but it sounds like his time is really completely dominated by the company. His personal time is so valuable, and yet he is giving it away. The one thing you can never get back is time.

    ReplyDelete
    Replies
    1. I think Google pays him.

      Delete
    2. And how is he going to use that money when he's always at work?

      Delete
    3. I don't understand what you're getting at. I'm describing a fairly typical 40-hour work week. Obviously I'm not working on the weekend and this post doesn't say anything about the rest of my personal life.

      Delete
  6. It was a fun post and agrees with my experiences. But 1Q84 - it's not worth it. It really isn't.

    ReplyDelete
    Replies
    1. I oppose, I liked reading it.

      Delete
  7. Wow! that sounds like a dream. My day as a manager consists of endless meetings with clueless other managers, and then being endlessly chased by my micro... nah, make that nanomanager about random bugs that no one care about and then trying to make some sense of our roadmap, with architects too busy working on their pet project.
    My employees are feral and react very badly to me trying to get some coding done, their image of the manager is defo the man with the stick

    ReplyDelete
  8. In a past life, i ran a simular life as a search engineering manager at yahoo in london, except the 10 min commute for me was a 90 minute commute. One thing i notice about organisations is that the bigger they get the more people are involved in doing simple things. More fiefdoms with moats and walls around them. We once worked out that to change the copyright notice on the bottom of every page in the y! Network, would cost millions of dollars, take 4 years and would involve over a 1000 people, and over a year of continious meeting time. Operating in that kind of swampland requires a certain patience.

    ReplyDelete
  9. When you do get to do some coding, is it all in Go?

    ReplyDelete