Screaming in the Cloud - Continuous Integration and Continuous Delivery Made Easy with Rob Zuber

Episode Date: February 12, 2020

About Rob ZuberRob Zuber is a 20-year veteran of software startups; a four-time founder, three-time CTO. Since joining CircleCI, Rob has seen the company through its Series B, Series C, and S...eries D funding and delivered on product innovation at scale. Rob leads a team of 150+ engineers who are distributed around the globe.Prior to CircleCI, Rob was the CTO and Co-founder of Distiller, a continuous integration and deployment platform for mobile applications acquired by CircleCI in 2014. Before that, he cofounded Copious an online social marketplace. Rob was the CTO and Co-founder of Yoohoot, a technology company that enabled local businesses to connect with nearby consumers, which was acquired by Appconomy in 2011.Links ReferencedTwitter: @z00bLinkedIn URL: https://www.linkedin.com/in/robzuber/Personal site: https://www.crunchbase.com/person/rob-zuber#section-overviewCompany site: www.circleci.com

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to Screaming in the Cloud with your host, cloud economist Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud. This episode is sponsored by in the Cloud. care about, like whether you should sunset that feature that no one uses because it's costing you a fortune and eating away at your margins. Cloud Zero will also alert you right away when you push out a feature that, say, unknowingly doubles your S3 costs before you get hit with that enormous bill. Go to cloudzero.com to kick off a free trial. And my thanks to them for sponsoring this episode. This episode is brought to you by DigitalOcean, the cloud provider that makes it easy for startups to deploy and scale modern web applications with, and this is important around the world love, you can control your cloud
Starting point is 00:01:25 infrastructure costs and have more time for your team to focus on growing your business. See what businesses are building on DigitalOcean and get started for free at do.co slash screaming. That's do.co slash screaming. And my thanks to DigitalOcean for their continuing support of this ridiculous podcast. Welcome to Screaming in the Cloud. I'm Corey Quinn. I'm joined this week by Rob Zuber, CTO of CircleCI. Rob, welcome to the show. Thanks. Thanks for having me. It's great to be here. It really is, isn't it? So you've been doing the CTO dance, for lack of a better term, at CircleCI for about five, six years now at this point? Yeah, that's right. I joined five and a
Starting point is 00:02:13 half years ago. I actually came in through an acquisition. We were building a CI CD platform for mobile, iOS specifically, and there were just a few of us. And I came in in an engineering role, but within, I think, a year had taken over the CTO role, and I've been doing that since. So for those of us who've been living under a rock and recording podcasts, SEICD, or continuous integration slash continuous delivery, has gone through a bit of, shall we say, evolution since the term first showed up. I mean, my first exposure to it many moons ago was back when Jenkins was still called Hudson. And it was the box that you ran that it would wait for some event to happen, whether it
Starting point is 00:02:57 was the passing of time, a commit to a particular branch, someone clicked a button, and then it would run a series of scripts, which sort of lent itself to the idea of the Hacker News Anthem. That doesn't look hard. I can build that in a weekend. And now we've seen a bit of growth in that space of not just, I guess, the systems you can run yourselves, but also a lot of the SaaS offerings around this. So that's the, I guess, the moron's journey, from my perspective to path through CICD. That's almost certainly lacking nuance. What is it, I guess, in the real world with adults talking about it? Yeah. So I think it's a good perspective or it's a good description
Starting point is 00:03:41 of the perspective that many people have. Many people enter into this feeling that way. I think specifically when you talk about cloud providers and CircleCI, we do have an on-prem offering or behind the firewall. No one really runs anything on-prem anymore. But we have an offering for that market. But the real leverage is for folks that can use our stuff, multi-tenant SaaS cloud offering. Because ultimately, it's true. Many people start with something simple from a code-based perspective. I'm starting out. I've got a small team.
Starting point is 00:04:20 We have a pretty simple project, maybe a little monolith, Ruby on Rails, something like that. I guess, actually, I think in the time of the start of CircleCI, probably not too many people kick off a Rails monolith these days, because if you're not using Kubernetes and Docker, then you're probably not doing it right. So the Kubernetes and Docker people tell us. Yeah, exactly. They will proudly tell you that. So we'll come back around to that point if we want to. But so you have simple project and you have simple CI, right? Like you may just have a simple script that you're putting in a Jenkins box or something like that. But what ultimately ends up happening is it gets complicated. And as it gets complicated, it becomes a bigger and bigger distraction from the thing that you're really trying to do, right? You're trying to build a business to, I don't know,
Starting point is 00:05:07 to do ride hailing, to do scooter sharing. I mean, what's big these days, right? You might be trying to do any of the- Oh, my side project is Twitter for pets. We're revolutionizing the world of pet communication. Right, and do you want to spend your time working on pet communication or on CICD, right? CICD is a thing that we understand
Starting point is 00:05:28 very well. We spend our time on it every day. We think about some of the depths of it, which we can go into in a second. And one of the things that gets complicated amongst others is just scale, right? So you build a big team, you have multiple projects, and you have that one box under your desk where you said, oh, it's not that hard to build CINCD, right? And now everybody's waiting for their stuff to run because someone else got in there before them. And you're thinking, okay, well, how do I buy, you know, maybe you're not buying more boxes, you're building out something in a cloud provider. And then you're worrying about auto scaling because it starts to cost you too much to run those boxes. And how do you respond to the amount of load that you have on any given day? Because,
Starting point is 00:06:04 you know, you're crunching for a deadline versus everybody's taking a week off um you know and then you want to get your build done as quickly as possible so you start figuring out how to parallelize the work and spread it across those machines uh the list goes on and on and this is this is the reality that everyone runs into as they scale their work and we do that for you so while it seems simple and and you know I said I came in through an acquisition we were building CI and CD for iOS and I was that person I said this seems really simple we should build it and put it in the market and it didn't take us very long to get that that first version to build and it had to be generic to support many different types of
Starting point is 00:06:50 customers and their particular builds but it was a it was a small start but the you know we we started to run into the same problems and then of course as a business we ran into the problem of getting access to customers and all those things. And that's why we joined CircleCI. And sort of that became what is now our iOS offering. But there is a lot of value that you can get quickly, you know, to your point. But then you start focusing time and energy on that. Right.
Starting point is 00:07:21 I often refer to it, others in the industry refer to these sorts of things as undifferentiated heavy lifting, right? Something that becomes big and complex over time and is not the core of your business. And so then as you start to invest in it, as we invest in it, then we build capabilities that most people wouldn't bother to build when they write that first bash script off a trigger or whatever around helping you get your project set up, handling the connection into hooks, handling authentication so that different users only have access to the code they should have access to, maybe isolating access to production secrets, for example, if you're doing deploy, the kinds of things that keep coming up over and over in CI and CD that people
Starting point is 00:08:06 don't think about on that first pass, but end up hunting them down the road. What do you think that people tend to misunderstand the most about CI, CD, as you take a look at that throughout the ecosystem? I mean, from my perspective, when it was a box that you ran in behind the firewall, as you say, the problem was is that everyone talked about, oh, yes, we use cattle, not pets, except the box that does the builds. And of course, that box has a bunch of hand-built stuff on it that's impossible to replicate. It has extraordinary permissions into production environments and can do horrifying things. And it was always the star of various security finding reports. So there are a number
Starting point is 00:08:46 of us who came up from an operations side viewing CICD as in some ways a liability, which I understand is a very biased and one-sided perspective. But going beyond that, what are people missing? What are they not seeing about the CICD landscape? One thing that I think is really interesting there, like, well, one thing you call that was just resiliency, right? So we think about that in the way that we operate that system. And so, you know, we have a world of cattle because we've managed to think about that as a true offering, right? So as you scale and you start to think, oh, how do I make this resilient inside my operation? That's going to become a challenge that you face. The other thing that I
Starting point is 00:09:26 think about that I've noticed over the years is I want to call it division of labor or division of responsibilities. So many of those single instance or even multi-instance self-managed CICD tools end up in a place where, you know, past any size of team, honestly, somebody needs to own it and manage it to make sure it's stable. And the changes that you want to make as a developer are often tied to being basically being managed by that administrator so to be a little clearer if I have a group responsible for running CI and CD then and I want to start building a different type of code or a different project and it requires a plugin or an extension to the CI and CD platform or CI CD tool then I need to probably file a ticket and wait for another department who is generally not super motivated in me you know to get my code out into production
Starting point is 00:10:37 to go make a change that they are going to evaluate and review and decide what or maybe creates conflict with something somebody else is doing on that system. And then you say, oh, well, actually, we can't have these co-installed. So now we need two systems. And it's that division of responsibilities. Whereas having built a multi-tenant cloud offering, we could never have that, right? There's no world in which our customers say to us, hey, we want this plugin installed. Can you go do that for us, right? So everything that is about how the development team
Starting point is 00:11:12 thinks about their software and how they want their build to run, how they want their deploys to run, et cetera, needs to be in the hands of the developers. And everything that is about maintenance and operation and scale needs to be in our hands. So it's created a very clear separation out of necessity, but one that even, you know, I mentioned that you can deploy CircleCI yourself and run it within a team. And in large organizations, that separation really helps them get leverage. Does that make sense?
Starting point is 00:11:42 It really does. And I think we're also seeing a change in perspective around resiliency and how this works. I once worked at a company, I will not name, where they were, it was either CircleCI or TeamCity. This was years and years ago where I don't recall exactly what they were using, but it doesn't matter because at one point the service took an outage and in typical knee-jerk reaction well that can never happen again so they wound up doing all of the CI CD work for some godforsaken reason on a Raspberry Pi that some developer brought in and left in the corner of the office and surprise it took an awfully long time for tests
Starting point is 00:12:20 to run on basically an underpowered toy project and And the answer there was to just use less tests because you generally don't need to run nearly as many. And I just stared at people for the longest time when it came to that. I think that one of the problems that we still see, I know when I write code myself, I'm as guilty of this as anyone, I'm a terrible developer and don't believe in tests.
Starting point is 00:12:42 So the CICD pipeline that I tend to look at is more or less a glorified script runner. Whenever I make a commit to this branch, go ahead and run the following three-line script that does a serverless deployment and puts it where it needs to go, and then I'll test it manually. Or it's a pre-production environment, so it's not that big of a deal. And that can work for some use cases, but it's also a great thing that no one actually depends on the stuff that I write for day-to-day business operations or anything critical. At what point does it stop being a script runner?
Starting point is 00:13:13 Well, to the point of the scale, I think there's a couple things that you brought up in there that are interesting to me. One is the culture of testing. And it feels like one of these sort of areas of software development, because I was around in a time when no one really understood what it was to do automated testing. I won't even go into TDD, but just in general, why would I do that? We have this QA team. It's so much, you know, it's cost effective to give it to a bunch of people. Or I mean, thinking backwards or thinking back on that, it all seems a little bit, well, wrong. But getting to the point where you've worked effectively with tests takes a little bit of effort.
Starting point is 00:13:56 But once you have that, once you've sat and worked on something and had the feedback loop of, oh, this thing's not working. Oh, I'll just change this. Now it's working. Like really having that locally as a developer is super rewarding in my mind. And so, and enabling, I guess I would say as well. And so then you get to this place where you're excited about building tests, right? Especially as you're working in a team. And then
Starting point is 00:14:22 culturally you end up in a place where, you know, I put up a PR and someone else looks at it and says, I see you're making an assumption or I believe you're making an assumption here, but I don't see any way that that's being validated. So please add testing to ensure that is actually true. Both because I wanna make sure it's true now, but when we both forget that you ever wrote this and someone else makes a change,
Starting point is 00:14:48 your assumptions hold. Or someone can understand that you were making those assumptions and they can make appropriate changes to deal with it. And I think as you work in a team that's growing and scaling and beyond your sort of pet project, once you've witnessed the value of that, you don't want to go back. And so people do end up writing more and more tests. And that's what drives the scale, at least on the testing and CI side, in a way that you need to then manage that, right? And going the opposite direction of what you're describing, which is, hey, let's just write fewer tests and use cheaper machines. People are recognizing the value and saying, okay, we want that value, but we don't want to bottleneck everyone with an hour long build, you know, to run all these. So how do we get a system that's going to scale and support that? And that's, what's fascinating is watching that start
Starting point is 00:15:35 to percolate beyond the traditional web applications with particular blessed languages and into other things. For example, in my copious spare time, I'm the community lead for the Open Guide to AWS, which is a GitHub project that has 25,000 stars or so, so you know it's good, where it's just a giant markdown document that lists the 10,000 tips and tricks that we all wish we'd known when we'd gotten started with AWS and in a format that's easily consumable. The CICD approach we have right now, which I believe is done through Travis, is it just winds up running a giant link checker
Starting point is 00:16:11 in parallel across the thousands of links that are, sorry, I want to say 1,200 links that are included within that document. There's really not a lot else we can do in that type of environment. I mean, a spell checker with all of the terms of art involved would more or less segfault itself to death as soon as it took a look. But other than making sure we don't have
Starting point is 00:16:29 dead links in, it feels like there's not a lot of automation or testing opportunity in something like that. Is that accurate? Am I completely wrong and missing something? I've never built that particular site. So I mean, it sounds reasonable. I think that going the other way, we often think about, you know, before we kick off a large, complex set of testing for a more complex application, maybe than a Markdown document, a lot of people now will use things similar to what you're using. Like maybe I, part of my, part of my application is a bunch of links to outside docs or outside sites that I'm referencing. Or, you know, if I run into a problem, I link you to our help site or something and making sure all that stuff is validated, doing linting on the structure and format of code itself. And one of the things that, that comes up as you, as you scale out of, you know, the individual script runner is doing that work in parallel. Right. So I can say, you know what, do the linting over here, do the link checking over here, only use very small boxes for those.
Starting point is 00:17:37 We don't we don't happen to have Raspberry Pis in our infrastructure, but we can give you a much smaller resource, which costs you less if you're not going to be pushing the limits of that. But then if you have, you know, big integration tests or something which need more space, then we can provide that as well, both in a single channel or pathway to give you the room to move faster and then to break that out and run it you know break up your work like um at an extreme example and of course anyone who's done parallelization knows there's there's cost to splitting up work in uh like the management overhead but if you have 1200 links like you could check them all at the same time, right? I doubt that would be a good use of our platform.
Starting point is 00:18:27 But you could check 601 and 600 and another, or 300s at a time or whatever, and find the optimal path if you really cared about getting that done more quickly. Right. Usually, it's not that big of a concern. And usually, it winds up throwing errors on existing bad links, not something that has been included in the pull request in question. So again, there's nothing that is so awesome that I can't horribly misuse it for something ridiculous. It's my entire stock and trade. It's why I believe Route 53 remains the best database option for everyone. But it's fun going through this space and just seeing how things have evolved. One question I do have, since you come from a background by way of acquisition that was
Starting point is 00:19:08 aimed squarely at this, historically, it seems that running a lot of testing on mobile devices, specifically iOS devices, was the stuff of nightmares because you couldn't really run that in any meaningful way in a virtualized environment. So it generally required an awful lot of devices. Is that still the case? Has that environment changed radically since I last worked at a mobile shop? I don't think so, but I think we've all started to think a little bit differently. And so we got started in that business because we were building iOS apps and thought, wow, the tooling here is really frustrating. And to be clear, at CircleCI and at that business, we were solving the problem of managing the machines themselves.
Starting point is 00:19:58 So the portion of the testing that you would run effectively in a simulator, not the problem of the device farm, if you will. But one of the things that I remember, and so this is maybe 2014, late 2013, early 2014, as I was working on mobile apps, was people shifting the MVC layers a little bit such that the thing that you needed to test on a device was getting smaller and smaller, meaning putting more logic in, I forget what the name was specifically, but it was like the view,
Starting point is 00:20:43 I don't want to try to even guess, but basically pulling logic out of the actual rendering and down into what we'll call state transitions, I guess. And if you think about that in modern day and look at maybe web frameworks like React, you're trying to just respond with rendering on top of a lot of state change that happens underneath that.
Starting point is 00:21:08 And in that model, if you thin out the user interface portion, you make a lot more of your code testable, if that makes sense. So the reason we're all trying to test on all these different devices is often that we've baked a lot of business logic into the view layer does that make sense and yeah it absolutely
Starting point is 00:21:32 does and so please continue oh and so in order to instead of saying well all our logic's in the view layer so let's get really good at testing the view layer which means massive device farms and a bunch of people testing all these things let's make that layer as thin as possible and there's there's analogies for this in you know even how we do service design these days and structure the architecture of systems basically make the boundaries as thin as possible and the interaction with the outside world as thin as possible and that interaction with the outside world as thin as possible. And that gives you much more capability to effectively test the majority or much larger portions of your business logic. So the device farm problem is still a problem. People still want to see how something specifically renders on a particular screen or whatever whatever um but by minimizing that the amount that you have to invest in that gets smaller so as you you mentioned device farm which is app choice
Starting point is 00:22:32 given that that is the name of an aws service that has a crap ton of mobile devices that you can log into and it's one of my top candidates for the did i make this service up to mess with you competitions it does lead us to an interesting question. CICD has gotten an increased amount of attention lately from pretty much everyone. And AWS, as is typical for Amazon, tends to lie awake at night worrying that someone somehow is making money that isn't them. So their product strategy distills down to yes. So they wound up releasing a whole bunch of CICD-oriented products that at launch were, to be polite, terrible. And over time, they've gotten slightly better, but it's still a very confusing ecosystem there. And then we see things like
Starting point is 00:23:17 Azure DevOps, who it seems is aimed at a very similar type of problem, and they're also trying to challenge Amazon on the grounds of terrible names of services. But we're now seeing an increased focus from the first party providers themselves around the CI, CD space. What does that mean for existing entrenched players who have been making a specialty out of this for a lot longer than these folks have been playing with?
Starting point is 00:23:41 Yeah, so it's a great question. There's, I think about the approaches very Yeah, so it's a great question. I think about the approaches very differently, which is probably unsurprising. I mean, speaking of lying awake at night or spending all day thinking about these things, like this is what we do. So the thing, and you've used the term script runner a few times in the conversation. The thing that I see when I see someone like AWS looking at this problem is basically, you know, people are using the way that I think about it as maybe less the money, although it translates pretty quickly. People are using compute to do something. You know,
Starting point is 00:24:19 can we get them to do that with us? And, you know, oddly enough, a massive chunk of CircleCI runs on AWS, so it doesn't really matter to them one way or another. But they're effectively looking to drive compute hours and looking to drive, you know, a pathway onto their platform. And so one thing about that is it doesn't really matter to them, in my perspective, whether people use that particular product or not. And as a result, it gets the product investment that you put in when that's the case. And so it's a sort of a check the box approach. Like, hey, we have CI and we have CD like other people do. Whereas when we look at CI and CD, we've been talking about some of the factors like scaling it effectively and making it really easy for you to understand what's going on.
Starting point is 00:25:09 We think about very much the core use case. What is one of our customers or users doing when they show up? How do we do that in a way that maximizes their flow, minimizes the overhead to them of using our system, whether it's getting set up and running really quickly, like talk about being in the center of how much of the world is developing software. So we see patterns, we see mistakes that people are making and can use that to inform both how our product works
Starting point is 00:25:40 and inform you directly as a user, hey, I see that you're trying to do this, you know, it would go see that you're trying to do this, you know, it would go better if you did this. And so I think both from the, honestly, the years that we've been doing this and the amount that we've witnessed in terms of what works well for customers, what doesn't, what we see going through just from a data perspective, you know, as we see going through just from a data perspective, as we see hundreds of thousands of builds running, that rich perspective is unique to us because, as you said, we're a player that's been doing this for a really long time
Starting point is 00:26:17 and very focused on it. And we treat the experience with, I guess, I'm trying to figure out a way to say this that doesn't sound as bad as it might. But a lot of people have suffered a lot with CI and CD, right? There's a lot that goes into getting CI and CD to work effectively and getting it to work reliably over time as your system is constantly changing. And honestly, there's a lot of frustration and we come in to work every day thinking about minimizing that frustration so that our customers can go spend their time doing what matters to them. And again, when I think you, you know, you sort of, a lot of these big players present you with a runtime in which you can execute a script of your choosing. It's not, it's not thinking about the problem in that way.
Starting point is 00:27:13 And I don't see them changing their perspective. And so I don't really, honestly, I just don't worry about them. Which is a very fair tack to take. And it's interesting watching companies and as far as how much time and energy they spend worrying about competition versus how much they focus instead on customers. So to turn it around slightly, what makes what you do challenging in some respects, I would imagine, is that a lot of your target market is themselves developers. Developers, in my experience, are challenging customers in that, first, they tend to devalue their own time to the point where, oh, that doesn't sound hard. I'll build that overnight.
Starting point is 00:27:57 Secondly, once you finally win them over to the idea of paying for something, it's challenging to get them to have the necessary signing authority. So at best, they become champions. But what you do has to start with developers in order to win widespread adoption and technical buy-in. How does that wind up manifesting as approach to, well, some people call it developer relations, developer advocacy. I refer to those folks as dev relippers because I have problems. But how do you folks view that? Yeah, it's a really insightful view, actually, because we do end up in most of our customers or in the environments of our customers, however you want to describe it, as a result of the enthusiasm of individual developers, development teams, much more so than, you know,
Starting point is 00:28:54 there are many products in certainly an enterprise software, and I don't really think purely in enterprise, but there are many products that can only be purchased by the CIO or the CTO or whatever, right? And so we do, I mean, to your question of developer relations, we spend a lot of time out in the market, you know, talking to individuals, talking at conferences, writing content about how we think about the space and things that people can do but we are a very product driven company um meaning both that's that's what we think about
Starting point is 00:29:33 first and then support it with these other things but second um we we win on product right like we don't win in the market because you thought a blog post that we wrote was really cool. That might make you aware of us. But if you don't love the product, I mean, developers, to your point, they want to use things that they really enjoy using. And when developers use the product and love the product, then they champion it and they get access because they might work on, you know, a side project or an open source project, or maybe they worked in another company that used CircleCI and then they go somewhere else and they say, what are we doing? Life is so much better if we use CircleCI, those sorts of things. But it very much comes from the bottom up. It's pretty difficult to go into an organization
Starting point is 00:30:28 and say, hey, you should push this down to all of your developers. There's a lot of rejection that comes from developers on mandated tooling. And so we have to provide knowledge. We have to provide capabilities in our product that appeal to those other folks. So for example, administrators of our tooling
Starting point is 00:30:52 or when it gets to the point where someone owns, you know, the owns how you use CircleCI versus just being a regular user of the product, we have capabilities to support them around understanding what's happening, around creating shared capabilities that multiple teams can use, those sorts of things. But ultimately, we have to lead with product.
Starting point is 00:31:16 We have to get into the hearts and minds of the developers themselves and then grow from there. And everything we do from marketing, developer relations, myself, I spend a lot of time talking to customers who are out in the market, is all about propping up or helping people, helping raise awareness effectively. But there's nothing that we can do if the product doesn't meet the needs of our customers. And that's what it seems like it comes down to a fair bit. It's always weird to consider that at its heart, developer relations is marketing. And the folks I talk to who argue
Starting point is 00:31:52 against that, it seems that it comes from a misunderstanding of what marketing actually is. It's not buying ads in airports. It's not doing podcast advertisements, which is a subject near and dear to my heart. It's not about annoying people by showing up at their office with a sales team. It's about understanding what their challenges and problems are and then positioning a solution that ideally solves them in a place that, and in a way that is, that they can be receptive to. Instead, people tend to equate marketing to this whole ridiculous statistics-driven nonsense that doesn't really resonate with anyone, and I think that that's unfair to everyone involved. That said, I will say that having
Starting point is 00:32:30 spent a fair bit of time in this space, I've yet to see anything from CircleCI that has annoyed me to the point where I would have remembered it, which is awesome. I don't see it in in-flight magazines generally. I don't see it on obnoxious people trying to tackle me as I walk through an expo hall and want to scan my badge. It just seems very well executed and you have some very talented people working for you. To that end, you are largely a distributed company, which is fascinating. Did it start that way? Did it happen that way by a quirk of fate? Yeah, those two things probably come together. So the company from very early days, now I wasn't there, but I think some of our earliest engineers were distributed. And, you know, the company started out basically entirely as engineers. It's a team solving problems of other engineers, which is a, it's a fun challenge.
Starting point is 00:33:28 And so there were there were early participants who were distributed, mostly, you know, when you when you start a company, and no one has ever heard of you, and no one knows if you're going to be successful. Going and recruiting is generally a different game than when you're certainly when you're where we are now. And so you know, there were some personal relations that just happened to connect with people around the globe who wanted to participate. And so we we started out pretty early with some distribution. And that led to structuring the org in a way, you know, both from a tooling and process perspective, a lot of that sort of happens organically, but building a
Starting point is 00:34:11 culture that really supported that. You know, I personally am based in the Bay Area, so we have a headquarters in San Francisco, but it doesn't really make a difference if I go in versus, you know, just stay and work from home on any given day because the company operates in such a way that, that, that distribution is, is completely normal. We accidentally did the same thing. My business partner and I used to live across the street from each other and we decided to merge a week before he moved out of state to Portland. So awesome.
Starting point is 00:34:43 Great. We have wonderful timing on all of these things. It's fun to build that way from the ground up. The challenge I've always seen is when you start off with having a centralized office and everyone's there except this one person who, no matter how you try to work around it, is never as involved. So it feels like the sort of thing you've absolutely got to be building from day one, or otherwise you're going to have a massive cultural growing pain as you try to get there. Yeah, I think that's true. So I've actually been that one person. I, at some point in my career prior to CircleCI, was helping out a company founded by some friends of mine based in Toronto. I grew up
Starting point is 00:35:26 in Toronto and I kicked off a project. And then the project grew and grew until I was the one person out of maybe 50 or 60 who wasn't in an office in Toronto. And it got to the point where no one remembered who I was. And I was like, cool, I think I'm done. I'm out. I was fine with that. It was always meant to be a temporary thing, but I really felt that transition for the organization. And I would say in terms of growing, I mean, yes, if you start out, it kind of goes both ways. If you start out distributed, you're going to remain distributed. There are certain things that get more challenging at scale, right?
Starting point is 00:36:09 If everybody is sort of just in their home all over the globe, then the communication overhead continues to increase and increase and just understanding who people are, who you should be talking to. You need to focus. There's always a time zone hierarchy too. Oh, the time zones are a delight. Yes. And I would say like we talk a lot about
Starting point is 00:36:31 in this industry Dunbar's number and sizes of teams and the points at which things get more complex. And I think there's probably a different scale for distributed teams. It takes fewer people to reach a point where communication gets challenging. And trust and all the other things that go with sort of Dunbar's views.
Starting point is 00:36:52 And then the, so it's, you know, you kind of have that challenge and then you start to think, oh, well, you know, then you have some offices because we actually have maybe six physical offices, partly because in our go-to-market org, we've started to expand globally and put people in regional offices. So there's kind of this interesting disconnect. I don't know about disconnect, but there's a split in how we operate in different parts
Starting point is 00:37:20 of the org. And I think what I've seen people, well, I don't know about succeed, but I've sort of seen people try when you start out with one org or sorry, one location is let's not jump to like that one person somewhere else and then one person somewhere else kind of thing, but build out a second office, build out another office, like pick another location where you think you, it's often certainly where we are in the bay area um it's often driven by just this market right finding finding talent finding uh people who want to join you hanging on to those people when there are so many other opportunities around um is tends to be much more challenging and when you offer people alternatives like you
Starting point is 00:38:03 can you can stay where you are but have access to a cool and interesting company or you can work from home which a lot of people value then there's different things that you bring to the table so I see a lot of people trying to expand in that way but when you are so office centric a second office I think is a smoother transition point than just suddenly distributing people because especially the first and second one unless you're hiring in a massive wave are really going to struggle in that environment. I think that's probably one of the more astute things that's been noticed on this show in the last couple of years. If people want to hear more
Starting point is 00:38:42 about what you have to say and how you think about the world, where can they find you? I would say on our blog, I tend to write stuff there as do other people. There's a lot of, you talked about having great people in the organization. We have a lot of great people talking about how we think about engineering, how we think about both engineering teams and culture, and then some of the problems we're trying to solve. So off our site, circleci.com, go to our blog. And then I tend to speak and hang out on podcasts and do guest writing. I think I'm pretty easy to find.
Starting point is 00:39:20 You can find me on Twitter. My handle is ZubZ00B. I'm not super prolific, but if someone was to track me down and ask me something, I'd probably be more than happy to answer. And you can expect some engagement as soon as this goes out. Thank you so much for taking the time to speak with me today. I appreciate it. Yeah, thanks for having me. This was a ton of fun. Rob Zuber, CTO at CircleCI. I'm Corey Quinn, and this is Screaming in the Cloud.
Starting point is 00:39:49 If you've enjoyed this podcast, please leave a five-star review on Apple Podcasts. If you've hated this podcast, please leave a five-star review on Apple Podcasts, along with something amusing for me to read later while I'm crying. This has been this week's episode of Screaming in the Cloud. You can also find more Corey at screaminginthecloud.com or wherever fine snark is sold. this has been a humble pod production
Starting point is 00:40:30 stay humble

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.