click here for my current blog

this blog is no longer maintained and is here only for archival purposes

Go at Google

Late last year I interviewed at Google. It was an interesting experience which, at first, I took kind of whimsically. As the hiring process progressed, I began to realise that I might have actually be in. On Christmas Eve I was told I’d be receiving an offer, and by early January I had given notice at my previous workplace.

The job I took was Developer Programs Engineer for the Go team. Go (see golang.org) is a new, experimental programming language by a team led by Rob Pike at Google in Mountain View. Being a DPE is basically about being an engineer in service of developers, both inside and outside Google. My primary goal is to make life better for developers interested in Go; to improve the language’s tools, infrastructure, libraries, and documentation, and build the community. Needless to say, I have my work cut out for me.

Go is a really interesting and exciting language. At first glance, it doesn’t appear to offer anything particularly new. Its expressive concurrency primitives (goroutines and channels) are its most eye-catching features, but other languages have done these things before (among them is Newsqueak, for which Rob was also responsible). What excites me most about Go is the care and taste with which it has been crafted. The spec is short, comprehensible, and – most importantly – consistent. Its design addresses the issues of real programmers in a pragmatic way; it is a joy to use.

Recently, I’ve been coding almost exclusively in Go (although I have been using Python for godashboard). The more I use it, the better I like it. In addition to the code I’ve contributed to the Go project, I’ve put a couple of small things up on my github page. There should be some more interesting stuff there over the next couple of months as my productivity picks up.

I started at Google on the 1st of February, I’ve now been there 3 months. I’ve learned a huge amount in that time. It’s taken a while, but I’m now just starting to feel comfortable in my role. It is an amazing privilege to be part of such a star-studded team at a truly extraordinary company. Beyond my small team, the other engineers at Google are – unsurprisingly – the best I’ve ever worked with. (Many of them have quickly become my friends.) There is a wonderful culture of directness, openness, and co-operation which enables some incredible engineering at unprecedented scale. It is both inspiring and humbling to be a part of it.

If you’re interested in learning Go, then have a look at the Go Tutorial as well as the “Writing Web Applications” code lab I recently published.

Leave a Reply