 Thoroughly ready to do this, I am a co-founder of Github. How many guys in here and girls use Github? Raise your hands. That's what I like to see. You guys are alright. So I'm giving a talk today about entrepreneurship and how I went from an unknown in San Diego to where I am now, which is up here speaking to you about how you can do what I did. So hopefully you'll be able to get a few pointers from this talk. And if you are on the journey yourself to being an entrepreneur, if you are right now in this place where you're writing Ruby code and you want to be an entrepreneur building your own business, then listen because you might learn a thing or two. So it's common knowledge that if you want to be good at something, you have to put in long hours of practice, many, many hours. People throw around this number of 10,000 hours of practice to become an expert at something. That's great. It makes sense, right? But how do you know what it is that you want to be good at? And I think the answer to that is experimentation. In order to know what you want to do, you have to experiment with a lot of different things. Now 20 years ago, I was growing up in Iowa, a little town on the Mississippi called Dubuque. And my dad was what I called at the time a construction worker. And what the hell does that mean, right? Construction worker. Well to me as a kid, it meant that he kind of did odd jobs. He would do roofing jobs or he would do demolition type jobs. And one of the things that was kind of a perk of this job, well these jobs, was that he got to bring back all kinds of stuff from places that were on fire and that had burned down and he was kind of hauling away all the stuff. So our basement was constantly filled with all manner of things from electric meters to jars full of large capacitors, labeling, you name it, golf clubs, all kinds of stuff. Just whatever he could find that he could bring home and then scavenge for metal. He would just resell that. Now to my parents, that was just piles of junk. But to me, these were magical things that I could take apart because they were just junk and nobody cared. So I'd go in there with my screwdriver and something to just piece these things apart, open them up and see how they worked. And this was where my journey down experimentation, free experimentation where nobody says you can't go and do that. A lot of days you run into things and there's no permission anymore. It's like you can't take apart your iPhone because you avoid the warranty, right? But for me back then it was all about let's look inside these things and see what makes them tick. So this attitude of experimentation where I wasn't going to let anyone tell you what I couldn't do because I'd grown up with the freedom to do these things. This experimentation mindset followed me through high school and through college and eventually into the very first company I founded which was called CubeSix Media. This was originally a three person team. I found it in San Diego after I'd been laid off with a previous job doing job coding. And now it's maybe a little optimistic to call it a company because really the other two people that I founded it with kind of bailed out and went and started their own companies and I was left alone to run this company but that was okay because it was what I wanted to do. It was what I felt passionate about. And so really what I was was a freelancer and I was looking for jobs doing web application coding but not knowing anyone, not being very well networked in San Diego it was hard to find clients that I could go to and say hey I want to do this for you and here's my credentials I didn't have a lot of credentials of stuff I could show people and it didn't know a lot of people that were well connected. So what I did is I experimented with some other things like graphic design. I did a lot of work for posters and catalogs and brochures. I also experimented with photography. I spent a lot of time building out a nice little photography studio where I could take thousands and thousands of photos of sandals because that was the one photography job that I could reliably get. And so this, yeah, you take three or four hundred pictures of sandals and you get to know sandals really well. So I experimented with photography, graphic design and other things but I would always come back to web application development. That was always my true love coming from a Java background doing web applications back at the end of the internet bubble. This is what I wanted to do. And so at my previous job, I had been writing Java and one of my good friends who was working on the front end his job was writing cold fusion for the website itself and kind of the big e-commerce thing and this and that. And we would talk and he would make fun of me for how long it took me to write something that he could write in just a few lines of cold fusion. And this always made me a little bit jealous because why am I sitting here fighting with abstract container factories when I could just hit MySQL directly and pull the information right out? So that cube 6 medium, I started to experiment with cold fusion. Cold fusion was great for a while until the proprietary nature of it kind of wore down on me and the fact that I was pirating software because it's very expensive to run client sites just didn't sit with me very well. And so eventually cold fusion as awesome as it is just started to lose its luster. But at the time PHP was starting to come on the scene and PHP was very much like cold fusion and it allowed you to grab things directly from the database do iterations really quickly not have to deal with a lot of ceremony to get simple things done and it was completely free and ran on top of completely free software like Apache and it was very well integrated and there was a lot of documentation and you could get started without any money involved at all and this is exactly what I needed because I wasn't making a lot of money. So I did that for a while, I did PHP and as many PHP developers did at the time you started to create your own web framework because there weren't a lot of web frameworks out there and eventually you get tired of writing that same form processing code over and over again. And so I was creating a framework which I called ZEN with an XZN and I'm really glad I didn't stick with that name because there's something of that name now that is slightly more popular. But what I did do is come across another technology which was really nice and kind of blew my mind and that was Rails. I had done a little bit of Ruby before I had seen it I had looked at the blocks and tags and said from my PHP and cold fusion and Java perspective what the hell is going on? How many of you had that moment where the first time you looked at blocks you were just, okay, well you're all smarter than me apparently. But to me it was very magical and when I saw Rails it was exactly what I wanted to do in PHP already done for me ten times better and it was using Ruby which I had found intriguing before because it exceeded the scope of PHP. PHP is very much the web layer and Ruby on Rails and Ruby sit all the way down the stack but you can write anything in Ruby, right? You're not constrained to just websites so I found that very exciting. So I started writing Rails almost immediately once I found it and started doing that for client sites but it's difficult to learn a framework simultaneous to developing client sites that use that because you make mistakes and then your client gets angry and it just doesn't work out so well. Also, all that other stuff you did back in the day in PHP and cold fusion, you're still maintaining but you don't want to because you're using Rails now and it's so much better than anything you've used before that to go back and look at those sites that you had done previously in those old languages it just, it hurts inside, you know when you learn a new technology and then you have to keep using an old technology it's just, it's painful and so I wanted to escape that and what I did was I talked to one of my friends one of the friends who had originally found in Q6 Media with me was working at a company called Helmets to Hardhats and they had just hired a full-time Rails developer to do a full rewrite of their web application Now don't get me started on how terrible an idea complete site rewrites are but this was an opportunity for me to come in kind of ditch all that old stuff I was doing and not really making that much money anyway and start afresh at this company doing Rails work so I kindly told all of my old clients that they were fired and I took a full-time job at Helmets to Hardhats and this is where I met one of my best friends over the years, Chris Van Pelt he now runs and has founded a company called CrowdFlower in San Francisco so he's where I met, at Helmets to Hardhats is where I met Chris and together we kind of learned Rails and built all kinds of technology and did this horrible database migration from the old site to the new site and learned a lot about the technology what was possible I think at the time we were using Rails 0.11-ish it would have been around that time so there was still a lot of things moving everything was progressing very rapidly so at this company I was delving deeper into Ruby itself going past the layer of Rails and down into Ruby Land and I signed up for the Ruby mailing list and on that Ruby mailing list one day a guy by the name of Kevin Clark comes on and says, hey, I'm thinking of starting a Ruby users group in San Diego are there any other Ruby developers around here that would like to join in and Chris and I saw this and we said hey, that would be cool to go down there and meet these guys and maybe broaden our horizons as far as the Ruby world goes and see some new stuff see some new technology see what is really happening in this community and maybe involve ourselves a little bit more so we went a couple of times just kind of sat in back you know, scooped it out and it was really cool people would go up and they would just demonstrate things they were working on or a library that they found it could do something cool and it really struck me that I wanted to be one of those people that was up there talking about something that they were doing this idea struck me and so over the next few weeks I think Chris was working on another side project of his own where he needed some kind of date, time, entry field, 37 signals at the time had a calendaring part of Basecamp I believe where you could say I have a dinner at 6 p.m. or something 6 p.m. at 6 p.m. dinner like the Google calendar type entry style and he said, well I would like to have something like that but there's no library for Ruby that does this kind of English date parsing and I said, that's interesting that's an interesting problem natural language date, time, parsing is an interesting problem and so I went home that day that he had brought it up and I was thinking about it and took out a notepad and started jotting down the different kind of date, time, sequences that you could have things like tomorrow for yesterday afternoon 3 months ago 6 p.m. whatever right just all of the different iterations of how that could look and after 30 days of doing this after work every night I came up with chronic and I like to think that it's that it was on purpose that my talk today started at 4.20 I'm not sure if it was or not but I like to think that it was because it makes me happier about the world if that was on purpose so chronic how many of you know what chronic days are going to be that's a little ridiculous because I myself have never used this library this was a project that I thought was interesting something I wanted to experiment with to see if it was indeed possible for me to do and so those 30 days went by and I came up with something and the reason that I did this and the reason I do a lot of the things that I do is because they're what I like to call bomb tick problems and this stands for wipe off more than you can chew and it's especially cool that when you say that acronym out loud you say bomb tick and this suits the purpose very well because a bomb tick experiment is something that is dangerous on purpose is something that you commit to do even without any idea how you're going to do it so I do this all the time I do this with programming projects I do this with oh hey Tom do you want to come and do the keynote at startup school or not the keynote but at talk at startup school or a keynote at some conference in God knows where Russia or something right it's like something that you want to do that you feel like you can do it but you don't know how but you still say yes those are the kinds of things that I consider to be bomb tick problems and I try to approach these constantly because if it makes you a little scared if it makes you feel like you might be overstepping your boundaries a little bit or pushing what you are able to do those are the kinds of experiments that maybe they end in disaster and maybe they end in spectacular triumph but those are the problems that allow you to grow as a person the kind of things that you're not just going to stumble into them you have to actively go after those hard problems dedicate yourself to them and then see if you can actually pull it off so chronic I wrote it about a month I put out an initial release the 01 release and I went back to the San Diego Ruby users group and I gave a 45 minute talk on it where half of the things that I attempted to do broke but that's okay if you go back to that URL that was on that SDRB slide I'll go there and look for you if you go to this URL you'll see 4 or 5 talks that I did over the course of a few months 5 years ago so if you want a good laugh go watch some of those and you'll see the one about chronic so I wrote chronic I went to San Diego Ruby users group and I did something that we at GitHub today are very fond of which is to ship it and we have a special little image that we use in Campfire when we want to tell someone else that they should ship it he's called the Ship It Squirrel and you yourself can benefit from this by grabbing the image at this URL now the Ship It Squirrel doesn't necessarily mean go and do it right now but it means this looks awesome take it to the next step and so that's what chronic was about for me it was build something see if it works get it out there in front of people so that I could become instead of being a lurker at the back of the the conference room at UCSD instead of being back there just watching I wanted to be up front telling people about what I was doing and so that was the step so here's another interesting question how many people in here have written and released a Ruby gem that's awesome writing a Ruby gem this is how you learn this is one really great way to get your stuff out in the open and especially open source stuff and see what's going on if you haven't yet written a Ruby gem I would definitely recommend that you start making today right now about some problem that would be suitable to be solved by a Ruby gem go figure out how to write it write it and release it because it is such a good learning experience and such a great stepping stone from where you are just watching to someone who's in there participating and producing something new to the world so if you don't have a Ruby gem released figure out how to release one and make that your next project so in the title of this talk I sort of promised that I would talk about Ruby hacking and how that's relevant to entrepreneurship and for me Ruby is so good for entrepreneurs because it allows you to test your experiments very rapidly in no other language I can think of can you have an idea implement it so fast as you can in Ruby so when you are thinking of things for a Ruby gem to create for instance you can go from no code to working code that maybe other people are using in a matter of just days sometimes and that's the kind of power that lets you explore a wide sloth of potential accomplishment very quickly and this is important spreading yourself out through a bunch of experiments to find that one experiment that really hits it if you're lucky that might be right away if you're not so lucky the night might take a little bit longer but over the past four or five years I've written all of these Ruby gems I am primary author or maintainer on each one of these gems and this is how I explore the universe of what is possible some of these things like God a lot of people say shouldn't even exist I just let that one sink in for a second but really a lot of people say to me all you ever do is re-implement stuff that already exists they say not invented here syndrome etc but when you look at some of the projects from the perspective that I'm just trying to do something that is already a common need but just in a different way in a slightly different perceived way a different approach to these problems this is how all the good things come to exist I can almost guarantee that everything that you're using today in life was at one time seen as some kind of duplication say oh why does Apple need to create a better laptop there's already existing ones that solve that problem but they do it in a slightly different way and that way ends up being a lot better sometimes I can see by looking around that a lot of you agree so don't worry too much about duplicating an existing problem if you have a different angle on it a different angle is what's going to take a good idea and make it a great idea so I'm in San Diego still and you might remember the two names that I brought up Kevin Clark isn't that I have to do that again it's like flames flaming head circles I don't know I use myself sometimes Kevin Clark and Chris van Pelt and you can see me just with the left of Chris these are the two guys that I met and became really good friends with in San Diego but this picture isn't taken in San Diego this picture is at the power set office in San Francisco so here's another step on my journey from that Rubyhacker who didn't know anymore to San Francisco running GitHub this was a very important step the power set was wikipedia search very very hyped maybe over hyped I'm not sure but it was a great place to work and it got me to San Francisco so the deal was I knew these guys from San Diego and they had both moved out to work at power set and they kept badgering me to come up and do an interview and they said well I can't because I have a life here I own a house my whole I have a job but everything is set I can't just leave and move up there that would be a huge ordeal but eventually I had the opportunity to go up to San Francisco on a different matter which was to talk to the automatic guys about a potential acquisition of Gravitar which is another project that I did back in the day and so I was already going to be in San Francisco and I said ok I'll come by the power set office and see what you guys are doing and maybe just talk and whatever no commitment to anything, no interview nothing like that so I went up there, I had my meeting with automatic they didn't go for it at that time they went for it later on but I was in San Francisco and I stopped by the power set office and they showed me the technology Kevin was in there and they were showing me the stuff and it was legitimately exciting and my wife was with me Teresa who's here in the audience and after that demo I was kind of excited and so the next day we were scheduled to go back to San Diego and we went to the airport, we were at the airport and we were sitting there and we were trying to decide whether it would make sense to go take that interview at power set because we went up there and it was a Sunday and the next day was a Monday and the interview would have to be on that Monday but we were supposed to fly out that afternoon so we were at the airport and we decided what the hell let's reschedule that flight back to San Diego and I'm going to go to this interview and we'll just see what happens what's the worst that could happen let's check it out and go back the next morning and I go through a grueling like eight hour interview at power set they were serious about their interviews but it went pretty well and everything okay went back to San Diego and a few weeks later got an offer to join our team and now this is really interesting because at the time our living room looked like this we were in the middle of a giant remodel the lights are impenetrable okay I will describe this to you it's not as cool in words but this is our living room which has one entire wall completely gone down to the studs and just basically disaster everywhere so we were in the middle of this giant reconstruction of the living room that we were doing ourselves this is another one of those bomb tick problems kind of literally where it's oh hey let's remodel our entire house I've never done this before what could possibly go wrong and in this next picture you can see that when you take out walls you discover that there is electric stuff in those walls in any case that's another story but our house was going to shambles so do we take this job do we move it to San Francisco how are we going to deal with this house how we can't sell it like this it's a wreck and over the next 30 days we decided to see if we could finish up the remodel and so about 30 days later I'm working every night literally sometimes in 11 at night with a tile saw out on the driveway we took that big mess and we turned it into something that we could actually appreciate so this is not only just a part of the story but this is another lesson in what you can accomplish when you don't know what you can't accomplish so always think about that when something seems too big to overcome I say go for it anyway because the worst that can happen is maybe you won't do it but the best thing that can happen is that you'll have done it in photographs during talks so we finish that up and we move to San Francisco and San Francisco is a special place there's no other place in the world that I can think of that you can go to lunch and just randomly be sitting next to people who are talking about optimizing seat compilers and this is what makes it special there's a great quote from Mark Zuckerberg at startup school where he said he was asked the question why do you think startups should go to Silicon Valley or what is special about Silicon Valley and he said San Francisco and Silicon Valley is like instant startup mix everything that you need to do a startup is in San Francisco and the Bay Area everything is specialized for the mindset of creating a business from scratch everything from the incorporation papers and documents the lawyers that know how to create startup structures the way they need to be in order for you to give out options and create the kind of company that is going to be something that investors can invest in you've got all the talent available in that area all of these things line up and all you have to do is add a good idea and you can get a company rolling really fast and that's what makes San Francisco special but not only that but you've got a place that you can go mountain biking and grow really killer mustaches I really wish you guys could see these in their full glory this is me with a kicking fumenju like you've never seen before and another thing another little piece of advice is when you're stuck on one of these really hard problems when you feel like maybe you did bite off more than you could chew for real go out and get some exercise because for me going out and doing an up bike ride getting a little adrenaline going getting a heart rate up it's so good at clearing the mind and opening up your creative flow again to tackle those problems you're stepping away from the problem go do some exercise, go get out in nature it really recharges you in a way that nothing else I can think of accomplishes so give that chance next time you're stuck on something go out and exercise San Francisco is great for that now you might be thinking okay well San Francisco sounds great and all but how do I get there how do I do what you did it's not like I can just get a job there well maybe you can because we have this thing on github now called github jobs I'm just shamelessly plugging all my stuff in and if you go to this site jobs.github.com you will see that not only are there a ton of jobs here for many of them review developers but 40 out of those 137 jobs that are on the site right now are in San Francisco there is a huge necessity for talent in San Francisco right now and I'm saying this a little selfishly because we ourselves benefit from drawing a lot of technical talent to San Francisco but if you are serious about going down an entrepreneurial path you can do it anyway don't get me wrong you can start a business from anywhere in the world but you can't start a business anywhere nearly as easily as you can in San Francisco so I'm in San Francisco power set doing my thing doing Ruby tools on the back end it's a cool gig I'm learning a lot I'm hanging out with awesome Ruby developers still learning Ruby down to the very low levels of learning and all this but it's not really what I want long term what I really want is to start my own business to run my own thing my own way and how do I do that ask myself how do I go from working at a startup to creating a startup and do it without having to put myself in a large amount of jeopardy by quitting because I've got bills to pay back in San Diego etc right how does this happen there's a really great book that just came out by a guy named Steven Johnson called where good ideas come from and he has this really great quote he says chance favors the connected mind and this is kind of the thesis of the whole book which is ideas good ideas don't just come from one place or one person or one point in time they sort of aggregate over time by many ideas bumping together and transferring that little piece that was missing so a lot of ideas start as one notion and as you go out and talk to people you'll get a little piece that you were missing you have a hunch for years and years and all of a sudden you're at a conference and you meet someone who says something and you get to that that just tricks something in your mind and it solidifies what takes your hunch and turns it into an idea that is great and actionable this is what he talks about so I wonder what a couple of ways to do this to make this happen to get these ideas that are going to be the foundation of something that can become a business so here's a couple one of them is to write down something that frustrates you and I'm sure you've been frustrated by a dozen things just today if you start writing down everything that you think could do better a lot of those things are things that people will pay for and maybe the way you write them down isn't the way that you build them and get people to pay for them but if you compile this list of ideas maybe you just do it in your head that's fine when you're thinking about those things you grow a base of ideas of concepts that you can have for later when someone says something or expresses that same problem just in a slightly different way and maybe the way they express it is all of a sudden monetizable so write down the things that frustrate you those are the kinds of things that you can build a business out of for us, GitHub came out of the frustration that sharing gift repositories was a huge pain in the ass and in fact that was our tagline for the first year or so get hosting no longer a pain in the ass it said that on the website so pick a problem that you have and kind of iterate on it see where it goes a nice way to do that extend those ideas is to start writing books and I think this, the Kindle is one of the greatest things to ever happen to literature now I don't have one of these I have one of these and I've read probably 12 books on this thing on my phone because I can do it anywhere when I'm in line, on an airplane in a bathroom, why not you know you do it but you can go through so much collected knowledge in books so quickly a book is so much better than blogs too, stop reading so much stuff online and start reading books those are the people that really take time to express their ideas well you can find some good stuff online but for me, reading books is far superior and now I'm going to sound like a hypocrite but you should also blog but I'm actually not a hypocrite because blogging isn't about other people it's about yourself there's something really magical that happens when you start putting ideas onto paper you have one concept in your mind then you start writing about it and you wonder what the hell you were thinking because it no longer makes any sense the way you put it on paper and so writing things makes you really crystallize the concept that's in your mind and once you have that crystallization once you have a really good grasp on what you think then you can start taking those ideas that are well thought out and combining them with other ideas this is something that we did all the time at a ruby meetup in San Francisco called I Can Has Ruby this came out of a dissatisfaction of the existing ruby meetup and a group of us said we're going to go do our own meetup that we don't invite VCs to that was mainly the problem the VCs would come and just try to hire people and that kind of ruined the feeling of the meetup and we started our own and there's a lesson here too while I did not particularly start this meetup I found over the last several years being in a leadership role leadership really is just about inviting people to do things all it takes for people to do something is an invitation to do so if you go out there and you start suggesting things solutions to problems ideas that you have for something or just with your buddies to say next weekend let's go to Tahoe and go skiing if you put those ideas out there if you take that leadership role all it takes is just a suggestion just an invitation and I think that's kind of blown my mind because it's that simple really a lot of the times being a leader really is just about suggesting something that isn't too stupid for other people to not follow you in doing it so give that a try next time in the way that you want just jump in and just make something happen it's not going to work every time but it works well enough that I think it will really change things depending on your situation so I came in as Rudy we go to these meetups and this was the traditional meetup kind of thing where it was an hour or two of talks and then we would go to the bar afterwards and these are the kinds of meetings where you can meet people that are enough outside the scope you normally do that you get ideas that can really help your idea that can really compliment what you're already thinking about because if you just talk to your friends all the time they're already going to have the same ideas as you they're going to be too close the network is too close you need to go to a broader network to start meeting the people that are going to provide the ideas and the connections that you need to create those really good ideas for github started and in fact github was born at a bar this bar right here Zeke's in San Francisco this is where I went to Chris Von Strath and I said hey I'm thinking about doing something with a ruby library that allows me to read github repositories off disk and then create a site that makes it so people can share them and he said that sounds awesome because he had been thinking about those kinds of things too but not in quite the same way what I had for sharing repositories hid the ideas that he had for making those kinds of things easier the process of open source easier those ideas came together and we were able to create github out of it that's the power of going to meetups and drinking with your buddies just connecting those ideas drinking isn't about drinking it's about sharing ideas so here's my two co-founders these are guys that I met at meetups and drinking and here's where we go back to once you have those people, once you have those connections and those ideas made you go back to ruby you can make those ideas a reality in a few weeks we went from no code at all for github to a private beta where we started inviting our friends in three months of working evenings and weekends three months we took building that initial private release six months to the public launch six months we started charting for github so you can take those ideas and with ruby turn them into a reality much faster than you think you can and the speed with which you can do that means that you can try a lot of things if one of them doesn't work and that's the key here and once you do have those things you can assemble a team of people and continue that collaborative idea making this is how we do things at github we don't have individual desks we have large tables kind of mimicking the coffee house experience when we got our office we took everything that we liked about coffee houses and removed everything that we didn't like really what we wanted was a place that we could go and hang out together and not have to buy crappy coffee and get to play whatever music we want that's what we wanted so that's what we created in our office and this is a great way for ideas to spread too you're sitting across from someone and an idea strikes you you just talk to them directly if they're not there in your presence sometimes those ideas just get lost they're just gone Linus Pauling said one time that the best way to have good ideas is to have a lot of ideas and implicit in that message is the admission that not all of our ideas are going to be good ones and that's okay because if you let your ideas collide with other people's ideas and you use something like Ruby to implement those ideas quickly you can go from concept to completion fast enough to try out enough things that it's inevitable that you'll eventually have something successful thank you