Thursday, June 17, 2010

Working for The Google

I am about to take a one-year sabbatical from Harvard to join Google. If you haven't heard of them, Google is this little startup company with this really neat website that lets you search for just about anything on the Internet. It is very cool.

I'm going to be at the Google office here in Cambridge (since I can't move my family right now) but expect to work with folks at the Seattle and Mountain View offices. This way I can also keep tabs on my research group at Harvard and hopefully keep things moving along here. But largely I am going to be stepping back from my academic responsibilities -- I intend to fully dive into the Google job and immerse myself in that environment.

A lot of people have asked me what I'll be doing at Google. I can't say much, but I will hint that it has to do with using high-energy lasers to digitize real objects into a computer system called the MCP. I am sure nothing can possibly go wrong with this project.

Seriously, I only have a vague idea of what I will be working on, but the high order bit is that my job title is simply "software engineer." Essentially, I'll be writing code. Not leading a project or doing "research" or anything like that. To be honest, this makes me extremely happy -- I miss hacking on a daily basis and look forward to being a grunt in the trenches, so to speak. As far as I can tell, this is how most people come into Google, regardless of their level of experience. Craig Chambers, who left a tenured position at University of Washington to join Google, told me that he came in as a software engineer, hacking on someone else's project, and it wasn't until he had been at it for a while that he started defining his own projects and leading his own teams.

The way I think of it, being in academia is a lot like building toy boats and playing with them in your bathtub.

From http://www.flickr.com/photos/timothymorgan/522553650/
Of course, this has many advantages -- you get to completely define the experimental environment, don't need to worry about aspects of the boat design that don't interest you, and can explore radically new designs without much concern for legacy approaches or "making money." At the same time it can get pretty disconnected from reality, depending on how you approach it.

Whereas being at Google is like working on an aircraft carrier at sea.

From http://www.naval-technology.com/projects/cvn-21/cvn-211.html

In my case, my job will be to polish the portholes on the poop deck, and I won't have much influence on the overall design or direction of the ship -- but hey, I'll learn a lot in the process. There is also something very attractive about writing code that will actually be part of a running system and potentially used by millions of people every day. Of course, I'll have to get used to things like writing tests and doing code reviews, and working under a vast number of constraints that we tend to ignore in academic settings.

Keep in mind I've never really worked as a software engineer. In a lot of ways I feel totally unqualified to teach my students about writing good code or building reliable systems since I've never actually had to do it myself. (That's not quite true -- the research systems I build are subjected to rigorous stress testing, but certainly aren't mission-critical the way Google's code has to be.) A stint at Google will hopefully make me a better programmer, system designer, and researcher.

I'm not yet sure whether Google is going to let me continue blogging while I'm there -- hopefully they will let me blog about non-Google-related topics, but we'll see. Maybe I just need a pseudonym -- if you see a blog pop up called "Final and Centralized" you'll know it's me...

20 comments:

  1. I am curious about professors who go to sabbaticals - how would your students manage? Do they also write code for goog?

    ReplyDelete
  2. Fortunately my students are pretty independent and I have a couple of great postdocs to help keep them in line. My students will have nothing to do with the stint at Google - this is completely separate from my Harvard group.

    ReplyDelete
  3. Welcome aboard! It's great to see academics doing stints in the real world. The place takes a bit of getting used to, but once you've figured out the ropes, you can do all sorts of interesting things. I look forward to hearing what you accomplish.

    ReplyDelete
  4. You have to wear that hat the whole time.

    ReplyDelete
  5. This sounds like a great opportunity. I find myself in a similar position, teaching many practice-oriented courses but without having significant non-academic project experience. I hope that, even if you cannot blog about your specific projects, that you will continue sharing your experiences.

    ReplyDelete
  6. As a faculty member who has thought about doing exactly this, how did you go about it? Did they ask you? or did you make the first contact?

    How would you recommend one approach getting a 1 year sabbatical at Google?

    ReplyDelete
  7. Quick, someone set up the Fake Matt Welsh blog before Matt does!

    Plenty of Google employees are active bloggers.

    ReplyDelete
  8. I approached them - helps to know some people inside the company. To be clear, I don't think they do "sabbaticals" in the conventional sense - I'm actually hired as a full time software engineer and had to go through the whole interview process and everything.

    ReplyDelete
  9. Wow!!!
    Will you shed some light on the hiring process too??

    ReplyDelete
  10. Great news Matt.. did you applied there as a fallback just in case the tenure thing doesn't work out? :)

    ReplyDelete
  11. Re: "Fallback". I think it's safe to assume that having a job at Google is a great backup plan, even if tenure **does** work out!!

    ReplyDelete
  12. How will this affect your recently announced decision to become the editor in chief of ACM tosn? I assume that a regular software engineer at Google is not allowed to work on such things at company time (even the famous "20% projects" at Google need to be in line with what the Google management feels is appropriate, from what I gather). Will you carry out this work on weekends only, or have you negotiated a deal where you will be able to work on ACM tosn as paid Google work?

    ReplyDelete
  13. I don't know what Google's policy is with respect to outside activities, but I imagine they will treat it like any other external service. Plenty of Googlers serve on conference program committees, for example. Being the TOSN editor-in-chief is not a paid position and frankly is not that much work, so I can do it in my "spare time" if need be. I'd be surprised if this were a problem.

    ReplyDelete
  14. Very nice!

    Hope you like our prespective of the world :)

    Enjoy it!

    ReplyDelete
  15. Do you see a possibility of staying at Google after the sabbatical and not returning to academia?

    ReplyDelete
  16. In my other life, I worked at a university for almost a decade. Your description, "academia is a lot like building toy boats and playing with them in your bathtub", is spot on. Your future students stand to gain a great deal by your tour of duty.

    Enjoyed the post. Wish you the best.

    MT

    ReplyDelete
  17. A professor working in Google? At a glance, it's like adding new heavy artillery weapon in that aircraft carrier.

    Is there really a big gap between being an academia and working in a real world, in case as you are a professor?

    ReplyDelete
  18. I had Craig Chambers for my compilers course @ UW! Nothing like grammar trees...

    ReplyDelete
  19. There are no portholes on the poop deck :-)

    ReplyDelete
  20. Nice employer :-) and we know what we are Talking about !

    ReplyDelete