After ~12.5 years at Google and ~10 years working on Go (#golang), it's time for me to do something new. Tomorrow is my last day at Google.
Working at Google and on Go has been a highlight of my career. Go really made programming fun for me again, and I've had fun helping make it. I want to thank Rob Pike for letting me work on Go full time (instead of just as a distraction on painfully long gBus rides) as well as Russ Cox and Ian Lance Taylor and Robert Griesemer and others for all the patience while I learned my way around. I've loved hacking on various packages and systems with the team and members of the community, giving a bunch of talks, hanging out in Denver, Sydney, MTV, NYC, at FOSDEM and other meet-ups, etc. While I've learned a bunch while working on Go, more excitingly I discovered many things that I didn't know I didn't know, and it was a joy watching the whole team and community work their (to me) magic.
I'll still be around the Go community, but less, and differently.
@golang.org email will continue to work and please
continue to mail me or copy me on GitHub (
especially for something broken that might be my fault.
In somewhat chronological order, but not entirely:
<link rel="me">and FOAF and other such semantic social links between pages, indexing it all, and exporting it over a public API. It's since been shut down, but I learned a lot about Google indexing, production (Borg, BigTable, MapReduce), got up to speed on Google-used languages & style (C++, Java, Python, Sawzall).
make -j9999of arbitrary code out over a cluster of machine building in a custom FUSE filesystem that watched what got written and communicated back to the coordinator server. It was internal code, but its spirit lives on in hanwen/termite, a Go implementation written later.
go/bradfitz for the internal version of this document.
(It's approximately the same but with a bit more stuff I can't or don't
want to share publicly.)
Little bored. Not learning as much as I used to. I've been doing the same thing too long and need a change. It'd be nice to primarily work in Go rather than work on Go.
When I first joined Google it was a chaotic first couple years while I learned Google's internal codebase, build system, a bunch of new languages, Borg, Bigtable, etc. Then I joined Android it was fun/learning chaos again. Go was the same when I joined and it was a new, fast-moving experiment. Now Go is very popular, stable and, while there's a lot to do, things--often necessarily--move pretty slowly. Moving slowly is fine, and hyper-specializing in small corners of Go makes sense at scale (few percent improvements add up!), but I want to build something new again.
I don't want to get stuck in a comfortable rut. (And Google certainly is comfortable, except for open floor plans.)
TBA. But building something new.
Update (2020-01-30): I'm joining Tailscale.