Quoting the Bazel website:

Bazel is an open-source build and test tool similar to Make, Maven, and Gradle. It uses a human-readable, high-level build language. Bazel supports projects in multiple languages and builds outputs for multiple platforms. Bazel supports large codebases across multiple repositories, and large numbers of users.

I started working on this project in 2016 as part of a role change within Google and my primary focus was to make Bazel run well on the macOS platform, specifically to support the Google-internal iOS development community. The port already existed when I joined the team, but it was mostly a prototype that lacked stability and polish.

What did I contribute?

Taken stright from my resume:

  • As the Tech Lead of a subteam of 4, I provided direction, mentorship, and established planning and execution procedures to ensure we all saw the big picture and avoided team burnout. I also redid our planning process after observing routine pain points and gathering feedback from the team and from external TLs.
  • Led a tactical response to the COVID-19 WFH situation to address pain points in builds on laptops with limited resources and on poor network connections.
  • Rewrote Bazel’s dynamic scheduling feature, which is critical for good build performance, to make it resilient to networking blips and variable latency. See talk.
  • Made Bazel on Mac able to reach Google-internal’s remote execution engine, which required porting the code to using gRPC, clearing roadblocks to establish a connection to production, and rolling out a new proxy service. This sped up clean builds by 50%.
  • Wrote many public blog posts on Bazel internals and presented at various conferences (including the public BazelCon) to spread awareness about our product and our work.
  • Sped up action sandboxing on macOS by 4x by designing and implementing a FUSE file system (sandboxfs) and integrating it into Bazel.
  • Acted as the point of contact during an engagement with the YouTube iOS developers to address their pain points in developer velocity, and succeeded at fixing them.
  • Added telemetry to our internal Bazel on Mac variant, creating a dashboard that has been used for years to understand the behavior of our user base.
  • Established team-wide (~50 people) practices, like a bug triage policy and a weekly knowledge-sharing event.

Related blog posts