Programmer’s life at Google – Interview with Chris Smith

Hey! Sure programming is cool and demand for tech geeks is higher than crack these days. But have you ever wondered what programmer’s day actually looks like? Well I did, so I went to Twitter and got hold of 3 brilliant programmers – one from Google and two from StackOverflow. They told me what they do every day, what are their most and least favourite parts of their job and even shared how their workspaces look like. The first person I’ve approached was Chris Smith and he kindly agreed to do an interview with me. Very, very warm and approachable guy. Unfortunately his blog is open to invited readers only, but you can always follow him on Twitter! And now,  let me introduce:

chris smith profile

The interview with Chris Smith – Tech Lead / Manager at Google:

Introduction

“My name is Chris Smith, I’m a TLM or tech lead / manager at Google. Currently I have about 8 direct reports, and my job is to not only balance career development and growth in my people, but also to provide technical leadership and contribution. (e.g. code, design docs, etc.)

In a former life I worked at Microsoft on the F# team, and wrote Programming F# by O’Reilly. (Now it its second edition.)”

What your typical day looks like?

I’m in the office by around 8AM. I have two small dogs that get up early, and that means I get up early.

I spend about 20 minutes triaging email, either immediately responding to messages or flagging them to follow up later. The hours between 8AM – 10AM or when I do most of my actual coding. (Since the office is the quietest, and most people aren’t in yet to ask for help.)

I usually then have quick break for meetings. I work closely with a teams in New York and Munich, so those meetings are earlier in the day.

At 11:30 I enjoy the prototypical lunch at Google, and then back to more meetings. Usually these are 1:1s with people. 1:1s with my direct reports are to go over status, career goals, and help to remove obstacles. I also have a lot of 1:1s with other people in the organization. E.g. tech leads on partner teams, PMs, and other folk I or my team works closely with. Google has a very collaborative culture, which means that it is easier to finish big projects.

But the down side to that is building and maintaining a lot of different relationships.

Around 4PM or so, my meetings die down, and I can get back to email. By the end of the day I try to finish up any lingering messages, and/or plan my next day. If I’m not completely exhausted, I’ll go back to coding for another couple of hours. I’m out of the door by 6 or so, but it varies.

At home I try to avoid checking my email, but I have been known to slip up from time to time.

If you only could work 3-4 hours a day, what would you do during that time?

I definitely don’t think I could do my job in 3-4 hours a day. I would either have to focus on just people management or technical contribution, but I certainly couldn’t do both. If I had to choose, I would just do the people management side. (I enjoy that more, find it more fulfilling, and am probably, honestly better at it than I am at programming.)

So if I had to condense things into a 3-4 hour day, I would probably spend two hours in 1:1s and the other two hours at design reviews and/or reviewing design documents. I know many managers who feel they are too busy for regular 1:1s with their reports, I think that’s bullshit.

Do you use any organising tools?

I’m a heavy user of Gmail filters, and keep things documented in a swarm of Google docs.

For side projects at home I use Asana, and wish I could use it at work.

What does your workspace look like?

Chris Smith Work Setup

    You’ll find:

  • Post-its containing notes I took at a meeting
  • A couple of prizes I won at a Toastmasters speech competition
  • A few picutres of my wife
  • A Marvel Comics wall calendar
  • Two monitors, one with Gmail/Docs open all day and the second with a Console window. (Linux)

What’s your favourite thing about being a programmer?

The elegance of an efficient solution.

What you don’t like about being a programmer?

The hair brained notion that complexity is a good thing, or the hallmark of a more senior engineer. I yearn for the day that software “just works”.

Do you still find code or questions or challenges that seem like gibberish to you at first?

Absolutely, but that’s a good thing. All knowledge I have about programming languages, APIs, or frameworks has a shelf-life of about 9 months. I guarantee you that any framework that is heralded as the solution to all our problems today, will be the source of all of our problems next year.

It’s never fun to be confronted with a problem you know little about, but it is a sign that you are about to learn something new.


Thanks for reading, I hope you enjoyed it as much as I did. Don’t forget to share this on Twitter! :)