 small city in Iowa, a lot to do outside of my own home. So my dad was an independent contractor. He had all kinds of bullet jobs on houses. One of the things that he would do for money was take houses that had burned down and he was contracted to kind of gut them, just get rid of them, like wipe them off the face of the earth so that something new would be built there. And in doing this, he brought home all kinds of cool stuff and put it in our basement, things like old transformers, stuff from office buildings to offices that had burned down, circuit breakers, copper tubing, gas meters. I mean, it's all kinds of stuff. And as a kid, I would go downstairs and I would just sort through all of these wonderful items that he had just left there. You know, he got them for scrap. He wanted to disassemble them and get the copper out of them or get the aluminum out of them, take them to the recycling center or, you know, the kind of things that they had back then and make a little money on the side from that. It was a perk of being a guy that takes burned out things and gets rid of them. So I spent a lot of time as a kid doing that and discovering all these wonderful artifacts that I had no idea what their origin was. To me, they were just mysterious devices that existed out in the world. As I got a little bit older, my mom got me a set of how it works books. These are kind of encyclopedias. It's as if you put Wikipedia and printed it onto paper and then read it. What a concept. So she got me these encyclopedias. And I remember very distinctly, sitting in front of the hot air register in the winter, curled up next to the only source of heat in the entire house while it's 30 below outside and just leafing through these amazing encyclopedias that explain how things like a coal power plant works. You know, schematics is where the coal goes in. Here's where the energy comes out. Stuff that you're not born with this knowledge, right? This is stuff you have to learn. And to me, having experimented with and seen all of these amazing things in my basement really piqued my interest in how these things were created. So reading through these books opened my eyes to a world outside of my little house in the little city that I grew up in. And I just wanted to be like the people that created these things. I wanted to be one of those people that made something important enough to end up in a book. And at the same time, there was so much interesting material in these books that every page that I turned and I read something created more questions than it did in answers. So it was a never-ending dive into just the unknown. And that's really interesting to think that there's so much out there that we don't know. And going through these, I think it imparted up on me a lack of fear in that. I always knew that there would be more. There would always be something that I didn't know. And reflecting back upon this, I think that's important because all of the interesting things that I've done in my life come from ignorance. They come from not knowing what it actually takes to do something. And growing up with all of this stuff surrounding me led me to that conclusion. So let's take for example this. This is my house that I used to have in Oceanside, California, outside of San Diego. This was a pretty large experiment in ignorance. In that, hey, I'm 25 years old, I should be able to buy a house, right? That shouldn't be a problem. Regardless of how much money I had or well, you know, the lending companies really like to give people like me loans back then. Being the ignorant person that I am, I said I would like a house and they're like, you can have a house and therefore I had a house. Not a unique situation back then, right? But my wife and I, after we bought this house, we decided that we couldn't just, just having a house wasn't enough. We had to remodel it. So we decided to completely remove the carpet and the subfloor, the linoleum and the kitchen. And these things, these four by eight panels that they use, I don't know if you know this, but they nail those down with about 300 nails per sheet. Each one of these takes about an hour to get up. Little did I know, right? So we decided, hey, let's redo the floor. Let's put in bamboo flooring, probably hardwood flooring being the most difficult thing to put in as a floor. Well, let's do that. Let's, you know what, why stop there? Let's also remove walls because they're in the way. So, you know, get down the slush hammer and just, you know, you just start going, you know. What's a building permit? Who cares, right? Let's just knock some walls out. So we did this, did this, and then it's like, oh right, there's electrical stuff in there. But that's okay because guess what? Home Depot has books about electricity. So you go to Home Depot every week or so and you buy a new book that explains how to fix what you just broke. And that's a wonderful thing that you can do this today, that you can just jump in to something like removing walls, which may or may not be load bearing. And at the end of the day, if you work hard enough and you read enough books and you've got ambition, that you end up with something like this, right? All it takes is a lot of work, a lot of time, and a lot of ignorance. Never do tile work. If you ever have the choice of doing or not doing tile work, always err on the side of not doing tile work. But I think it turned out okay, right? You have to believe in yourself. You have to feel like no matter what, you can do something. There is always something to do. All of these things that I looked at when I was a kid, coal power plants, computers, houses, all of these are created by people and people that are no more special or different than you and I. And as long as you know that, then you can do this kind of stuff without having known how to do it before. So here's another experiment of ignorance. I was invited to a party back when I lived in Oceanside and my friend's friend had a jeep in the garage. Not too unlike this right here. It's a Jeep CJ-5, 1978. Back when the engines were simple enough that mere mortals could actually understand them. So I said, hey, you have a jeep in your garage. That's freaking awesome. So what did I do? I went out and I bought a jeep that I could put in my garage and then I would be freaking awesome. So I bought this on the desert. This was sitting on a boneyard for years and years and I don't know anything about the cars. I go out there and I'm like, whoa, what's it gonna cost? No, $800. I'm like, all right, but no. I mean, the thing was, the engine was rusted through. The wheels were flat. I mean, what a damn thing. It's made of different body parts. Where did that hood come from? Who even knows, right? But this started me on a special journey down the road of putting all of your money into a car. And also, at the same time, that you're putting all of your money into your house. So this is my friend Rob and he and I spent basically every weekend that we had free, working on the jeep, right? We would just go down there. We'd sit there and do, well, let's take it apart. And you just get in there with wrenches and then you find out you don't have the wrench that you need to take this part off. So you go to the store, you buy the wrench, you come back, you take that part off, you get down to something. You're like, what is that? I don't even know. What does that even do? It's just sitting there. It's not even connected to anything. So we go down this journey and then much like the house, we end up completely rebuilding the engine without knowing anything about this kind of stuff. But that's okay, because it's the same thing. You go in there and you're like, what the hell is this? Why are there so many rings? You go on the internet and you're like, you go on the jeep sites and you're like, oh, okay. Well, the rings prevent the exhaust from getting up into the combustion chamber and screwing up. You now keep the oil out of that whole interaction. And then you also find that when you go to put this back together, you forgot to note which side the little ridge on that ring was pointing. And nowhere in the universe, and I know this because I looked, nowhere in the universe will anyone tell you which way that little bevel should go. So you know what? You think about it. You say, well, the way the pistons go, the oil, and it's got to scrape the oil off the walls. The bevel probably points the dirt. Ah, fuck it, I'll just put it in, right? It can't, what could possibly go wrong? Just put it in. I'll worry about that later. So I took all sorts of things doing this welding. This is an oxy-sally torch, very awesome. You know, I just, I filled my garage with things that would make me awesome, essentially. But this is how you learn. You learn by attempting to do something that you don't know how to do. Intake manifold needs paint, right? Eventually we got to the stage where the engine was back together. I had rebuilt the carburetor and everything and it's all hooked up and you go to start it and there's flames coming out of the exhaust things. You're just like, yo, I should probably put, you know, the exhaust manifold at least on there so that there's not just like flame shooting out of this side of the engine. But eventually we did get it running for 20 seconds or so. That was a huge accomplishment. Just in that we tried something that we didn't know how to do before. And that's okay. It's okay to do that. This is how things are created, how discoveries are made. So this is the Jeep as it looks today. It's not quite done yet. It's in a storage unit back in San Diego other than San Francisco now. It's waiting, it's just lying, it's waiting, right? The day in which I ended up moving somewhere where I can actually have a garage without being a millionaire. The first company that I ever started called CubeSix Media. I had just been laid off of a job down in San Diego area. And I was sitting with my two friends who I worked with there four weeks were laid off. And we were saying how bad a new run the company was and how we would totally do things differently if only it were up to us. So I worked in Cube number six at this company. So I thought it would be ironically fitting that when I start my own company, I name it after the little cube of despair that I worked in at this company. So it was called CubeSix Media. But it came to pass that I, it essentially was a sole proprietorship. The other people that I started with kind of went and did other things because they're not crazy like me in that way. So I ended up doing this on my own. It started out kind of as a web design firm building websites for various local companies and whatnot, doing contracted work, built a photography site for this guy that takes photos that I knew, et cetera. And then I started getting into graphic design because that was something else that was interesting to me and that I hadn't done before. And I thought, hey, I can whip stuff together like that. Maybe I can sell it. So I started doing things like this, right? Just to demonstrate how stuff works, graphics for various people, flyers, pamphlets, eventually got into the print market and started doing business cards and letterhead and hang tags for sandals and whatnot. That led me to photography. So I started doing photography of products, make up cosmetic types of things, sandals. I took probably a million pictures of sandals is my estimation during this period, some of which I lost on a crash hard drive and had to retake a million pictures of sandals. So I spent a lot of time with sandals. But these are all just different elements of starting and running a company. Now this company was, I've made a little bit of money. Not really enough to live on, while spending money on a house and jeep. But enough to where I could scrape by within that lifestyle. Eventually I left this company because I started working with Rails instead of PHP. And I said, well, there's companies that are doing really cool stuff with Rails and I'm kind of tired of working on other people's products. I don't wanna, you do a job and then it's done and you give it to them and they give you money. There's no investment in that. So I moved on and I ended up working at a company called PowerSet in San Francisco. PowerSet, the awesome company was doing semantic Wikipedia search, essentially. Pretty cool company, I was employed under 32 there. And one of the greatest things about working there was that it got me to San Francisco. And San Francisco is just this wonderful place where you can go to lunch and the person sitting next to you at a table that you don't know is talking about compilers. Where else does this happen? This is not a natural thing, except in San Francisco and this was just amazing to me. So I said, this is the place for me. This is the perfect spot where I should live. This is where I can go to the next level. It's a great place to go mountain biking and throw ridiculous moustaches. I hung out with really great people and I got to know some of the best Rubyists in the community through this. And it was eye-opening, but at the same time it was working for a company, doing the company's bidding much like I was doing Q6, just a little bit different and in San Francisco. So as a side project, and this kind of three dates, I created this system called Graviton as my way of contributing back to the weblog community. I was really into that. I just wanted to, so badly, I just wanted to contribute something to the web standards, weblogging, ecosystem that was coming about in 2004-ish, 2005. So I sat in bed every morning and I thought about ways that I could do something important in that space. I came up with this idea of, well, let's take your email address and hash it and then attach an image to that and then people can request the hash of your email address and get a little avatar back. Now you can have avatars on forums and weblogs and stuff, cool. So I created this system out of, again, sheer ignorance, not knowing what this would mean or not even caring. Let's just create something and see what happens. Eventually this turned out to be a bad idea, at least this part of it. I hand rated every single gravitar that was added to the system because I was paranoid about porn and stuff ending up on there and the people wouldn't use it because they couldn't be sure of what was gonna be on there. And of course, I am the only person who has the knowledge necessary to rate an avatar. So things don't work out, right? This problem escalated as sight grew larger and larger. It was no longer just this little thing that I threw out there. Now it was something I had to take care of, something I had to really foster. And this, you know, this happened, right? You're going along, everything's cool, and all of a sudden people start using your stuff. And on one side you're happy because that's awesome, they're using my stuff. But on the other side, holy crap, my servers are on fire, right? And I don't know if you know this, but when this happens, this also happens. So there was a period of months where gravitas didn't even work. And I had a blog post and I was talking about what I'm doing and people would flame war me back. And I said, you know, I said this, spending all my time on this, you know, I'm trying to make it work, right? Very nice, you know? It's cool, you know, I'm spending a lot of time, it'll work, right? But inside I'm just like this, right? Because a lot of the things that they said, a lot of the things that people say, I'm not sure if you're aware of this either, but people say mean things on the internet. This is the post where I'm like, yeah, gravitas are 2.0 is coming, I totally swear to God. 646 comments, this is after the like 300 of them where they're just swearing at me have been deleted. And it's kind of demoralizing. I mean, people don't understand this, but when you say stuff like that on the internet, it actually affects people who read them. I mean, people have been really, really mean and that kind of made me just want to give up, right? Just be like, well, fine, then I'm shutting down. But I didn't want to be, I can't do that, right? It's not, I can't, I can't do that. But I realized that I needed to have some sort of balance in what I was doing. There needed to be some solution to this because I was doing this. At the same time, all of this was costing me money. So I've got the system and people angry at it because it doesn't work. It's not making me any money and I'm giving it to them for free. So it turns out that this story has a happy ending and a lot of lessons learned. I sold it to automatic kind of as, almost as a last desperation. I just, I couldn't keep working on it. I was too busy, I was at power set at this point. I was doing the full-time thing. This thing was, I just, I go home and I just stress out about how good I was at ours, you know, not working. So I sold it, right? That, that, that worked out but that very much could have not worked out. And I think that also would have been okay. Just, you know, someone else would have done it, right? But I had been there and I had created something that I was proud of and it was an interesting concept. And then I sold it. After I sold it, I had this, this pit, right, of emptiness because now I could go home and, you know, well. Work on the Jeep. I could, the Jeep was gone, the Jeep was already in the past, right? It's in the storage area back in San Diego. I would have loved to work on the Jeep, but, you know. So what am I gonna do to fill this hole? What do I want to do? I have all this free time now. I'm not saving servers from starting on fire anymore. So I started thinking about what you can do in life as sort of a continuum. Like what is, what is valuable? What do I want to spend my time on? There's things like the house that are very personal, it affects me. It makes my life better. It's creative. But it doesn't really, you know, it's not something that you can sell unless you become a contractor. I didn't really want to become a contractor. It involves Tyler. There is full-time employment like Power Set and a number of other companies that I've worked at. They're very rewarding, it's awesome. But for me, after a while of working at a full-time company, the initial sheen of newness that that company wears off, you realize that you're surrounded by padded beige walls and you're just doing someone else's bid. For me, it always comes down to that. And then there's something that you create on your own. It doesn't just say you create on your own. This is Q6. But this is limited. What I can do is limited by the time that I put into it. Companies like this, consulting companies, have a peculiar effect in that they don't scale well. They only scale by the number of bodies you have in seats. You can't create something and then make money from it except by being in a seat. But you can do very interesting things there. But to me, that's not as interesting as something like Gravitar where you're actually creating something and putting out in the world and everyone can use it. The only problem here being that it doesn't make me money and it's not sustainable. And I can't do this as my main thing. So then what's left? The only thing left at this point is to create something that you work on that scales well and you can sell it to a bunch of people without having to do any work specifically and that you enjoy. So I sat, you know, as I do, and thought about things. And I was wondering what is the fundamental concept of building things, right, of creating things. Creating things of value. Well, that's this. You take something hard and you make it not hard. You provide a solution to something, right? Obvious, yes. You create something that makes my life easier and I will pay you money and then good day, sir, right? Transaction over, what's happening? Win, win. You wanna find something that's win, win. That was the thing. So this concept of making something hard, simple is easy to demonstrate. Back in the day, you know, traveling west, the Oregon Trail, 2,000 miles that you would spend in a covered wagon, the wheels of which are made of metal, right? You think that the car that you have right now, you know, you go for a bump, it's like, oh, that would be annoying, you've only had better shocks. Metal wheels, how does that even work? And a fun fact, if you go to Utah, if you go to Moab or something, and all the rocks, it's called slick rock, but you're on your mountain bike, right? You're just like, wow, this is the weirdest one that basically never happened. The reason it's called slick rock is because back when it was named, they had metal wheels. 2,000 miles, it took six months to make this journey. And most of the time, it ended like this. I write the Wikipedia page on dysentery. This is not a good way to die. So what do you do? You want a great value, so you make this, right? Now you can go that same distance in four hours while sitting on this. This is what I want to do, right? I want to take something that's horrible and where you die of pooping too much. And you end up taking a little nap, right? This is the kind of transformation that I wanted to create. But doing something of that scale, right? I mean, making airplanes and seats that nice, that costs a lot of money. The only way to do this is by having a lot of capital and shaking a lot of hands. This is the way that those things happen. But it doesn't have to be that way anymore because we have these wonderful things called computers. And computers let us create entire businesses out of nothing but our brains and our fingers. And think about that because that's a really important and powerful concept. You don't need money or connections or anything. All you need, this is the out of the brief, right? Look at that thing, it's so sexy. I just, why can't they make them like that anymore? Now we have to use crap like this. But it's not about who you know or how much money you have. I was watching Mad Men the other night. Who ever watches Mad Men? I forgot about this. I have shirts. So raise your hand again. Who watches Mad Men? No, they have shirts on. I don't know. I don't know. I don't know. Mad Men is awesome, it's a great show. If you're not watching it, you should because the dialogue is just amazing. And I was watching it and in the second season, there's this character called Bobby Barrett. She is the wife of the obnoxious comedian Jimmy Barrett. And she's a manager. And her and Dodd Draper are having an affair in their restaurant and they're talking about stuff. And Bobby Barrett says, she's talking about how she became a manager. Because back then women didn't really, they didn't normally do this, right? So she's explaining how did she come to be this way? And she says something really interesting. She says, this is America. Pick a job and then become a person that does that. And that's what you can do today with just a computer. And an idea. But it still takes an idea, right? So how do you come up with ideas that are suitable for building these kinds of companies? I'm gonna give you a little tour of what I think is how it can work. I mean this is how it worked for me. So really this is just a personal story of what I did. So the number one thing that I think one should do. If you want to go down this road and create something for yourself, something sustainable, is this, go out and meet people. Meet people who are doing things the same as you, right? Go to users groups. Come, I mean you're already doing this right now, right? But go to where you live because those are gonna be the people that you're going to be around, you know? This is probably the nerdiest picture I've ever seen. Right? But see, these people really care about what they're doing. They are all so interested in this device, the OOPC, right? That they're gonna get together and they're gonna drink Mountain Dew and they're gonna eat potato chips and they're gonna talk about what they can do with this device. And as they're doing this, they're coming up with ideas and they're all talking about, well, I tried to do this but it sucked. Or wouldn't it be great if? And all of those things, every time you say that, you know, write that down in your head because that's something that is a problem that you can fix. As a corollary to going to users groups, also go drinking. Because the great thing about drinking is after you had a few beers and you're with your buddies and you're not drinking, talking about stuff. You start talking about what you actually mean. You stop thinking about being right or wrong. You just say, hey, wouldn't it be so awesome, right? If we could do with X, Y, and Z. And the other person, in a normal conversation, maybe they would be like, that's insane, oh, stupid. But after you're drinking, they're like, you know what? I can see that because your mind is a little bit more open, you know? It's not those inhibitions, you hear? It's a way to free your mind now to open up. And there are studies that say that people who drink are more successful, so. Ta-da. Who here drinks? Yeah. That then is the guy, you know, everyone drinks. Well, there you go, right? You take lessons from TV. But there's a concrete point that just happened for me. I would actually go all these Ruby users groups in San Francisco and I would talk to people. We would talk about stuff and then we would go drinking afterwards. And that was always my favorite part because you can sit in front of a guy and he's giving a presentation and maybe it's not about something you care about. But when you go out drinking and you're next to someone and you're talking about, hey, what do you think the most important thing in computer science today? This is where engaging ideas come from that are relevant to us as programs, right? In talking to people and thinking about those things. So this is Zeke's, this crappy bar in San Francisco near where I worked out there. And I got to talking to Chris Wonstrock, my co-founder about this idea that I had and these ideas about getting and how things should be better than they are or work in the air, right? This was a concept that I thought was important. And so my idea was, well, I just want to make something that allows me to use Git via Ruby because then I can build stuff around it. So I started talking to Chris and I said, hey, I have this idea. And he said, I'm in. It may be because he was drunk, I don't know, right? But it happened and it was because of showing up at these user groups and participating and talking to other people about ideas and just sharing things like that. That's where GitHub came from. This is where GitHub began. GitHub was born in a bar. Another thing that you want to do, and this is speaking of Chris, is this. Find someone that you can work with that's going to bring you to the next level. So I actually found two of them. This is Chris Wonstrock on the right and PJ Hyde on the left, my two co-founders. I met both of these guys in essentially the same way, right? They're user groups and drinkers. There's a big difference between when I was running Gravatar and what I'm doing with GitHub now, with Gravatar and Q6 Media as well. There was no one else there to talk about things with. And this is where a lot of my bad ideas came from was not having someone to talk to about ideas. So I would say, hey, I'm gonna rate another Gravatar myself. And that was the first idea I had. If someone else had been there to say, wasn't that gonna become a problem? Isn't that gonna prevent the scaling of the system once it reaches a certain level? Isn't that going to make your life miserable? There was no one there to say that to me. And so I just did it the way that I initially conceptualized it. We have some sort of insane love of our first idea. And this is why big companies have trouble because everybody wants their first idea to be the one that wins. But you need to have trust. You need to have people that you can trust to tell you when your idea is stupid. And you have to have enough respect for them to be able to have a discussion and an argument without getting angry and having a tantrum about it. But this is important. And a lot of companies that fund people, places like Y Combinator, they don't fund ideas. They fund people. So it's almost, the idea is important, but it's not as important as the people and the execution. So find some people that you like and you find them at users groups by talking about stuff that you enjoy. These people are easy to find, they're all around you, right? So find someone. And then build something that really, really inspires you. Something that you can really get by. This to me is the only way that I would build a business. I can't build a business out of something that I don't absolutely love because if you are successful in this mission of creating something and running it and having it be sustainable, you sure as hell better love it because you're gonna be there for years and years and all kinds of bad stuff is gonna happen and all kinds of good stuff is gonna happen. And you need to be prepared psychologically to be in it for the long run. So make sure it's something that you love. And at the same time, by loving what you do, you do it better. Nobody's good at stuff that they don't like, right? When you were in school and you were learning math, if you didn't like math, then you were bad at math. If you liked math, then you were good at math. So if you're gonna spend time doing something, do something that you actually like. For me, I had this computer when I was a kid, it's TRS-80, an amazing machine, right? You can make pixels move. But that's awesome because to me, a computer is as close to being a God as you can come, right? You sit down at this machine and you think stuff and then it happens. And that was so powerful to me growing up that I became a programmer and I wanted to build a company about programming. That made programmers' lives better. I wanted to build a company because I love that, right? There's nothing that I love more than developing software. And at the same time, this is something that's not going away, right? The trajectory curve of software development is this. We just recently started a job site for GitHub and in the first month, it hasn't even been a month yet, but there's over 200, I took this snapshot a couple days ago, there's over 222 jobs that are listed out there. Software development is just exploding. So people tell me when I talk about this kind of stuff, they'll say, well, that's great for you, all your methodologies and stuff, they're so nice because you're building stuff for developers. Well, guess what? There's plenty of space in building stuff for developers that's untapped and it's a long way to go until we get here, right? And I like to think that I can help us get there because why is it that when they go to the holodeck, they always go to old-timey stuff? It's weird, right? You think they would, no, it's just old-timey stuff. It's always old-timey, right? But there's a long way to go from where we are now to this kind of program, right? They go in the room and they say, computer, build me in a old-timey place. So what is it gonna take for us to get from where we are now to there? And is there something that you can build that will make that happen more quickly? So if you like development and I think everyone here does because you are here and you wanna build a company around that, you can, right? There's lots of opportunity there. Another thing that's really important is to find something that is going to grow. This is a great little sieve to put all your ideas through, right? Write all your ideas down. And you pour them through this sieve and you look at them and you say, who are the early adopters of this technology? And how awesome can this technology become? I've been reading a lot lately about Pixar, really inspiring company. There's a great movie called The Pixar Story. That's an excellent watch documentary. There's a book called The Pixar Touch that is an even more detailed exposition on the history of Pixar. But what they did is they saw potential in computer animation well before it was even possible. They spent 15 years building, just trying to build the technology so that they could make a feature-length film. That's what they wanted to do. So they saw potential in this idea and they knew it could be huge and they went after it, right? They saw a potential market and they made it happen. This is the Tesla Roadster, right? Elon Musk's coming. Electric cars. When electric cars and hypercars first came out, I looked at them and I said, why are these cars so ugly? Right? They were all just cracking looking. And I really admire Elon Musk because he, I think he understands that. He understands that early technology, the early adopters, they want something that's sexy and hot, right? You can't sell an electric car because it's clean to the masses, right? That's not gonna happen yet. It will. But you can sell them a sexy car that is also clean. And this is like the future, right? Electricity, running cars on electricity is the future. Make the car look like it's from the future. So he sees potential in this and he sinks a ton, a ton of his money that he made from PayPal into this endeavor to make this happen. And it's not easy, right? It's never easy. But he sees that potential and he's going after it. Apple, of course, right? Computers. How can anything be or have more potential than the computer? But back then people didn't see it. People like computers, that's for running numbers for a university research department. They couldn't think any further than that. So you have to look through your ideas and look at the ones that have big potential. Take the ones that don't have big potential and just get rid of them, right? But that's, I mean, this is harder than I make it sound because how do you know if it has potential before it works? So you have to just go, it's almost intuition. You have to kind of know. You see it. Look at the early adopters. Look at what people were saying about it. Look at where it could be 10 years from now, given a little bit of love, right? And it doesn't have to be a big, billion dollar company. Flickr saw that people were using a specific segment of their game, the never ending game, that they were building initially. And they saw that as a much more compelling idea with more potential than the game. People were using that way more than they were using the game itself. So they took that and they made that into probably the world's most successful photo sharing site. And the concept is easy, right? The concept is make sharing photos easy. It's a simple concept, right? Most of the ideas that you see that are really successful, you can explain in about seven words, right? Make photo sharing easy. That's it, right? That's the concept. And nobody had done that before. And they saw this idea, sharing photos. Hey, people are sharing, people want to share photos. Let's make that easy. For us, it's make sharing code easy, right? There's a lot of power in sharing. So maybe that's another idea. Take something that's hard to share and make it easy to share, right? A lot of people say starting a company is the hardest thing that they've ever done. And I think that's true on a lot of accounts. But there's ways to make it not quite as hard. And this is one of them. I built Chris and I in the first three months and then PJ came on. We built GitHub on the side, right? I was working full time at PowerSep while I was building GitHub. And I stayed full time there until it was clear that GitHub would be successful. So you don't have to do anything dramatic as go into your boss's office and say, I quit and I'm gonna go start a company, right? You don't have to do that. You can do this on the side. It requires a little bit of time, yes. But there's ways to find time, then it. If you find yourself saying, well, I would just do a startup. I would start a company. If only I had the time. That's just an excuse. There's all kinds of time in the day that we have that could be put towards some creative process that you would really love doing. Here's one of them. Chris originally proposed this idea of getting rid of your RSSP to me, right? And I said, well, why would I do that? You know, I use blog lines at the time when I have several hundred feeds, which would produce several hundred more articles in a week. And I said, well, why would I get rid of the system that so wonderfully pushes all of these things to me that I then feel obligated to read even though I don't really care about them? So I canceled my blog line subscription. And I found that immediately it was just this big world of like, well, now I have some time to do other stuff. And reading, I mean, to me, reading RSS feeds is almost demoralizing because the information bytes are so small. Each article is so small that you can read them so fast that you just, you have absolutely no retention. And at the end of the day, you're worse off than when you started, right? Name five blog articles that have affected you in the last year, right? I mean, it's difficult to do, it is for me anyway. To say, wow, these really made an impact on the way that I think about things. I find books to be a much better resource for knowledge than blogs because people really put the time and effort to make a polished product with a really deep scope and some vision of something that they're trying to expound it on. You can find all kinds of ways to free up time and get good things done. You just have to look and see, inspecting your life and say what stuff is working and what stuff isn't. Just give me the stuff that isn't working. Just don't be afraid to change it. I think complexity is the enemy of progress, especially in software. There's this great book called Code Complete about Microsoft. One of the greatest things that Microsoft has done, I think. And this book is truly amazing because it really shows you how to handle and maintain the complexity of the larger software development things and how testing works and what you can trust and what you can and what the realities of these things are through actual studies, right? They went and they started to come in and said, how many bugs are there per line, on average, in these pieces of software? What did you do to test them, et cetera, et cetera? And this guy collected all this data and this researcher did a lot of his own and came out with this book. And it's just amazing. It's a really dense read. It's a book, it's about this thick. But if you haven't read this book, go read it because it's entirely worth it. And this is the same idea that Uncle Bob Martin has when he talks about being a software professional. Because like I said, we just put out the jobs listing site on GitHub and there's all these job titles and they're like looking for a Ruby Rockstar, right? Looking for a Node Ninja, you know? Looking for a Mongo personary. I mean, what's next? Are we gonna be looking for a Haskell Hitman? I mean, where does this end? And why are we talking like this? I mean, if you work in civil engineering, do you want to have a Rockstar bridge builder? You know? Hey, I designed this bridge one day. No, it's absurd, right? And this is why real engineers, right? Civil engineers, electrical engineers, make fun of programmers because we engage in this behavior of talking about what we do as if it was this fancy cool thing, right? But at the end of the day, when you have a big software system, if you're building a company, you need to manage that complexity or you'll just hit a wall, right? Eventually, you'll hit a wall because all this crap is built up that you now have to wade through to get to where you're going. And one of the biggest things about being a startup and being successful in that is getting stuff done. So you can't be wading through the swamp of your past code mistakes if you want to maintain that advantage over your competitors. So this is huge. Now there's a couple of things that I've developed that help us at GitHub do what we need to do and manage this code complexity in a way that is also manageable for people like us without having to read through these huge specifications and blah, blah, blah, blah, right? This is stuff that you can all do and it's super easy. The first one is RDD, which is read-me-driven development. This idea is really just, when you go to write a library or piece of software, just write the read-me first just as if it had already been written, right? Exactly how you use it. How do you call the methods? What does it do? What is it for? And everything that you want it to be, right? Visualize what is the perfect state of this library right now. In doing this, in writing, the act of writing itself hones your clarity of what you're writing about to such an extent that it's absurd. I mean, think about the last time that you wrote a blog post about something, right? You wrote something down and you were expressing something to someone else in written form. When you began, you thought you knew what you were talking about and when you finished, you realized that you had no idea what you were talking about until you wrote about it. So that's the same aspect of writing a read-me-first, which is to say, get your ideas on paper. Makes it easier to talk about those ideas. You can pass it around, talk about them before it even exists, before you've written code because code is a pain in the ass to modify, right? Once you've written it, you've got to go in there and change it and that probably affects seven other methods and you're basically different. Figure all that stuff out beforehand. Just write the read-me-first. I think it'll be surprised. Another one, Tom Doc. I am very modest in how I hate things. So this is an example of Tom Doc. I've been doing this for years and never really codified it. I kind of just did this style. It was kind of a modified R-Doc syntax. But I don't like R-Doc. I think R-Doc is not what it should be because R-Doc says, here's a format for how you should do things. You do plus signs to make it look like mono space output. But it doesn't tell you what you should communicate to people. Right, all this all says is if you want it to look like this on, you know, when you print it out in an HTML, then you make it look like this in the documentation, in the comments. So Tom Doc takes a different stance. It says, here's what you need to tell people. You need to describe what you're doing. You need to tell people what the arguments are and what types those things are, or at least what method needs to respond to, et cetera. It was crazy like that. But you can explain to people what type something expects to be. And when you're gonna go use a library or some internal code and you're looking at a method and it takes four arguments and they're just called, you know, Food Bar, Baz, and I don't give a shit, then you have no idea how to use this. That's pretty good to money, huh? All right, get this man a shirt. He likes my jokes. You know what, I'll save one for you. Come up, come up at once. So describe it. Save what the arguments are. Maybe give some examples and then say what it returns, right? This is not rocket science. But this is what comments, code comments need to do, not output stuff in a pretty format. Who cares? If it doesn't tell me how to use it, then it's irrelevant. And every method you have this, every single method, no matter how short it is, should have this. You're just gonna have it of writing a documentation for every piece of code so that when you come to it a half a year later and you're like, what the hell did I write here? I don't even know what this means. Then you know, what do you mean you do know? Because you wrote the documentation, right? The third leg of that triangle is semantic version. Semantic versioning is really just a codified specification of what is already common knowledge to many. And it is just to say, well, version number should be three parts, a major version, a minor version, and a patch level separated by dots, monotonically increasing each as digits, right? So Rubyists don't really do this. And that's a huge, huge problem for code complexity because it means that you can't reliably state a dependency on a library and then be able to upgrade it later on and know whether it's compatible or not. You're just like, I totally added some cool stuff and just totally bumped the major version in. What does that mean, right? So this is a codification of how you change these numbers. It's rules. If you're just fixing bugs, you increase the patch level. If you add functionality or you make big sweeping internal changes or something, a lot of code, then you change the minor version. But it has to be backwards compatible. You cannot break your public interface. If you do, then you have to upgrade the major version. And people say, well, then I'm gonna have versions like 12.17.32, they're numbers. It's not like you're gonna run out of them. But at the same time, you don't really want to be bumping major versions all the time. You don't want to be breaking backwards compatibility for people all the time. So when you go to do a major upgrade and bump this number, you really think about it. And you think about what change you're about to make and say, well, is it worth releasing a new major version form? Or should I write this in a way that's backwards compatible and then defecate it and replace it later? So you think about your users. You think about who are the people using this library and how are my changes going to affect them? And that all goes into these version numbers. So it's all just a part of being responsible about treating your users like they want to be treated yourself and if you have a big system with a lot of dependencies and you obey this, your life becomes just magnificently simpler. If you don't ship something, then it may as well not exist. So get in the habit of shipping things, right? We do this really well as Rubyists, I think. Ship early, ship often, right? Put out development versions of things as soon as they're usable at all. We do this really well, but in a company it's especially important to maintain this idea because otherwise you can get into another habit of making things so perfect, so perfect before you release them that sometimes you've never even released them. So the way we make sure that we do this at GitHub is we have the ship it squirrel. Very simple, right? It's a squirrel saying ship it, that's the name. And when someone's working on some code and we're in campfire, we use campfire as our de facto office, we're always in campfire. Someone's talking about, hey, I'm working on this feature, it's getting close. It's pretty awesome, you can do this and this. And then someone else comes in and they just pop the ship it squirrel right in there, right? Right in the campfire, bam, ship it squirrel. Which is just to keep it in everyone's mind that you know what, this is awesome, let's ship it. Because another amazing thing about computers and especially the web and the SAS model is that you can change and fix stuff whenever you want. You don't have to ship CDs to people. So let's get something out there in front of people's eyeballs and get them using it as soon as is plausible, right? You don't wanna ship crap, you wanna ship something good but you wanna ship it as soon as you can. There is a website called ship it squirrel.github.com where you can find the ship it squirrel for your own needs. It seems like such a simple thing, right? But on the internet it's not. We've somehow lost this idea that goods and services can be traded for money. So when we started GitHub, we were talking about, well, how are we gonna charge for this? Are we gonna, how is this gonna work? Are we gonna give this away for free? And I said, we're not gonna give it away for free and we're gonna, we're going to charge for it specifically because I'd spend enough time not getting paid for work on gravatar. I didn't wanna do that again. So if from the beginning and from the beginning of your endeavor you charge money, then it turns out you will have money. It's funny like that, right? Cause and effect. So charge money, build something that you can charge money for. I mean, you can build amazing companies without charging money, right? Twitter doesn't charge money, you know? They do now for a few things. They don't charge end users. It can be done, right? I'm not saying that the only way to build a company is to charge money on the internet. It can be done, but guess what? This is a hell of a lot less stressful than going to your investors every year, selling a portion of your company and then having to deal with them in board meetings. So we, through this idea, we haven't raised any money. We don't need to because our customers are our investors, right? You guys. And at the same time, you don't have to spend any time or wade through any of that shenanigans dealing with investors who are only there to multiply money, right? They don't care about you or your company. They care about money. This is what they, this is their job, right? Okay, some do, right? I'm not completely anti-investor, but not having to answer to anyone is one of the greatest things to me in life. And I can make decisions on my own. And I don't have to check with anyone. And that's a hell of a feeling. So charge money. And if you do want to take investment, if your idea requires growing faster than you are without investment, if you build something compelling, something beautiful, something that people love, then you charge money for it and you don't have to go to investors, the investors will come to you. They love that. They love companies that don't need investment. So how does this whole money thing work? Is it really, how hard is this? How hard is this to do on your own? So let's say you want to make $100,000 a year, right? Good money, you know? Most places buy you whatever you want, services go, not so much. So it's kind of in between what you want to make and whatever, right? It's a nice brown number for this. You want to make $100,000 a year. So you have to make $8,333 a month. Well, okay, it seems like a fair amount of money. And how are you going to do that? Every month, you have to have every month. So let's use this thing called the subscription. It's this amazing thing wherein you only ever made more money than you did last month. It's just shockingly good. How well it works, and people like that because you pay a little bit of its time, it's not a big deal, you know? And you just pay it forever. And it just stacks up. So with this model, let's say you're gonna charge, I don't know, $12 a month or so, right? So at $12 a month, every month, how many subscriptions do you need to do this? And it turns out it's really not that many. Less than 700, right? $12 at a time, less than 700 subscriptions. For you to live independently and work on your company forever, if you want it, right? But it is that it's even better than that because you probably have several plans. Maybe it's like this, right? You got a $12 plan, a $25 plan, and a $50 plan. And there's some breakdown between those things. Well now how many do we need? Turns out you need less than 500. 500 people. That's not really that many more people than in this room times a few, right? You can conceptualize that many people paying for your service. It's not that many people, 500. Internet's a big place. World's a big place. People willing to pay for stuff on the internet is a big place. So you need 500. It's not that many. This is an achievable goal. You can do this, right? You still want, you want to have fun, right? Businesses don't have to be all serious spreadsheets and Hawaiian shirt Fridays, you know? You can have fun doing what you're doing. This is one of the greatest things that we do. I get how that we infuse into our cultures. We have fun. We have fun with things, right? We joke about stuff. We go and we do all kinds of stuff, right? We have the auto cab. Just inherently a fun little creature who's got a mustache here, which makes it even more awesome, right? Funny things. Mustaches make anything more fun than it used to be. We build projects that are fun, that are just, why not? Keep yourself engaged. Keep your employees engaged. Once you've got 500 people paying you, once you've got 20,000 people paying you, then have some fun with it. Treat your employees well, right? Have a good time. And if you're having a good time, then other people can sense that. They can sense that you're enjoying yourself. So whatever, right? We spend a lot of our time in campfire and we have fun in campfire, right? It's this place where everyone can go and just talk about stuff. And sometimes it's related to work and sometimes it's not. We actually have two different rooms. One is called the danger room and one is called the serious room. And so we just spend time in there. And if you make a culture of having fun, then people want to be a part of it. And so they'll work better and harder and be more satisfied at what they're doing. And so will you, if you have fun. One of the things that we do that most companies know is we have drinkups, right? Where we sponsor drinking. Who here's been to a drinkup? You come to say, if you're in San Francisco, we do them every month and we do them when we're traveling. And I'll be up drinking tonight. So if you've run into me tonight, then I will buy you beer on the company, right? This is what we do. We bring developers together. So think about all the things that you want to achieve as a company and then do them. So one of them for us is, well, we want to bring developers together and make developers lives easier and let them share stuff better. So let's arrange a time and place where they can all get together at a bar and drink and talk about stuff, right? This goes back to our origins, back to enabling people to talk about and discuss them. What their ideas, right? So where are you gonna be buying beer today? Where are we gonna be buying beer? The draft house. The draft house? Which one? The one that's not too far from here? We got the draft. You guys wanna go to the draft house? Yeah, yeah. We'll kill the place. I was there a couple of nights ago, so it's an awesome place. All right, tonight at the draft house, I will be buying beer. See, this is what you can do when you just follow everything that I say. At least I'm in beer, now that's the drill. Let's wrap this up. Number 10. The biggest number that I have on slide. It's gonna be difficult, right? It's going to be a challenge. It's not always gonna be fun. You're gonna have days where you wish you never even started. But the days that are good, so vastly outweigh the days that are bad that the whole thing is worth it so you know stick with if you do this if you if you try to do this and I think that every one of you can if you want to do this you can because you're like me your programmers you like to create things and a business is really not so different from a piece of coke it's really just an act of creation and nurturing something that you love businesses is really not that complicated make something people like charge money for it and then you're done it can be that simple so never give up and never let your fear of what's going to happen never let your inexperience at remodeling a house or building a Jeep or building a company that is going to fail and cost you a lot of money right don't be afraid of these things because it's not what you know in life that makes it interesting it's what you don't know if you do one thing when you leave this conference read this book this book is just a wealth of knowledge about how companies started and how they ran in the early days and it's shocking how haphazard these companies work companies like Apple right in the early days it was just it was crazy right they all start small every company starts small nearly every company so don't you know this guy's not giving up right he's not giving up so why should you thanks