|
|
@ -12,23 +12,18 @@ roles: |
|
|
|
shortDescription: > |
|
|
|
shortDescription: > |
|
|
|
Optimizations and flexibility for multiplatform builds for Bazel projects. |
|
|
|
Optimizations and flexibility for multiplatform builds for Bazel projects. |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Primary expert and contact point for _configuration trimming_, a major |
|
|
|
Primary expert for _configuration trimming_, a major overhaul of Bazel's |
|
|
|
overhaul of the internals of Bazel's multiplatform support which saves |
|
|
|
multiplatform support to save time and memory for users by collapsing |
|
|
|
build time, build artifact disk space and build graph memory by collapsing |
|
|
|
equivalent nodes in the build graph. |
|
|
|
redundant nodes together (e.g., deduplicating Java binaries which only |
|
|
|
|
|
|
|
differ by the Python version they're built for). |
|
|
|
|
|
|
|
achievements: |
|
|
|
achievements: |
|
|
|
- id: feature-flags |
|
|
|
- id: feature-flags |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Designed and built a feature flag system for Bazel which allows |
|
|
|
Designed and built a feature flag system for Bazel, used by ~50 |
|
|
|
Android developers to toggle build dependencies without needing to |
|
|
|
Android teams within Google with more asking to be enabled weekly. |
|
|
|
create parallel trees. Used by ~50 Android teams within Google, with |
|
|
|
|
|
|
|
more asking to have the feature enabled weekly. |
|
|
|
|
|
|
|
- id: whitelisting |
|
|
|
- id: whitelisting |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Designed and built a mechanism for controlling rollouts of Bazel |
|
|
|
Designed and built a mechanism for controlling rollouts of Bazel |
|
|
|
features based on build package for use with feature flags, which |
|
|
|
features, which was quickly adopted by other subteams within Bazel. |
|
|
|
was quickly adopted by other subteams within Bazel. |
|
|
|
|
|
|
|
- id: attribute-refactor |
|
|
|
- id: attribute-refactor |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Refactored Bazel's attribute support, prompting a code owner to |
|
|
|
Refactored Bazel's attribute support, prompting a code owner to |
|
|
@ -40,34 +35,39 @@ roles: |
|
|
|
engineer over a day's builds. |
|
|
|
engineer over a day's builds. |
|
|
|
- id: tagged-trimming |
|
|
|
- id: tagged-trimming |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Implemented, built a fully automated migration tool for and consulted |
|
|
|
Implemented manual trimming to get Android developers |
|
|
|
with users to roll out manual trimming to get Android developers |
|
|
|
reduced memory use immediately, saving multiple GB of memory |
|
|
|
reduced memory use immediately, saving multiple gigabytes of memory |
|
|
|
per build and avoiding OOM conditions. |
|
|
|
per build and preventing OOM conditions for larger builds. |
|
|
|
- id: tagged-trimming-rollout |
|
|
|
|
|
|
|
description: > |
|
|
|
|
|
|
|
Built a fully automated Python-based migration tool for and consulted |
|
|
|
|
|
|
|
with users to roll out manual trimming, saving hours of tedious manual |
|
|
|
|
|
|
|
corrections per project. |
|
|
|
- id: auto-trimming |
|
|
|
- id: auto-trimming |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Researched options for automatic trimming, wrote over 60 pages of |
|
|
|
Researched the automatic trimming problem and wrote over 60 |
|
|
|
design documents proving the viability of trimming and the tradeoffs |
|
|
|
pages of design documents proving the viability of trimming and the |
|
|
|
of different options, built a TypeScript/Angular2-based prototype |
|
|
|
tradeoffs of different options. |
|
|
|
to gather data on builds and eventually integrated a prototype into |
|
|
|
- id: trimming-prototype |
|
|
|
Bazel. |
|
|
|
description: > |
|
|
|
|
|
|
|
Built a TypeScript/Angular2-based prototype to gather data on the |
|
|
|
|
|
|
|
tradeoffs of different trimming algorithms with real builds and |
|
|
|
|
|
|
|
integrated a prototype into Bazel. |
|
|
|
- id: bazel-u |
|
|
|
- id: bazel-u |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Ran multiple talks for the Bazel team about trimming and feature |
|
|
|
Ran multiple talks for the Bazel team about trimming and feature |
|
|
|
flags, consulted across Bazel and with other teams on the viability of |
|
|
|
flags, consulted with individual developers across teams, and received |
|
|
|
trimming techniques for different use cases, and received a peer bonus |
|
|
|
peer bonus for my expertise. |
|
|
|
for my expertise. |
|
|
|
|
|
|
|
- id: trimming-metaphors |
|
|
|
- id: trimming-metaphors |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Wrote a document explaining the complex concepts, techniques, and |
|
|
|
Wrote an easy-to-read introduction to the complexities of trimming and |
|
|
|
history of trimming in an easy-to-read manner and received a peer |
|
|
|
received a peer bonus describing it as "one of the best docs I've read |
|
|
|
bonus describing it as "one of the best docs I've read at Google." |
|
|
|
at Google." |
|
|
|
- id: bazelcon |
|
|
|
- id: bazelcon |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Solicited experts for office hours for BazelCon 2018 and managed rooms |
|
|
|
Solicited experts for BazelCon 2018, coordinated rooms day-of, made |
|
|
|
and experts day-of, allowing the show to go on despite last-minute |
|
|
|
office hours work despite last-minute loss of venue. Received a peer |
|
|
|
loss of our planned venue and receiving a peer bonus from the head |
|
|
|
bonus from the head organizer. |
|
|
|
organizer. |
|
|
|
|
|
|
|
- id: personal-postmortem |
|
|
|
- id: personal-postmortem |
|
|
|
description: > |
|
|
|
description: > |
|
|
|
Wrote, gave a talk on, and received a peer bonus for a document |
|
|
|
Wrote, gave a talk on, and received a peer bonus for a document |
|
|
|