Keith Pitt on Scaling Ideas into Essential Developer Tools
The CEO of Buildkite on “rage-coding” his first prototype through to scaling alongside long-term customers like Shopify and Intercom.
Back in 2012, Keith Pitt, Cofounder and CEO of Buildkite, spent two years working in between shifts at his day job as a software developer to create a company devoted to improving the lives of developers like himself. Today, he manages the role of CEO and his passion for product to develop new and improved tools that can grow as fast as their client base.
I sat down with Keith to discuss the process of turning an empty notepad filled with ideas into one of Australia’s fastest-growing technology companies (with 1,400 customers and 110 employees), the impact of generative AI on developer productivity, and how to simultaneously lead and scale.
Tell us about Buildkite.
Buildkite has been my life’s work. I’ve been working on this particular business for 11 years, although this was not my first time doing Continuous Integration/Continuous Development (CI/CD) and DevTooling. As an engineer, I was always attracted to the idea of taking an empty notepad file, filling in the right words and codes, and creating something that someone could buy. I liked this idea that every empty notepad file could be a million-dollar business. You just have to know what to input. It was like playing a game, figuring out what to put in there that people might be interested in. So I created a couple of startups before Buildkite, but this became the first one that I put all my energy and soul into.
I had been working at a company that was using a hosted CI/CD system. I had this novel idea of combining on-premises CI/CD with cloud CI/CD, in a hybrid model. So one weekend, I rage-coded a prototype. I brought it to work on Monday and said, “Can we use this?” The answer was yes. In my evenings, I kept building and building. I didn’t spend a lot of time validating the idea, and I wasn’t thinking about what people would buy. I was just building for myself. In many respects, I’m still doing the same today. I’m building what I think is cool, useful, and awesome.
Eventually, people started buying Buildkite. People that I didn’t even know started buying it. I realized that if complete strangers were buying this thing, we had something there. So I just went all in. I started working my day job from 9 AM to 5 PM and then from 6 PM to 10 PM on this new project. I did that for two years, building the company from scratch and trying to figure out what this thing was. While I was doing that, I kept getting customer after customer. Two years in, I brought on a cofounder and we raised seed money. At that time, we still had rent to pay. We didn’t have rich parents backing us. But from there, we went on this loop of growing and making a profit.
What makes Buildkite distinct as a (CI/CD) tool? Who do you see as your competitors?
If you look at all the different CI/CD websites, they all say the same thing. They each say they’re the fastest, most scalable, and most secure. Obviously, they all can’t be right. In Buildkite’s case, our first big customer was Shopify. They became a customer in 2015 with 500 developers. Now, heading into 2024, we have more than 3,000 Shopify engineers using Buildkite every day. They had a mandate to go from commit to production in five minutes, which meant that everything with them had to happen really quickly. We had to make our systems super scalable and figure out a way to take these workloads and burst from zero to a million in a couple of seconds. So, you’ve got a code base. It’s a shopping cart website, which is the application you build. What people don’t realize is that you actually build two applications at once, a production application and a testing application called a test suite. What we figured out how to do at Buildkite is take that test suite, split it up into 1000 smaller pieces and run them all at the same time on the cloud.
That’s something we did differently. We did it all without ever seeing the customer's source code. That was our biggest differentiator. With every other cloud option at that time, you had to hand over your keys. That’s bad for security. With these on-premises solutions, you just did not have the power of the cloud. We figured out how to make this hybrid model work, and that’s what really resonated with Shopify. Every couple of months, Shopify would go through a growth spurt, which meant that we also had to go through a growth spurt. As Shopify grew, they were talking about how Buildkite was keeping up with them. Customers wanted to know that the tool would keep up with them as they grew. We found that the market needed scalable CI that actually walked the walk.
What is your ambition with Buildkite and where do you want to remind everyone that you’re going as a company?
At Buildkite, we focus on developer tools. We try to make the lives of developers a little bit better each day because each of them has their own life. They all have to walk the dog when they get home. They all have dishes to do after work. They each have something else going on. We’re thinking about them all the time. So, the ambition for Buildkite is to go wherever the problems are. We have the privilege to work with the best companies in the world and see what actually makes them the best companies in the world. I’ll talk to Uber and say, “How do you do it? Show me the tools, show me the systems.” I learned so much from that. They want the engineering teams of the world to learn the secrets. Not trade secrets. Just tips and tricks on how to manage development teams. What we do is take those ideas and turn them into products we can sell to the rest of the world.
Do you see CI/CD as an ever-expanding landscape to build in or do you want to extend beyond CI/CD?
What Buildkite does is take a commit from a developer and shepherd it to production. We live in the middle. GitHub will do the code bit. Amazon can do the production bit. We’re in the middle. So, CI/CD is one way to do it, but there are other ways. So, we don’t see ourselves as CI/CD. We see ourselves as building, testing, packaging, and deploying that piece of the puzzle. We are reframing how we talk about Buildkite so we’re not just a CI/CD platform. We’re pivoting to talk about ourselves as a developer experience platform.
What we do is look at what people are using Buildkite for and then go deeper. We go down layer after layer and then explore what’s down there and how people are using it.
What is the onboard time for a new Buildkite customer? How are you thinking about that challenge?
One of the challenges we have with Buildkite is that we think our model is better, but it’s still a bit of a trust thing for customers. They have to sign up and they have to trust us that it’s better. It’s a big leap of faith. Customers are like banks. You have to make deposits before you can make a withdrawal. A signup is a withdrawal. An email is a withdrawal. A developer or a user doing anything on your platform is a withdrawal. So that’s what we’re thinking about. We’re looking at how we can provide value before we even ask you to sign up. It’s a fun challenge.
When you think about it, GitHub has done this very well. For most people, their first interaction isn’t the GitHub homepage. The first interaction is usually someone Googling a certain bug and landing in some GitHub page where they’re talking about that specific issue. That platform is giving them value before they’ve even signed up. They can read about the bug and figure out the solution without ever signing up. That’s what we’re trying to think about. How can Buildkite help people without having them ever sign up to do anything?
Are you thinking about generative AI right now? What do you think about generative AI in relation to developer productivity?
Here’s one thing I know for certain. There will be more lines of code written with AI in the mix than before. There will be more automated tests to run. Will there be more net workloads because of AI? Absolutely. The thing that I’ve seen in 10 years of doing DevOps is that a lot of stuff is the same, just a bit different. I’ve seen teams write the same code over and over again. The same boilerplate connects System A to System B. I think large language models and generative AI can play a role in creating that boilerplate configuration so that they don’t have to be written from scratch each time.
My opinions on AI can't keep up with the rate at which it's moving. How I think about it today is probably going to change tomorrow. However, as of now, here's how I'm thinking about it: generative AI is trained on data, and data can only be historical. This means current AI applications can only produce answers from the past. The effect that could have on DevOps is that we get stuck in 2023 methods for the next 10 years as it continues to give us suggestions based on the past.
However, as a product creator, it's important to focus on the things that were true yesterday, true today and will be true tomorrow. And I know that developers are always going to want tools to help them do a better job, and if AI can help us do that, then bring on AI! Just remember, if you rely solely on generative AI for DevOps, then the DevOps you get will always be stuck in the past, so it’s important to have a human review cycle to keep things innovative.