It has been over 6 years since I joined Google and throughout this time I have been in the Storage SRE family: first with GFS, then with Colossus, and last with Persistent Disk. Even though this counts as 3 different teams, the reality is that I have been doing mostly the same type of work all around.
I had pondered the idea of switching to a pure Software Engineer (SWE) role for all these years and never taken any action. Until now. Things change, and the time has come for me to make a move and pursue that thought in an effort to grow in a different direction. And why now, you ask? Well, simply because I have found a role in the NYC office for a project that I am personally passionate about.
The new team
So, without further ado, today is my first day in the Blaze development team. The specific details of what I’ll be doing is something I cannot share here, if only because they are still blurry to me!
What I can say, though, is that Blaze was released as open source in March of 2015 under the Bazel project. Around that time, I wrote an article titled On Bazel and Open Source which introduced Bazel and then went on to describe some of the shortcomings that would prevent wide adoption in the open source world if those issues went infixed
That article was seen as unnecessarily negative by some. So, as I like to think about it: the time has come for me to put my efforts where my mouth and interests are. I don’t know if I’ll have the time to address the issues I described in that article about Bazel, but I surely hope to have a chance to contribute to the open source project.
Writing Java
As you may know, Blaze/Bazel are Java. Some of my peers have made fun of this fact, but you know what? Modern Java is quite nice and enjoyable to write with a proper IDE, so I’m looking forward to that.
I have recently come to this conclusion while working on the Nudgy Timer Android app I announced a month ago. I had not coded in Java for 7 years and I started doing so again for this app, resulting in a pretty nice experience. (Not because Android Studio, which I’d rant about… but because of Java itself and IntelliJ’s coding aids.)
Looking back
I don’t leave my previous SRE position without realizing that I have learned a damn lot over these 6 years in this role. You know, when I joined Google I wondered why I ended up in SRE because my expertise “didn’t line up well” (ha, ha, now I know it did in fact). I have also had friends routinely ask if I got a lot of training at Google, to which my answer always was “no, not really”. But the truth is that the training has happened and now I know much more about running a production system than I ever thought I would.
And because of this, I want this same stealthy process to improve my software development skills. It’s true that I have been working as a software engineer in a multitude of distributed open source project like NetBSD, but being an enthusiast is one thing and developing professionally for a project whose developers sit in the same cube as oneself is a very different one—and I have never done the latter yet.
Exciting times lie ahead.