It's a vulgar saying, but true. It is one of the primary reasons I don't blog much about work. But I don't work for Google anymore, and my consulting gig at Blue Origin is finished. So I think I'll be blogging a bit about working at Google and a bit about consulting. Of course I'm obligated to not deliver the “real dirt”, so I won't say anything you couldn't find out through public sources, and everything I say will reflect the past, not the present. Things may have changed.
I stayed at Google several years longer than I should have. It left me a bit ill-prepared for the real world. At Google, we used mostly custom, in-house software development tools. Google's build tool, Blaze, was released to the outside world as Bazel, and it does a lot of what Maven and Artifactory do for building and tracking build dependencies. There was a way to use git with the source control, but it was optional and I preferred to use the Perforce-like interface directly. We didn't use a tool like gitlab for code reviews, we had our own in-house tool. We used protocol-buffers for inter-process communication, not JSON generated by Swagger. Google's internal cloud was built long before Kubernetes. The tools provided were all decent tools, but they aren't the “industry standard”, and when I started consulting I was a bit at sea with a tool set that was similar, but not exactly the same thing. The fact is you have to be familiar with a lot more tools than you used to be: autoconf, make, and GCC don't cut it anymore.
The consulting gig was a trial by fire. I prefer programming the back-end and systems level to programming the front-end and user-interface, but out of necessity I got to write Angular, and typescript, use node.js, and write GraphQL queries to support the UI. I got to store things in MongoDB rather than in Bigtable. I even used IntelliJ instead of Emacs (somewhat. I still used Emacs for serious editing.) And although both jobs made use of Java, even it has changed a fair bit.
So I'm looking forward to the my newest job and I expect the learning curve to be not quite as steep. No doubt there will be some new tools but probably not all new tools.
Phabricator is rather similar in spirit to Mondrian, and much superior to using Git{Hub,lab}'s review facilities. I used it at my last job, where both my boss and I were Xooglers, and I have proposed introducing it at my new job. It integrates fine with Git{Hub,lab} but basically uses them as dumb git stores.
ReplyDelete