Almost exactly one year ago I wrote the first commit for rules_xcodeproj. Like a lot of software engineers, I’m pretty bad at estimating, and thought that I would be able to finish 1.0 in 2 to 4 months 😅. The longer development cycle was a result of an increased scope and level of quality that I came to expect for a proper 1.0 release. Over the course of the year, I believe the project has risen to meet my expectations, and today I’m happy to announce the release of version 1.0 of rules_xcodeproj!
At BuildBuddy, our mission is to bring the world's best developer tools to every company. A big part of that mission involves building a team folks with deep industry experience helping companies build and scale their systems.
That's why we're so excited to share that Son Luong Ngoc has joined BuildBuddy as a Solutions Engineer. His work with Bazel at scale will directly benefit BuildBuddy users and customers.
Son Luong is a contributor to bazel, git, rules_go, rules_docker, bazel-gazelle, and more. He's also a regular contributor to the Bazel Slack and maintains an incredible blog that explains the inner workings of Bazel.
Son Luong joins us from Qarik, where he helped large enterprises with Bazel and scalable build infrastructure. Prior to Qarik, Son Luong was an SRE at Booking.com, where he helped scale their Bazel monorepo.
We look forward to working alongside Son Luong to build the future of developer tools.
Welcome to BuildBuddy, Son Luong!
Bazel 6.0 includes over 3,100 changes since 5.4. It's the latest major release, following the release of 5.0 in January of this year, and it's Bazel's third LTS release. Since there were so many changes, many of them quite impactful, I felt I needed to review them all and provide a nice summary for y'all.
To fulfill our mission of bringing the world's best developer tools to every company, the most imporant thing we can do is hire incredible Software Engineers with experience building and scaling great software. That's why we're excited to share that Jim Hollenbach is joining BuildBuddy's engineering team!
Jim joins us from Google, where he was a Staff Software Engineer. He spent over 10 years at Google working across Search, Maps, and more.
We look forward to working alongside Jim to build the future of developer tools.
Welcome to BuildBuddy, Jim!
Earlier this month we wrapped up the 2022 Bazelcon conference in New York City. The conference featured talks by many prominent Bazel users including Lyft, Spotify, Tesla, Slack, Stripe, Tinder, Tecton, Coinbase, Uber, more.
Here's are some of the highlights from the conference:
- We gave a talk previewing the upcoming BuildBuddy 3.0 release
- Six companies that are BuildBuddy Enterprise customers presented on the main stage
- We co-hosted a Bazelcon happy hour with Google Cloud that had over 200 attendees
- We shared what we've been working on over the past year with rules_xcodeproj
- We gave away 370 BuildBuddy shirts and 1600 BuildBuddy stickers
- We finally got to meet so many of incredible customers & open source contributors in person!
Tweets, talks, and pictures from the event below!
When you use Buildbuddy with Bazel to build and test software, Buildbuddy captures information about each Bazel invocation, such as number of builds, build duration, remote cache performance, and more. Buildbuddy has a Trends page to visualize trends in this data over time.
The trends page allows you to see how improvements you are making to your builds affects your average build duration and other stats. It also exposes areas that might need improving. For example, if you see the cache hit rate go down over time, your build might have some non-deterministic build actions that could be improved, or some newly introduced dependencies that result in more frequent cache invalidations.
To fulfill our mission of bringing the world's best developer tools to every company, we're intensely focused on hiring outstanding Software Engineers. That's why we're excited to share today that Iain Macdonald is joining BuildBuddy's engineering team!
Iain joins us from Google, where he spent over 10 years as an engineer working across the company from Gmail to Google Maps.
We look forward to working alongside Iain to build the future of developer tools.
Welcome to BuildBuddy, Iain!
To fulfill our mission of bringing the world's best developer tools to every company, we're expanding our team to keep up with our evergrowing customer base. That's why we're excited to share today that Maggie Lou is joining BuildBuddy's engineering team!
Maggie joins us from Thumbtack.
We look forward to working alongside Maggie to build the future of developer tools.
Welcome to BuildBuddy, Maggie!
Using a remote cache is a great way to speed up your Bazel builds! But by default, Bazel uploads almost everything to the remote cache.
If your network is slow and your build artifacts are very large (like a docker image) this can lead to poor performance.
To address this, and make it easier to fix, we built the new cache requests card.
In this post we'll explore what insights this card can give you into your builds, as well as some fun details about how the card works under the hood.
Let's start with "what's BuildBuddy" for the kids in back. In short, we provide a UI, distributed cache, and remote execution platform for your Bazel builds. That means we securely compile your code, cache the artifacts, and help you visualize the results. We make it possible to build projects like Tensorflow from your laptop in under 5 minutes instead of 90 minutes.
Obviously to do all this, we have to handle some thorny engineering challenges, one of which is scheduling remote executions. For that, we have a scheduler. The scheduler just matches actions (basically jobs) received by our API to remote workers that actually do the work. If you think of a full build of something like Tensorflow as a 10 course meal, a single action is like a recipe for a tiny part of that meal. To make it easier to visualize, here's a real action from building BuildBuddy: