Startup Story: Buildkite


Keith Pitt, of The Startup Previously Known as Buildbox, told us his fascinating story.

Buildbox started 18 months ago, while Keith was working at Envato in Melbourne, as a result of a risk assessment. The risk assessment in question concerned code, where it was, who had access to it, and whether the owner of the code had control of every machine with a copy of the code.

The company used a common hosted Continuous Integration tool that tests and builds the code for a project every time a new chunk of code is committed. To do this the CI tool takes a copy of the code, copies it to a cloud host, builds it and tests it, which means it requires all the secret keys to the various servers that the build needs access to. As a risk assessment, this is bad, because the CI server needs to have all the secrets and all the code and doesn’t reveal what it does with them. So Keith wondered if there was a better way to do this, a way where the build happened on servers that the team controls, and if he could build that a better way. So he started coding to see if it was possible. Three months later he had a working prototype of that better way; a CI service that runs on whatever servers the dev team wants, yet provides the same functionality as a hosted CI service.

Keith wearing the obligatory startup logo t-shirt of his startup while coding some more awesome

Keith knows his Lean, so he immediately guessed some sort of price structure and shoved his working prototype out onto the interwebs for people to find and use. Obviously being a fairly well-connected member of the Ruby community helped here, and it was soon being used by a few people who started giving him feedback. Good feedback, as it happens, and soon Keith was down to 4-day weeks at his day job because the volume of Buildbox support calls and fixes required was getting too much.

The initial prototype code was roughly put together in Ruby, and was starting to crack, especially the agent (which needed to be installed on the customer’s servers and required a full Ruby install with all its dependencies). Keith rewrote a lot of the initial code, and rewrote the agent entirely from scratch in Golang, a language designed by Google for writing servers in, which crucially compiles to a single executable with no dependencies and runs on all platforms. The rewrite was a huge boost, allowing much more simple deployments for his customers, and a coincidental speed boost too. But as Keith says:

“Never rewrite something from scratch, and never write a real project in a new language. It’s stupid. But I did both of those at the same time and for some reason it worked out fine”

This photo was apparently taken during the resolution of an urgent customer problem in the middle of a Margaret Rivers wineries trip. Living the dream!

The business at this point was bringing in some money, but not enough for him to quit the day job, and it required extensive time on support and development to continue building it. Keith started approaching investors with a view to getting some cash so he could concentrate on it full-time, but found the investment community less than forthcoming. The two main problems were the onerous terms on any proposed deal, and that every single investor wanted him to find a co-founder, while Keith had seen too many startups killed by Co-Founder Drama and didn’t want to risk it.

He moved to Perth for a while to work with Pin Payments, friends of his from the Ruby community who were happy to have him work part-time and continue with Buildbox for the rest of the time. The growth continued, with several well-known companies using Buildbox (we can’t mention them because branding etc, but you’ve definitely heard of these companies, and I guarantee one of them has a program on your machine right now that was built with the help of Buildbox). The sales model is “D2D” (dev-to-dev or Geek-to-geek); the product spreads by word-of-mouth through the developer community and companies buy the product because their dev team tells them to. It’s a very successful sales model for some products (Atlassian, Github, etc), but the product has to be *really* good for the recommendations to flow.

Tim Lucas, co-founder and gurning champion
Tim Lucas, co-founder and gurning champion

The pain of trying to build a whole product and company on his own was starting to show, but Keith still didn’t want to risk Co-Founder Drama or get someone on board who didn’t share his vision and values. But a conversation with Tim Lucas, a good designer friend, around the possibility of Tim joining the project finally came to a head and Keith jumped at the chance of signing up such a talented co-founder. This was time to finally “get serious” about the whole thing, so he incorporated (therefore officially a Perth company!) and looked for some investors again. This time he had a co-founder and some serious customers to show them, and the whole process went a lot smoother, resulting in a deal he could go for. They could now afford to work on it full-time!

At this point Buildbox has been selling around the world for about a year, and is reasonably well-known in development circles. But because Keith had taken the Lean approach and iterated his product and market fit before spending a fortune on legals, he was only just getting around to applying for a trademark. And someone else had just beaten him to it – by two weeks. A sort-of-games company had produced a “build your own game” engine called Buildbox, and had bought the .com domain (which Keith had tried to get but the owner wanted serious money for it), and registered the trademark. Because of Keith’s good SEO work he was the first google result for Buildbox and suddenly found himself being sent irate emails by illiterate 12-yr-old gamers because they couldn’t get his product to make a Flappy Bird clone. And his lawyers told him the best result he could hope for with trying to get a legal resolution was that they would both be allowed to use the name. That would come with a 5-figure pricetag. The only realistic option was to rebrand.

Naming things is hard. Renaming an existing product to something that is kinda similar, but won’t be mistaken for the old thing by a horde of illiterate 12-yr-olds, but will still be seen as related by existing customers, that’s even harder. Eventually after a gruelling 5 minutes in the shower, he came up with Buildkite. The googles checked out; no one was using it for anything (and no-one was likely to use it for anything tech-related). The initial reaction from everyone was “meh, that’s not totally shit”, so Buildkite it is! New domain bought, redirect from the old one, contact the press (well, //Startup News) and tell everyone, and we’re done!

The next chapter for Buildkite is about to start with Keith building enterprise features into the product so he can differentiate pricing for the enterprise customers, and plans on spending the next year travelling around Europe and the States attending conferences to spread the word about his better way of doing CI. Not bad for a side-project to see if it was possible.

We wish Keith and Tim the best of luck with BuildKite, and look forward to publishing news of their industry dominance in the future. You can check out Buildkite for your dev workflow at


Comments are closed.