Fri 26 March 2021

Meet the codethings: Understanding BuildGrid and BuildBox with Beth White

At Codethink, we are experts at developing software solutions in the open for international-scale clients. Our engineers regularly contribute to the open-source community by sharing their findings, researching and developing tools and patches in the open. After more than a decade of contributing to the community, we’ve become improving client outcomes by using open-source software.

One of the innovative minds that contribute to the community and work with our clients is Beth White, Project Manager at Codethink. For the last 4 years, she has led and planned projects for key clients by driving the community side. Her day-to-day is varied, and she has demonstrated that Project Managers are key to deliver a successful open source project.

Generally, Beth’s work has been related to BuildGrid and BuildBox, two build tools developed in the open. Both tools help reduce build times and speed delivery of our client’s projects by supporting parallel builds and remote builds.

Interviewer: How is your day-to-day as a Project Manager at Codethink?

Beth White: It's more of a typical week rather than a typical day, to be honest! Day-to-day, we might have various meetings and mostly just be keeping an eye on the project channel, keeping up with what's going on and helping out where necessary. The weekly staples tend to be a standup each morning with each of your teams (thankfully over IRC so they can clash and we can catch up asynchronously!), a planning meeting at the start of each week (or sprint), a review meeting at the end of each week/sprint, a sync call with the client mid-week, and writing up a progress report at the end of the week. Anything else that we have to do is usually quite reactive, depending on what's going on with the projects!

I: You've been involved in several projects at Codethink for the last couples of years. Which has been your favourite?

BW: That's a tough one. I enjoy the ones I have currently because I get to work in the open and help to drive the community side of things. That said, embedded engineering is my background, and I've been most interested in projects to do with computer vision and kernel development. A few months ago, I was able to be part of shaping an embedded systems project using Zephyr RTOS for a smart agriculture application, which was great as sustainability is a keen interest of mine.

I: Most of your projects have been based on two tools: BuildGrid and BuildBox. What can you tell us about BuildGrid?

BW: Building locally and linearly can take a long time, and a developer's build workflow is often a bottleneck for productivity, for example, in iterative testing cycles. BuildGrid is a remote execution tool that enables users to run their builds remotely via a "grid" of machines. It implements Google's Remote Execution API, supports the Remote Workers API, and is written in Python.

The benefit of parallel builds is that a developer could run multiple jobs simultaneously rather than waiting for one to complete before building the next. Building remotely allows someone to send large jobs from their laptop to build on some beefy machine with far higher processing power, meaning builds can complete more quickly. When you have teams of developers as large as a company like Bloomberg, this allows for a significant time and cost-saving and an improved developer experience overall.

I: And what is BuildBox?

BW: BuildBox is a modular set of tools for remote worker build execution. Like BuildGrid, it is part of the wider "remote execution" space, and therefore conforms to the Remote Execution API specification and supports the Remote Workers API specification.

I: There are many "sandbox" tools in the open. What makes BuildBox different from other open-source alternatives?

BW: BuildBox provides sandboxing to execute build commands, building on existing tools such as bubble wrap or user chroot to do this. The way that BuildBox has been designed makes it easy to extend it to use other sandboxing tools. I think what sets it apart is that sandboxing is only part of what the BuildBox ecosystem as a whole provides. It has a lot more functionality and customisation capability.

I: It's International Women's Month, and only 19% of the tech workforce are women. What is your point of view on diversity as a woman in tech?

BW: A very complex question! Diversity, of course, extends to far more than just the percentage of women in a particular space, and please take my response here as being very much from my own point of view. I obviously can't speak for others' experiences.

I think that being a woman in a male-dominated world really highlights the importance of diversity to me in every aspect, whether we're talking about trans women, anyone who identifies as LGBTQ+, people from different races, different socio-economic backgrounds, disabled people, the list goes on. It's incredibly important to have people with a variety of experiences thinking and speaking about any given topic, whether it's governmental policy, town planning, design of a software product, accessibility in a building, anything. I think that - in my admittedly limited experience - a lot of open-source software communities do this very well, the distributed nature and the fact that generally, communities don't have the kind of barrier to entry like a regular workplace would lend itself well to attracting a real range of people who are simply interested in the area, and are good at what they do (or eager to learn!). My opinion on this largely comes from attending FOSS conferences like FOSDEM and GUADEC and meeting all kinds of different people there. Sadly this isn't the case for every open source community, there are some which are really not welcoming to the difference, which I obviously believe needs to change.

I think the major barrier to women joining the tech workforce thus far has stemmed from a lack of education and an abundance of systemic stereotypes, but thankfully this does seem to be changing for the better. For example, computer science is now a part of the regular school curriculum - this and software as a career, in general, was never even spoken about at my school, let alone encouraged or taught. Companies have a part they can play in improving this, of course, by ensuring that their own workforce is diverse and investing time and resource into outreach programs, careers talks at school etc., not just focusing on young girls but all young people in general. Suppose a company has a diverse workforce and can send in a good representation of that diversity to talk about the industry. In that case, hopefully, any child could see themselves represented as part of the tech industry and might have an interest sparked in pursuing it themselves.

There is also a barrier to anyone from a marginalised community staying in a company or industry: how much they have to fight to progress or maintain their position, or even just be listened to and be sure their opinion is respected. Until everyone is treated with the same respect, people will always be pushed out of spaces, and one great way to slowly ensure this improves is to keep diversifying the workforce so that poor behaviour towards marginalised people, whether intentional or subconscious, becomes less and less normalised.

I: Could you name a female that inspires you in the tech industry?

BW: Taylor Poindexter (@engineering_bae on Twitter). She's intelligent, she knows her worth, and because of that, she knows what she needs and wants from an employer and isn't afraid to say it. Highly recommend following her!

Related blog posts:

Other Articles

Get in touch to find out how Codethink can help you

sales@codethink.co.uk +44 161 660 9930