Taking Buildkite from a Side Project to a Global Company
How an Australian developer turned his frustration with CI tools into a 13-year journey that redefined developer tooling.
👋 Welcome to Valley of Doubt, a free weekly newsletter that goes deep into founder stories from the early days of startups. 🚀
Keith Pitt is the co-founder and former CEO of Buildkite, a devtools company that started in Melbourne and grew to have some of Silicon Valley’s biggest companies as clients.
In this interview we dig into:
Starting Buildkite as a side project
Running out of money and having to go back to investors
The challenges of growing into a venture capital valuation
Finding your product voice
Scott Handsaker (SH): Tell me who Keith Pitt is in 30 seconds or less.
Keith Pitt (KP): I'm a dad with three kids. I'm someone who loves to explore with his hands and code, and I love exploring ideas.
It's no surprise that I ended up in developer tools. Before I was a programmer, I was a magician doing magic shows. That's all about pleasing people, bringing joy and excitement to someone's day, subverting expectations and having them walk away with a memorable experience of something you spent a lot of time working on.
Developer tools is the closest I can get to being a magician in programming, because I get to please my peers, help them be better, and bring a little magic to their day.
I don't consider myself an entrepreneur. I never have, even though I do entrepreneurial things. I consider myself more of an inventor. The way that I like to figure out if my inventions are any good is by selling them, because I feel like the only true way to determine if something is of value is if someone's bought it.
SH: Is the “inventor” identity something that you carry with you throughout your life?
KP: Yeah, I think so. I like making stuff, whether it’s Lego with the kids or software for developers. I have a mad Lego collection, but I make something and then just pull it apart and put it in a box because I don't like displaying Lego. I like making it.
The Accidental Beginning
SH: Tell me how you got started with Buildkite.
KP: It was a side project of a side project. I started building an email transaction API like Mailgun. I needed some CI for it, and at work we were transitioning off Travis CI. My personal requirements collided with my work requirements and I thought, I'll quickly just bust something out. Years earlier I’d written a CI tool just for fun, so I dusted that off.
At the same time, PIN Payments launched in Australia. It was sort of the first time in Australian development history where you could charge for something on the internet without messing around with PayPal or getting a merchant account and SOAP APIs. It was a REST API to charge credit cards.
Because I'm a commercially minded inventor, I packaged up Buildkite. I spent my evenings working on it, and I wasn’t really building it to make money. I was just building it for me and what I thought was good.
I'd go to work and show my peers, "Hey, what do you think of this?" Little did I know that I was testing product-market fit. I thought I was just working on something that I liked.
SH: When did you know you had something people wanted?
KP: I eventually strapped a credit card system on there and put it on the internet. People I knew bought it to start with, but then one company bought it that I didn't know from Europe. I think they were called Moneybird. I was like,
"Who the hell are these people?"
That's when I knew I had something that people wanted.
SH: How did pricing evolve?
KP: I started at $5, $30, and $100 a month. Just classic SaaS tiers.
I remember I was walking back from lunch and I got a ping on my phone that someone had upgraded to $500 a month. That was a moment of pure joy for me because this particular customer knew who I was, but they had believed in me. There's a lot of people telling you no throughout the whole journey, and so part of that whole experience was just ignoring people that didn't believe in you.
When that enterprise customer came through, it was the first moment that I felt like someone else believed in me. That's when I knew I would be okay.
The Bootstrap Years
SH: Were you still working at Envato at that point?
KP: I was doing Buildkite after hours because my wife was studying to be a social worker at the time. I would do my day job and come home and work on Buildkite in the evenings. The work at Envato was super easy. I was on a green fields project, but my creative itches weren't being scratched at work.
I needed someone that could support my Buildkite work. I wanted to do one day a week on Buildkite, but Envato weren't too keen on a part-time position. So I ended up leaving Envato and going to work at PIN Payments. They were cool with me working four days a week.
SH: At what point did the co-founders come into it?
KP: I was two years in and still solo. I remember the moment it started. I was on Twitter and one of my competitors had announced they'd raised some money and I was really pissed off because I thought,
"Why can't I raise money? Why is no one giving me money?"
I tweeted something salty and Matt Allen from the Ruby community replied. He said, "You can raise money. I'll show you." So I started applying for accelerator programs. All of them knocked me back because they didn't want to support first-time founders. This was 13-14 years ago when the Australian startup ecosystem was pretty small and risk tolerance was basically non-existent.
They were like, "You have to find a co-founder." I went co-founder hunting but couldn't really find one. I had this weird romantic relationship with bootstrapping and going at it alone.
At that same moment, I asked Tim Lucas, who I was working with at PIN, "Hey man, can you make me a new logo for Buildkite?" Instead of making me a logo he said, "How about I be your co-founder instead?"
I said, "Okay." That was basically what it was.
The First Raise and Growing Pains
KP: Matt Allen helped us raise 200 grand from people we didn't know. Just a bunch of rich people, some of whom I still have not met to this day. We quit our jobs, paid ourselves 80 grand a year, and just worked on becoming profitable.
We built things and sold them, tried marketing, and made enough money to hire someone. We did this until we were 15 people, just rinse and repeat. Grow the bank balance, increase revenue, hire people.
SH: You mentioned it was a hard slog during those years. Do any particular moments stand out?
KP: I ran out of money. I stuffed up big time. In Australia you have to pay employees superannuation, and no one told me that superannuation payments were quarterly. I thought I was doing the right thing by using our cash to pre-buy EC2 instances, and then a couple weeks later our external accounting firm told me, "Super's due".
I thought, "Oh, we don't have enough money."
But I wasn't that scared because I had a plan. I thought, "Why not be open about it?" because it would probably help. I was completely open about it and said to the team, "All right, so here's the situation, but here's what we're going to do."
I converted a bunch of customers to annual payments, went back to investors for loans, and did some invoice advances. It was about 100 grand to see us through until we got R&D tax credits and bigger invoices.
SH: What did you learn from that experience?
KP: Cash flow is an art form in and of itself. It's not just the bank balance. It's the bank balance at any one moment in time. At that point the game changed for me to making sure that I don't run out of money. That's the number one thing.
Don't run out of money and do whatever it takes to not run out of money. Buildkite took a long time to bloom and blossom, but if we had run out of money earlier on, I might have just given up.
Brought to you by Murmar
Finding the Third Co-founder
SH: How did Lachlan join as the third co-founder?
KP: Lachlan joined a couple years in as a late-stage co-founder. I wasn't precious about the titles. When he joined, I thought if he does what we think he's going to do, the company that exists will be just as much of his creation as mine.
The reason he joined was that Tim and I didn't really know what we were doing. We had a good sense of how to navigate, but we didn't know big company enterprise stuff and were still thinking small fry. Lachlan really helped us charge lots of money.
I didn't have the confidence to walk into a customer and say, "This is $30,000," but Lachlan did.
That's probably the biggest gift he gave the company. He gave us the confidence to ask for more.
I didn't realise at the time that by having such a low price point, people weren't taking us seriously. For us to charge more, we had to really believe in ourselves. To walk into a company and say, "This is $100,000" with a straight face and truly believe it in your soul.
SH: How did you handle the dynamics between three founders?
KP: It's always hard when each of you want to be the CEO. I think all of us wanted a little bit of it, and that was super hard to navigate.
I gave the role away twice. I started as CEO, but I was the CEO of one person and I never really liked the title. I gave it to Tim because I was struggling with it. I always thought I wasn't doing what I thought that role was supposed to be. I was too invested in the product, too invested in customers, and wasn't interested in budgets or back office stuff.
Later on Lachlan took it over. I struggled with that because I always thought I could do a good job of it, but I wasn't ready to take the title and really own it.
It wasn't until a couple years later that I personally gained the confidence to say, "I'm the CEO." When I eventually could do it, I think I did a pretty good job because I learned I needed to be the sort of CEO that I was. I couldn't be trying to replicate something I thought in my head.
I decided I was a product-centric CEO, and when I owned that, that's when I started to flourish in the role. If we were selling brake pads, you'd want the person in charge to be an expert on brake pads. If we're selling developer tools, the person in charge should be an expert on developer tools.
The Series A and Growth Challenges
SH: Tell me about the first major funding round.
KP: In 2019 we raised a Series A of $28 million. The reason we did that was because I wanted to buy a house. I had previously been to the bank for a home loan and every bank rejected me. I was too risky because Buildkite's finances were largely US revenue, and my finances were Buildkite's finances.
A lot of that Series A round was taken out as secondaries. Everyone who had invested the original 200 grand in the seed round got their money back plus some. I had enough money to buy a house, and only a few million went into the company as rainy day money.
SH: What did you learn about taking VC money?
KP: We effectively chose the one that gave us the highest valuation and a clean term sheet. At the time it was awesome because it meant we could sell less of our company for more money, but no one really tells you what happens if you go in at a high valuation early on.
If you're given a high valuation, you're not worth that at the moment. They're pricing you based on what they think you're going to be worth. You effectively need to grow into the valuation, and if you don't then in your next round, you end up with a down round.
It made the next round much harder. We hadn’t grown fast enough to justify the valuation, so the next round was effectively flat. No one warns you about that.
I think we were naive going into that transaction. We always painted the picture of being a long-term sustainable business, and our position on that never changed. We weren't building something to sell. We were building something that would last forever. The VCs gave us money even though we said those words, but I think in their mind they were hoping we would change.
Once you take big VC money, expectations change. They want big results, and we were still behaving like 37signals.
Eventually I realised that if we’re going to play the enterprise game, we have to play it properly. That meant raising again, and building the team to go after bigger customers.
The Transformation: Embracing Sales
SH: What changed when you took over as CEO the second time?
KP: When I took over CEO, I really embraced having a sales team. Up to that point, Buildkite didn't have a sales team. I used to have this romantic relationship with the Atlassian approach, who famously had never had a salesperson. In reality they did have salespeople, they just called them something different.
The biggest learning from hiring a salesperson was that there is a certain dance you need to have with customers during a sale, and you want someone whose job it is to do that tango.
We hired a salesperson and built a sales team, and tripled revenue in a couple of years through doing that.
The Product Philosophy That Almost Came Too Late
SH: Buildkite is well known for being a much-loved product in the developer community. Tell me about your product development process.
KP: It took me nine years to figure out my product voice. I read a book by Rory Sutherland called Alchemy. It was a book on marketing, but weirdly enough, this marketing book helped me find my product voice.
I had a lot of stuff that was just instinct and gut, but I never figured out how to turn that gut into something actionable or a set of product principles. Reading this book helped me find that voice.
I remember the day I showcased to the company,
"Hey, I finally figured out what I've struggled with all this time."
I did a three-hour presentation to the company, and I think everyone hated it. Everyone hated it because so many people disagreed with the principles.
SH: What were some of those principles?
KP: Here's a great example: don't listen to customers. Listen to them, but don't listen to them. What I learned is that when a customer comes to you with a problem, they come to you with a cry for help disguised as a feature request. You have to ignore the feature request and get at their problem.
Ninety-nine percent of the time, they've had some configuration issue somewhere else, 10 steps earlier, that's led them to this point where they've fucked it up so badly that they need something to solve that.
A feature request is not a feature request. It's a cry for help. That was difficult for a lot of people to unwind in their head, but that principle helped a lot.
Another principle: I always wanted developers to be treated as humans, not robots. Just look at any error message in any developer tool. It's probably obscure and shit. One of the magical parts of Buildkite was that I spent a lot of time taking what the developer would give me, and interpreting it to be what they actually meant.
You have to have pure empathy for the user. You're almost like a parent because you can't always give them what they want. You can easily just add all these checkboxes and make everyone happy, but you pay for it later with a million checkboxes.
SH: Why do you think the team reacted negatively?
KP: I think I should have packaged up my principles differently or had a different approach. They were pretty black and white, quite dogmatic. It was like, "This is how it is." Anyone receiving that would probably not like being told "this is the way it is from now on."
At that moment, I realised the company I had was somewhat incompatible with that. I should have spent more time thinking about that stuff before going on mass hiring.
The Hard Truth About Hiring and Culture
KP: There's something not a lot of founders talk about because maybe they're scared about it, but in industry there's this thing called culture fit that people get wrong all the time.
If you hire too many different people with different work styles, different wants, different needs, different approaches, different ideas, different values, different ethics, then everything becomes hard mode.
I wish I had gone back and been more involved in hiring. I would have opted more for culture fit. I would have been more bullish and precise: here is the type of person we want, let's go find that type of person.
At some point in hiring you get exhausted and you just hire the person who's at the top of the pile, even if they might not match who you wanted. You think, "We need somebody, so we just get them." That's a trap I see a lot of founders fall into, and it has major repercussions over time.
When I'm starting my new company, Unreasonable Magic, I'm being very strict about who I let in, way more exclusionary this time around. Teams that build products aren't a party. It's a set of inventors and makers, and you need everyone on the same wavelength.
The Board Dynamics and Exit
SH: How did having a board change the way you operated?
KP: I personally struggled with board stuff. The board was heavily American, and they were all operators who were used to working at a particular pace. I wasn't at that pace, and I couldn't help but feel that I was always letting them down. Not going fast enough.
Board work at some point becomes theater, and I struggle with that. I struggle with having to put on a show for a board. I was always struggling to find the balance between how do I get the most out of these smart people versus how is this not just a press conference? I never figured it out.
The thing about boards is they have a lot of control, but these people think about your company for only a couple of hours a month. That was super tough because you care a thousand percent, and they care, but they only care for a couple of hours.
SH: You have since moved on from Buildkite. Can you talk about your exit?
KP: I worked on Buildkite for 13 years, and the hardest part about leaving was that I didn't get to see what happened next. It was almost like I left halfway through a season of a TV show, and there were all these characters and stories and threads I never got to see the ending to.
Whenever any founder exits a company, so much of that company is them, so you're leaving a part of yourself. The biggest struggle I've had since leaving is that no one's ever going to care as much about the thing as you did.
It's like when you have an electrician come to your house. Sometimes they don't vacuum up as much as you would. You're always going to find that extra wire or bit of gyprock because it's not their house. Your company is your house.
No exit is good enough for any founder after a 13-year thing. It's almost an impossible task to try to figure out how to exit someone from a company after 13 years gracefully.
What's Next: Unreasonable Magic
SH: What's next for you with Unreasonable Magic?
KP: I've got 13 years of ideas to explore. Where I'm focusing my energy is on programming. A lot of programmers like programming, as they like to code. The rise of coding tools fundamentally changes the relationship you have with the work, more than anything in the history of programming.
A lot of programmers who would program and get fulfilment out of it have become managers of a coding machine. Whenever I have a day of using Claude or similar tools, I walk away feeling dumb and empty. It's like popcorn. It's not a real meal, it's not feeding your soul.
Unreasonable Magic is about how can we take these tools and make you feel fulfilled? How can we let you be as productive as using a coding assistant but also feel that you are the boss, that you walk away smarter at the end of a coding session?
It's that doing-the-opposite thing again where everyone's trying to be more productive, but for me it's not about productivity. It's about relationships to the code.
Programming is thinking. When I'm writing code, I'm thinking about how each line will be executed, what happens if this line goes wrong. You just don't get that same level of intimacy with the program when you use coding assistants because they can whip out so much code so quickly.
The products I built with Claude are worse than without them because I use programming as a way to think and interact with the problem. When you're coding, you're deeply invested in the problem you're solving, getting intimate with the problem. With AI tools, it's surface level. It's a one-night stand with a problem versus a deep and meaningful relationship.
Claude certainly makes me more productive, but at what cost? You're paying with the knowledge you would have learned from interacting with the problem.
The 3 easy questions
SH: What’s a book we should all read?
KP: Alchemy by Rory Sutherland. It’s the book that helped me find who I am. That book changed more about Buildkite than I can list out.
SH: What is a band or artist that we should all listen to?
KP: Uhmm, I like beatboxing.
SH: Do you beatbox yourself?
KP: Oh gawd no. But there is this band I like, and the song is called Candy Thief. It’s K-pop. I probably listen to that song on repeat every day.
SH: What is a podcast we should all listen to?
KP: I listen to Conan O’Brien Needs A Friend. If I’m working all day, I feel like it's important for me to make sure my brain goes somewhere else at the end of the day. And Conan O'Brien is just a very silly human.
SH: Amazing. Thanks for your time Keith, and good luck with Unreasonable Magic!
Can confirm ...
Great read, Thanks Scott and Keith