I believe the YouTube video linked from the wired article goes into this, but there's more machine generated code checked in than human generated code at this point. A lot of this is boilerplate or config data that is stored in source control.
I feel like Google definitely believes that config is code, so we have a ton of configuration of our systems checked into Piper.
But you know, there are tons of configs, all kinds of.
If you commit all your codegen’d stuff you don’t need to worry about how to run codegen in most places. You can enforce a lot of security properties, you can run large scale analysis on the code in production because it’s all “statically” available, etc.
That said, I think Google’s source control ecosystem is really quite different to what’s publicly available with systems like Git/Hub/Lab etc, even to Phabricator. These approaches work well at Google but don’t necessarily translate to other tools in the same way.
Don’t take these sorts of things as gospel, or even as google advice about good engineering. Understand what they achieve, and then figure out a way to achieve that same result with the tools available to you.
For example, "everything comes from a repo" would make object (.o) caching that much more straightforward.
And you can reason both about the logic behind a service and how it was configured from a single commit hash/CL.
> Do they do an immense amount of code generation?
Blaze (aka Bazel [0]) has provisions that make it easy to generate code but this happens as a compile step rather than something that is checked into a git repo.
[0] - https://bazel.build/
For L4 maybe there are more days where one can do several hundred LOC in an afternoon than L5, but there are also many days that result in 100 or less over an entire week, because there's testing, debugging, profiling and figuring out what to code.
But, maybe I'd be wrong about Google. Afterall, it might be easier to dump lots of code into the codebase if there are 10 independent chat apps in development at any one time.
A 200 line change typically doesn't grow the code base by 200 lines.
I believe in my 2.5 years at Google, I've actually deleted more lines of code than I've added.
So working some week-ends and no vacations at all?
There are about 260 week days in a year. Add bank holidays and vacations and you should ve closer to 230 working days in a year.