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:
- Written by Beth White: Why Project Managers are essential in an effective software consultancy >>
- About BuildGrid: Introducing BuildGrid >>
- Tracking Players at the Edge: An Overview
- What is Remote Asset API?
- Running a devroom: FOSDEM 2021 Safety and Open Source
- Streamlining Terraform configuration with Jsonnet
- Bloodlight: Designing a Heart Rate Sensor with STM32, LEDs and Photodiode
- Making the tech industry more inclusive for women
- Bloodlight Case Design: Lessons Learned
- Safety is a system property, not a software property
- RISC-V: Codethink's first research about the open instruction set
- Meet the Codethings: Safety-critical systems and the benefits of STPA with Shaun Mooney
- Why Project Managers are essential in an effective software consultancy
- FOSDEM 2021: Devroom for Safety and Open Source
- Meet the Codethings: Ben Dooks talks about Linux kernel and RISC-V
- Here we go 2021: 4 open source events for software engineers and project leaders
- Xmas Greetings from Codethink
- Call for Papers: FOSDEM 2021 Dev Room Safety and Open Source Software
- Building the abseil-hello Bazel project for a different architecture using a dynamically generated toolchain
- Advent of Code: programming puzzle challenges
- Improving performance on Interrogizer with the stm32
- Introducing Interrogizer: providing affordable troubleshooting
- Improving software security through input validation
- More time on top: My latest work improving Topplot
- Cycling around the world
- Orchestrating applications by (ab)using Ansible's Network XML Parser
- My experience of the MIT STAMP workshop 2020
- Red Hat announces new Flatpak Runtime for RHEL
- How to keep your staff healthy in lockdown
- Bloodlight: A Medical PPG Testbed
- Bringing Lorry into the 2020s
- How to use Tracecompass to analyse kernel traces from LTTng
- Fixing Rust's test suite on RISC-V
- The challenges behind electric vehicle infrastructure
- Investigating kernel user-space access
- Consuming BuildStream projects in Bazel: the bazelize plugin
- Improving RISC-V Linux support in Rust
- Creating a Build toolkit using the Remote Execution API
- Trusting software in a pandemic
- The Case For Open Source Software In The Medical Industry
- My experiences moving to remote working
- Impact of COVID-19 on the Medical Devices Industry
- COVID-19 (Coronavirus) and Codethink
- Codethink develops Open Source drivers for Microsoft Azure Sphere MediaTek MT3620
- Codethink partners with Wirepas
- Testing Bazel's Remote Execution API
- Passing the age of retirement: our work with Fortran and its compilers
- Sharing technical knowledge at Codethink
- Using the REAPI for Distributed Builds
- An Introduction to Remote Execution and Distributed Builds
- Gluing hardware and software: Board Support Packages (BSPs)
- Engineering's jack of all trades: an intro to FPGAs
- Bust out your pendrives: Debian 10 is out!
- Why you should attend local open source meet-ups
- Acceptance, strife, and progress in the LGBTIQ+ and open source communities
- Codethink helps York Instruments to deliver world-beating medical brain-scanner
- Codethink open sources part of staff onboarding - 'How To Git Going In FOSS'
- Getting into open source
- How to put GitOps to work for your software delivery
- Open Source Safety Requirements Analysis for Autonomous Vehicles based on STPA
- Codethink engineers develop custom debug solution for customer project
- Codethink contributes to CIP Super Long Term Kernel maintenance
- Codethink creates custom USB 3 switch to support customer's CI/CD pipeline requirements
- Codethink unlocks data analysis potential for British Cycling
- MIT Doctor delivers Manchester masterclass on innovative safety methodology
- Balance for Better: Women in Technology Codethink Interviews
- Introducing BuildGrid
- Configuring Linux to stabilise latency
- GUADEC 2018 Talks
- Hypervisor Not Required
- Full archive