57
44 Comments

I founded CircleCI (valued at $1.7B) and Darklang. AMA!

Hey IH! Lovely to be here!

I was founding CEO of CircleCI, which I started and ran from 2011-2015. These days it's the largest CI/CD company, and was recently valued at $1.7B.

Since 2017 I have been building Darklang, which is an attempt to make it 100x easier to write cloud backends. It's an integrated programming language, editor, and PaaS (good deep dive here). It's still got a lot of work needed, but you can try it out today at https://darklang.com.

Some random things that might make for interesting questions: I did a PhD in compilers/static analysis, worked on Firefox, failed hard at a startup, got kicked out of Y Combinator, have opinions (and a podcast) on dev tools, started in the games industry, and just left SF for NYC.

AMA!

  1. 5

    Hello Paul!
    I'd like to ask you a few questions.

    1. What was your process of product idea validation for CircleCI? (if there was any)

    2. How did your MVP look like? How long did it take to make that MVP? And did you build it yourself, or you started with a small team?

    3. Was CircleCI bootstrapped or funded?

    Thanks in advance for your answers!

    1. 3

      CircleCI was very definitely funded. For the first few months I ran it off savings, then a small investor came in with $50k. We ran it like that for a year before raising $1.5m, then $6m the next year. After I left a few years later, we raised subsequent rounds totaling $300m.

      The product validation process was pretty quick. It was pretty obvious at the time
      (Oct 2011) that things were moving to the cloud, with GitHub and Heroku having already been successful. But the gap between them (the deploy pipeline into production) was not in the cloud yet. So we knew it was needed.

      We spoke to a handful of customers and they all needed it. But they had wildly differing use cases and so we set out to build CI for all of them. That was a mistake. After a few months we realized there was an available stream of customers who all used Rails, so we cut scope to just handle that.

      From there it basically took off, and we had more users than we could handle. We spent every day making builds work, and expanding our support to more edge cases, more languages, more versions, etc.

      The second MVP worked and solved the problem, but it was too slow. We did a tech rewrite to use LXC (containers before Docker), and that made builds run fast and start instantly. With that, we pretty much had Product Market Fit. That was six months after the company started, and we were still in private beta - it took another three months to be confident enough to open it more broadly.

  2. 3

    For something like Dark which is trying to really invent something that doesn't exist yet and might be unexpected for most programmers, how do you do user research? Have you gathered useful feedback on the prototypes so far? What kinds of questions can you ask that help guide priorities?

    1. 4

      We did pretty heavy user research at the start, and made multiple iterations - completely changing things based on the feedback.

      The first version was pretty awful, it was nodes and edges that you dragged around. (I posted some screenshots of these variations recently). Our validation at this stage was "can we build something with it". We were trying to build a simple thing to cross reference two twitter users follower base. We had challenges with the execution model ("when do these API calls run"), and reduced it to something simpler.

      The simpler test was "can people write a Caesar cipher". It turns out you could write a pretty decent one, so we asked other people to see if they could do it. We just had a bunch of engineers come over to our house to try it out.

      Well, it turns out no-one knows the Caesar cipher, don't understand ASCII codes, and can't do modulo arithmetic, so we went even simpler: write Fizzbuzz.

      At this point, we were planning each week in a spreadsheet, outlining our hypotheses and what we were going to do to test them.

      Again, we had a handful of people come over each week, and we watched them code. They reported it to be extremely frustrating, and it was frustrating to watch them struggle. We speculated it was bugs, but when we eventually ironed out all the bugs, we realized users just didn't like or understand how to code in a graph-like language, so we went back to the drawing board.

      We switched to an AST-based language that looked textual - that is, it looked like what everyone expected code to look like. This was much better, and people could get much further. So at this point we wanted to see can someone build a startup on this.

      I'll reply more in a moment.

      1. 2

        We sat down and made a list of everything we needed to build a simple startup in Dark, and then built all of that in 6 weeks.

        In the meantime we put an ad on Hacker News: "We'll pay you $3000/mo to build your startup on Dark". That was enough to get people interested, and we found a good candidate after some false starts. He was building a small SaaS which had been built on Meteor which was deprecated at that point, and he wanted something new.

        Then we just worked to get his app working. Any issue that came up was our top priority. Once or twice there was something which took 2 weeks to fix, and he worked on his React app during that time while he waited.

        We repeated this with another user. By the time that second app was finished, the product felt pretty validated. Alas, it wasn't. We launched with that and struggled to get users - almost no-one stuck. The editing model was pretty horrible - which we knew; we had been working on a new editing model for 6 months so we rushed to get that done, and from there, users could actually use the editor and write code in a fairly intuitive way.

        At that point, we're still getting lots of feedback and validation. We're sitting down with users, soliciting their (often quite long) feedback, etc. We still haven't found product market fit yet actually, the most recent feedback indicates we need a package manager and user management. So those are the biggest things on the roadmap at the moment.

  3. 2

    Hey Paul!

    First of all, long-time CircleCI user here. How did you sell users to integrate CircleCI and invest the time to configure CircleCI into their project?

    As a quick context, I am the co-founder of a product called Voyage(https://voyageapp.io/). Voyage is a software tool that automatically builds applications on demand. Very similar to like Netflify/Vercel but Voyage deploys full-stack applications not just the front-end.

    I'm curious about your experience growing adoption on the integration side of CircleCI.

    CircleCI has its own learning curve. There are many different ways it can be configured, similar to Voyage, and requires a fair investment on the user's end to learn and configure it.

    A problem that we have experienced is users actually making the integration into their project. It's clear the user receives value by integrating our application however sometimes even though it will increase efficiency in their process, they are too busy or it's not a high enough priority to invest the effort to learn our configuration and configure the integration on the consumer end.

    Thanks again!

    1. 2

      Well, the world was a different place in 2011. Everyone has Rails monorepos, and so we were able to automatically infer the setup for a reasonable amount of repos. So often "integration" took our customers a few minutes, and about 30% of the time it worked on their first try. It's not like now when complexity is out of control, between k8s, serverless, microservices, etc - you could reasonably do that then.

  4. 2

    Thanks for dropping in!

  5. 2

    What makes a good coder
    How to think like a an engineer
    Best advice you can give to earlier programmes

    Advice specific to me
    I am doing programming from 3 years but still pretty bad at everything thing I learn so far I am not good with Frontend and oks with backend 😣😣

    1. 8

      Well, these are the really hard questions.

      I think when I was 3 years in I also wrote very bad code. In fact, I wrote some very bad code today, and I've been coding professionally for a little over 20 years now. So I wouldn't sweat it, just find something you enjoy coding, and keep working on that. You'll get better with practice.

      As for advice for earlier programmers:

      • practice: write a lot of code, of different kinds. Work on your own projects, work on adding code to existing large projects, work on big things and small things. Do fun algorithms, do annoying chores, do large and small refactorings. Etc, etc

      • You need to be able to try different approaches. For example, sometimes it's good to not think too hard, and to just dive in and start typing. And sometimes it's good to make a plan of attack and really figure out what you're trying to do.

      • half of coding is communication. Learn to communicate what your code or changes do, and learn to put that information in the right places (perhaps in comments, perhaps in pull requests, commits, blogs, slack messages, etc)

      • read other people's code. Really try to understand it. Rewrite it and change it so that you really do understand it. this is especially true when you're in using APIs and they're not working - go read the code to the API and see what's actually happening, or go through it in the debugger.

      • Learn different languages and paradigms. Professional poker players learn different types of poker to get insight on the game they're best at. Same with coding

      I don't know how to think like an engineer, but some books helped me:

      • Beautiful Code
      • Programming Pearls
      • The Practice of Programming
      • The Pragmatic Programmer (not sure this is still good after all these years)
      • Coders at Work
      1. 2

        Thanks this is really helpful and motivating

  6. 1

    Don't really have a question - more just want to say thank you.

    CircleCI was huge influence in making deployment easier and shifting the culture around devops. You have saved me a number of headaches. :)

    1. 1

      Thanks, that's really nice of you to say!

  7. 1

    What advice would you give to someone releasing their first online product?

    1. 3

      I think the main thing is to understand just how much Product Market Fit matters. It is literally everything, and nothing else matters. Growth and sales are basically pointless without it. I know multiple companies who raised big rounds off impressive growth that they had gamed, then had to significantly shift their company when it became clear that it was unsustainable because they never had PMF. And I know more companies that died because they never really found PMF to begin with.

  8. 1

    Hi Paul,

    I like how Dark is attempting to solve the deployment and docker complexities.

    You have a big challenge ahead to convice developer world to switch from git/branch style development into feature-flag style development. I am curious how you are planning to do?

    1. 1

      Honestly, no idea. I have a very "build it and they will come" attitude to Dark that's not appropriate for most products/companies. So my basic answer is that we will make the experience of developing with feature flags sufficiently better, and then people will use it. Or we won't, and so they won't.

      But specifically to feature flags, I think the killer feature for Dark is how quickly you can have new code in production. If we make that work safely using feature flags, no-one will want to go back to the heavy handed branch/CI/code review cycle they have today.

      1. 2

        Even if some of the current pain points are answered Dark platform will be huge hit. I am excited to build something with Dark platform. The concept and approach is unique, I am still not fully understood Dark as language.

        But Dark as a platform got potential to flip the cloud market to new direction. I am sure intitislly Dark is going to face alot of resistance. You got lot of work to do.

        Goodluck

        1. 1

          Thank you, really appreciate it!

  9. 1

    Hey Paul - thanks for doing this. Big fan of your work.

    I really enjoy reading your blogs and these comments). On that note, I was wondering what motivates you to write? Is it to document specific moments of interest in your life? To share an idea you find interesting? Or do you just do it out of some sense of duty?

    I am grappling with writers block lately and was curious what keeps you going.

    1. 2

      Thank you!

      Occasionally, there's an idea that won't get out of my brain and it's too good to put down. I've written maybe 2 of those blog posts in my life [1] [2].

      The vast majority of blog posts I wrote were as content marketing. Either telling people what we're up to, providing updates, etc, or as something that will bring people in to learn about the product.

      Most of those were quite painful - writing is hard work, and it takes a lot of energy to force myself to complete it. I've even had people at work try to force me to write by sitting with my while I was doing it and watching my screen - that was actually moderately effective. Personally, I'm a starter, and I struggle with finishing things. Though maybe my new ADHD meds will help!

    2. 1

      (Not Paul) I struggle with writer's block a lot, too, but recently I discovered that was because I didn't want to say what I wanted to write. When I know I want to get my thought out there, the words and the desire to write comes effortlessly.

      If you don't want to write, maybe you don't need to?

  10. 1

    What's a startup idea you wish you had time to work on, but don't? Basically, something you wish someone else would build.

    1. 1

      I love business models and the idea of applying different business models to existing markets to see where you end up. Especially when those businesses suck in some way. (I really like the Dentist Office Software Story, which is roughly where I got this from).

      So one example here is Uber/Lyft. They both suck, in a myriad of ways that I won't get into. How could they be disrupted? How could it be done in a better way? Well, what about if you sold an Uber equivalent as a SaaS to local governments? Each government keeps a 20% cut and pay you an annual fee. And then they can just ban Uber (to keep the revenue in their municipality, instead of shipping it off to CA).

      Similarly, Doordash, Caviar, Uber Eats, etc, are killing restaurants. There's a bunch of unethical shit, but mostly restaurants are struggling to stay profitable on those platforms. So decouple the delivery and just provide an app that restaurants can sell on. There's a unified app that customers can use, and restaurants pay $50 a month to be on it. They can hire their own drivers, or whatever.

      There's equivalents for Amazon (local stores warehouse and deliver direct). There's also equivalents for Facebook - what can you uncouple from their empire - perhaps Events? Photos?

      Basically, take any existing successful tech company and try it with a different business model.

  11. 1

    Hey Paul! I admire the work you're doing with Darklang! Curious as to why the decision to move to NYC?

    After reading some other questions, I didn't see this one so I'll ask it now:

    What would you say is the single most intimidating hurdle to bringing the vision of Dark to fruition? That's a massively ambitious project!

    1. 3

      I think it's that it's such an ambitious project, or perhaps such a huge one. I know I need to involve the community more, but in the middle of a big rewrite there isn't a great place for folks to get involved. I'm also struggling to communicate things like a roadmap, that would be important to get more folks from the community involved. There's cart and a chicken and a horse and an egg and I'm not sure the best order for any of it.

      1. 1

        It's definitely one of the most difficult projects I've read about on IH for sure! I wish you all the best with it. I'll be following the project as you go and look forward to giving it a try myself

    2. 2

      Curious as to why the decision to move to NYC?

      My life was too connected to tech and I don't really like tech anymore and wanted to get away from it. So it was really about leaving SF and I had friends in NYC so it seemed like a good option.

      1. 1

        That's interesting. I feel the same way about tech and I am also trying to transition away from it or "decouple" my life from it as much and I also feel that NYC is a great place to for that (been here 5+ years).

  12. 1

    Hello Paul! Thanks for doing this AMA. In this site (IH), there are many developers who are capable of doing any kind of micro SaaS but they struggle with marketing, distribution, audience, reaching new customers which are as important as the product they build. My questions are:

    1. Do you have some advices for developers and solo founders who find difficulties with growing their product?

    2. How important was SEO is the early stage of your company and how important is now?

    Because physical and mental health is important:

    1. How many hours do you work per week?

    2. Do you exercise?

    Thanks for the answers in advance.

    1. 2

      Do you have some advices for developers and solo founders who find difficulties with growing their product?

      The most common advice I give to struggling founders is to give up. Founders often think that they can't quit, they just need to persevere, eventually it will happen. That's not always true - I know lots of founders from my years in SF who eventually packed it in, sad after wasting way too long it. I quit two startups before I founded CircleCI - those ones weren't going to work no matter what I put into them.

      Sometimes they know it's not working, and they need some kind of permission to quit. Or sometimes they need to be told that they're building something that they can't make work as a business (like "Tiktok but with one twist"), and that they should make a nice B2B SaaS instead. (Those are great: product market fit is easy to measure cause people are paying you money or they aren't).

      But if you're talking a founder building a product and not working on the other important parts of a business, then you should be honest with yourself that that's what you're doing. Your thing isn't going to magically take off, and "just one more feature" isn't going to help. And if that's the case, maybe that's fine, maybe you just like coding this nice product, but best not to kid yourself.

      Generally, my advice is to get away from the keyboard for a bit. Just talk to users (or prospective users if you don't have any). Don't sell, don't market, just figure out if you have something worth selling, or if you're close to it. Make a plan, don't just go back to coding something.

      Usually the problem is that the design of the product isn't holistic enough. Your product plan should include how customers are going to learn about your product, how they're going to try it out, onboard, etc. The whole customer journey up to paying for it. The act of making that plan will usually point out what's wrong with what you're doing, and point you in the right direction to be able to grow later.

      How important was SEO is the early stage of your company and how important is now?

      Not at all. People don't google for something they don't know they need.

      How many hours do you work per week?

      20-60, depends on how I'm feeling. Mostly less than 40

      Do you exercise?

      Not very much since the pandemic, though planning to get back on that horse. I did for most of Darklang, I didn't for basically any of CircleCI. Probably a mistake :)

  13. 1

    Hey Paul,

    Congrats on the impressive journey!

    Darklang seems interesting.

    Q: what is your takeaway from running CI/CD business and would you start a company in the same space today?

    1. 2

      I'm not sure what a takeaway would be. It was sort of a nothing space when we started, and has somehow grown to be pretty hot. I'm not sure what to tell you apart from start a company 8 years before the space becomes hot!

      I don't think starting a CI company is a good idea - it's so hard to get it working well and the ground you have to cover is immense. These days we cover Windows, Mac, iOS, Android, GPUs, dynamic config, multiple kinds of Docker, bring-you-own-hardware, etc, etc.

      In general, any company you do you want to find a niche. However, with CI, when/if you do find a niche (as a few companies did with CI for mobile in 2015 or so), all of your customers expect you to handle the rest of their development. So it seems like a pretty risky place to start a new company today.

      1. 1

        Thanks Paul, yeah, I was monitoring success of BuddyBuild back in the days. Your feedback makes sense. 🙏

        Q: Any of that knowledge you think will be applicable for your new Darklang?

        Love the serverless approach! Check out pulumi, and there's definitely a bigger market for the nocode, if you decide to focus deeper on the webhooks.

        1. 1

          Q: Any of that knowledge you think will be applicable for your new Darklang?

          Hard to say. We're still pre-PMF, so it's hard to tell if it's working. I'm pretty sure it will, but once we solve the challenges we're facing now, I don't know what the next ones will be. It's funny, I learned all this business stuff but now the thing that's actually needed is to produce the product.

  14. 1

    Was YC worth it? How do you feel about getting kicked out?

    I read that tweet - seems like a weird political reason to kick you out.

    1. 5

      YC was definitely worth it in 2010, when I wanted to learn about startups and didn't have a network in SV. These days I wasn't personally getting much value from it, but I was putting a bunch of value into it, that I should have been putting elsewhere. It's probably worth it for others, hard to criticize people for taking the opportunity, even if it's mostly just a glorified finishing school for Ivy Leaguers.

      I feel good about getting kicked out, though I really feel like I should have removed myself from it before that. I spent the last few years shaking my head and rolling my eyes at the shit that YC founders are doing -- everything from Doordash and Instacart stealing drivers tips, to the crypto scams, to the moving-to-Miami muppets, or the founders with their anti-DEI stance, Coinbase with its shut-up-and-play, and of course Paul Graham's slow descent into whatever he's becoming. I should have been done years ago.

      I think actually being kicked out was helpful, because I probably wasn't going to leave myself. When you're acting out in a community, it's a good sign that you don't want to really be there.

      1. 1

        When you're acting out in a community, it's a good sign that you don't want to really be there.

        So true!

  15. 1

    Appreciate you doing this Paul, Darklang seems like an ambitious, technical project!

    My question is thus centered more around personal learning: When you reflect on your education/career, what were the best levers for improving yourself technically? Particularly interested in how valuable you found doing the PhD/working at a large company like Firefox vs the startup route.

    Thanks!

    1. 3

      I guess just coding a lot. I spent college doing a lot of coding outside of class, writing a game in Java, lots of scripts in Perl and Python, some websites in PHP, in addition to the stuff in class in C++ and Eiffel and whatever. I got some internships and wrote some enterprise stuff but also got to write a Linux driver at my internship at Sony. For undergrad project, I picked a super meaty topic (sorting with caches and branch predictors) and spent most of my nights working on it for the next 6 months.

      Non-technically, being CEO of CircleCI was an incredible growth opportunity. I honestly hated it for at least the last year, maybe two, but I was learning so fast I figured it was worth it (eventually burnt out, but it turned out OK). But you learn so much, coding obviously, but finance, people skills, management, growth, product management, sales, marketing, basically just everything.

      The PhD I learned a lot. It's very self directed and I started by trying to implement Escape Analysis in gcj (gcc's java compiler). I wasn't enjoying it and was spending a lot of time on my side project, which was a PHP compiler called phc. Eventually that became my main project. The stuff I learned doing Escape Analysis (which is a related thing called Alias Analysis) became the basis for the research which eventually became my dissertation.

      At Mozilla, I stretched myself too thin and accomplished very little. I was working on 17 things with no direct supervision, and nothing got finished. I think most large companies aren't like that, in that they have managers to send people in the right direction. So I didn't learn anything there really.

  16. 1

    Hey Paul, thanks for doing this AMA.

    What was your strategy with launching CircleCI (and Darklang if you're able to speak on that)? How did you get the word out?

    1. 2

      With CircleCI, I'd love to say there was a strategy, but we just tried everything we could, all the time feeling that nothing was really working. In retrospect, posting comments on HN stories was really effective, and we wrote lots of blog posts too - they weren't all winners but most were a base hit at least, one or two did very well, and one had astronomical returns, though that was 4 years in.

      We also leveraged whatever networks we had. I posted to the YC mailing list (with permission, as CircleCI wasn't in YC), and we went to tons of meetups in SF. We didn't do the conference circuit or do open source (we do now), as we felt that TravisCI had those sown up and the return on investment would be low.

      Most of the effort though was in making the product work really well. Most people heard of CircleCI via word of mouth.

      1. 2

        With Darklang, things were quite different because we were established -- both cofounders had >8k twitter followers, and there was a low buzz about what we were doing in the SF tech scene.

        Blog posts were still really effective though. We tracked our mailing list, and each well thought out technical post would get us 2000 people on the mailing list, and one of them did well and got us 6000. We also went on a lot of podcasts.

        That said, the issue today for Dark isn't getting users, it's getting the product to a place where it actually solves the problem for people. So we actually didn't need remotely the marketing we had. That said, the fact that people are excited about it is also pretty motivating.

Trending on Indie Hackers
Can I write some cold emails for you? 6 comments I built this tool last spring. Works like a charm, but almost no sales. How would you market it? 5 comments Indie Hackers are making 60 million in Stripe-verified ARR 5 comments I run a 7-figure branding and web design agency with a completely remote team. AMA. 5 comments Tell me about your product, and I’ll tell you how I’d grow it. 3 comments An AI service that automatically improves your landing page conversions 1 comment