Ask Tom Preston-Werner, cofounder of GitHub, anything Today, Mon 18 Oct 2010.

144 points by mojombo ↗ HN
Two days ago I had the pleasure of speaking at Startup School. Never before have I see such a high concentration of smart ambitious people in one place.

I've posted a followup on my blog at http://tom.preston-werner.com/2010/10/18/optimize-for-happiness.html that covers some of the ideas I introduced in more detail.

Since I only had about 25 minutes for the talk and 5 minutes for questions, I wanted to make myself available for additional questions. So today I'll be answering any questions you have here on Hacker News.

Ask away!

143 comments

[ 2.8 ms ] story [ 203 ms ] thread
Any interesting conversation with Linus, you could share with us?
We actually haven't talked to Linus. He only takes part in discussions around Git when he notices something wrong. The model that the Linux kernel uses for contributions is pretty well set in stone (and email) and so it's likely that GitHub doesn't really offer him, personally, much benefit. We do, however, speak regularly with the top core Git maintainers and have a good relationship with them.
I love GitHub. Can you give the HN community a sense of your monthly revenue?
It's not a figure that we publicize, but let's just say it's enough to support thirteen well paid employees, a San Francisco office, 34 physical machines at Rackspace, and plenty left over to put in the bank account.
Hi Tom - I saw your talk (streamed) from Startup School, loved it, and also read Drive over the weekend. I'm currently strongly considering bootstrappping my new company (healthmonth.com) similarly to how you've done.

Are you willing to share a bit more detail about the timeline of the first year when you went from 2 people to ? people... when you hired, how much you spent on salaries versus how much you were making in revenue (exact numbers not required), and how certain you were that revenue would continue to grow at the pace required to support your staff.

Also, what were the "other means" by which you supported yourself until GitHub was able to support you? Your jobs? Or something else?

It took three months to go from inception to private beta. We used an invite only system to introduce artificial scarcity and drive buzz on Twitter (each new signup got five invites to use). After six months we launched to the public and started charging for private repos. Because we had such a great beta period, we converted a large number of users that day and were making money immediately! For the next several months we put every dollar that we made into the company bank account and let it accrue.

One year after inception I was faced with a choice: take a full time position at Microsoft (Powerset had been acquired) or quit and go full time at GitHub. We were making enough money at GitHub to pay low salaries for the three cofounders and we decided to Hire Scott Chacon at the same time. So we went from zero to four full time salaries in one day, a year after starting it on the side.

Over the next six months we incrementally raised salaries for everyone as we hit specific revenue goals. So about 18 months after inception we were making decent salaries. We also hired Tekkub to do full time tech support in this timeframe. Our next hire was Melissa, our office manager a few months later.

As far as revenue at these milestones, we were always profitable. We only hired when we had the money to do so. For the first 18 months we didn't carry much balance in the bank account. We used it to hire great people.

Being a subscription service means that recurring revenue is extremely predictable. We've never had a month where revenue has dropped, and we can predict the increase in monthly revenue quite accurately as well. Growth has been surprisingly smooth (not spikey).

We now make money from GitHub.com, GitHub FI, Training, the Job Board, and merchandise.

Who are your customers for GitHub FI? It seems that Github is SaaS done really, excellently right: I can have private repos up and running for a cheap cost in minutes. Is FI just for people who are very protective about who has access to their source code, or is it filling some other niche that SaaS can't handle?
The biggest customer I can think of is the government, though I'm sure there are others.

Think the intelligence community, military, state, fbi, etc...anyone who has a "secret" network.

There's no way CIA is going to use github private repos(1), but having a github on their various networks is possible with FI.

(1) - they might use private repos for insensitive apps, but they wouldn't be allowed to do anything with a classification on a private repo.

There are a couple of different "types" of customers. Some, like you said, are just concerned about their code. Some are interested in control (meaning they control their backup policies, uptime, redundancy, etc.). Some want better integration (we support LDAP and CAS authentication, let you plug directly into various git hooks, that sort of thing).

Hosted plans work great for a bunch of companies, and self-hosted installs work great for a bunch of companies. Might as well help out both. :)

I read a post regarding you guys following some of the tips from the book "Getting Real." How greatly did it influence you guys in running the company? What would you have done otherwise?
There is some great advice in Getting Real, but I don't remember being particularly influenced by it. I was more influenced by Ricardo Semler's book Maverick. And by wanting to build a company that I myself would want to work for, regardless of anything anyone else has to say. That has driven nearly every decision.
Any comments on how you (either personally or GitHub as a whole) manages the work/life balance issues?

Any pointers for dealing with cases when the people you work with turn out not to be "reasonable"?

(I ask because I tend to find that soft-skill management issues are where I'm lacking in expertise)

Not having a set work schedule allows us to work when we're most effective, leaving more time available for taking care of personal affairs. If you want to take Wednesday off because your Mom's in town, then that's what you do. We all work hard enough and smart enough that I don't worry at all about our people getting their work done. We love what we do, and that's what makes it all work out.

So far we haven't hired anyone that has been "unreasonable." I hope that we never do. In past jobs, I have had to deal with unreasonable people. That is one reason I was drawn to being an entrepreneur. So I wouldn't have to do that anymore.

When are new Github tshirts coming?

What are your thoughts on the BitBucket/Atlassian deal?

Are there any new features coming soon that you can give us a sneak peek at? I'd personally like to see some kind of "looking for contributors" interface (similiar to OpenHatch), maybe even with recommended projects based on my repos or the repos I have watched in the past.

The new shipment of Fork You shirts will arrive at our office today. We will get the inventory online right away!

The BitBucket/Atlassian deal is interesting. Especially the price points they think they need to establish in order to make their offering attractive. I really don't think about it too much, I'm too busy making GitHub the best place to collaborate on code!

We don't talk about planned features. We find that if you talk about what you're GOING to do, then people will just be angry that it's not finished yet. If you wait until you're done, then people will go crazy over the shiny new feature. Apple knows how this works. Judge for yourself which approach you think works better. =)

Talk about how you started getting out into the community and connecting with real users. IE - how you got Github drinkups off the ground. As a company with a small but growing number of happy developers around our platform (notifo.com), we'd love to attempt something similar.

We are thinking about doing things like API contests to help grow the community as well as occasional meetups.

unrelated- whose idea was it to give away pappy van winkel? I recall some old contest you guys ran. Did that contest fare well.. how'd you publicize it? Sorry for all the questions!

I used to go to a lot of Ruby meetups. While the talks were generally high quality, my favorite part was always going to the bar afterwards and talking with fellow coders about what got them excited. This is where new ideas really get started.

We decided that we wanted to take that part of the meetup and make it a first class citizen, so we started the GitHub Drinkups. If there's one thing that I've learned about leadership, it's that all people need in order to participate in something is an invitation.

So my advice is this: whatever you're thinking about doing, just do it. You'll find out quickly what does and does not work. If nobody comes to the meetup or nobody signs up for the contest, then shrug it off and figure out what you need to change in order to make it work.

I don't remember whose idea the Pappy was. We like to present GitHub as a fun, edgy company. This has worked out really well at getting the attention of early adopters. Giving out booze was a great way to point at the "establishment" and make fun of how stodgy and limiting they are.

Indeed. GitHub has the mindshare to get a critical mass of people to their drinkups, but a lot of startups don't. But if those startups were to combine forces they might...

Proposal: GitHub used to do their San Francisco drinkup bi-weekly, now it's monthly. How about a bunch of smaller (popularity-wise) startups (or any project with a community) in SF fill in that gap?

This would also facilitate the "cross-polination" that GitHub drinkups achieve by bringing together different groups of people.

Cappuccino already has it's weekly "CPCoder Night" on Wednesdays but that's more sitting a cafe hacking and helping each other out with technical problems. I'd be happy to help organize something like I described above if people are interested (feel free to email me at the address in my profile if you're interested)

280 North + Notifo + X + Y + Z Drinkups.. I like it. Though 280 could probably pull off their own drinkup ;)

If there is enough interest in this from other local startups, I'll setup some google group where we can discuss logistics/planning.

We need a name. "Startups" + "drinks" = DRINKUP!
you startuppers drink a lot :-P Joking, wish I was in SF ;-)
Well, there's no reason you can't have the same kind of event in other cities. In fact this model of batching a bunch of startups/projects together would be perfect for areas with a lower density of startups...
There's already a loose association of events called "Startup Drinks"... we've got a fairly popular one here in Pittsburgh.
This sounds like it would be easy to make an app for it. Just let everyone vote for their favorite bar for a drinkup in SF, and a day, and then you all show up.
If you weren't at SUS2010 and are going to only watch a few of the talks, I would highly recommend Tom's talk (as well as Brian Chesky's). He was extremely engaging, and the content (bootstrapping - "Optimizing for happiness instead of money") was great.

Tom -- Across the industry, figures such as 1% paid accounts seem to be typically mentioned. What sort of ratio do you see on Github between paid/free accounts? Do you see any difference in that ratio internationally vs. domestically?

It's higher than one percent, but we don't publicize those numbers. It's hard to compute the difference in ratio internationally vs. domestically because we only have the optional user specified location field to go off of.
Any anecdotal guesses from your drinkup experiences? Perhaps reworded, do you feel people are more or less willing to pay for SaaS domestically/internationally?
Yes, I've met all kinds of people while travelling that pay for GitHub accounts.

I'm always surprised at how many people have heard of GitHub in other countries. I think it shows how successful virality can be. We plant the seeds of GitHub usage in foreign countries through conference talks and drinkups, and the people that attend become patient zeros for the spread of Git/GitHub in those locales.

Can you share details about some critical decisions you made that led to the success of Github?
Making the user the namespace for code instead of the project.

Growing slowly and embracing the constraints of a limited budget in the early days.

Hiring only the absolute best people that we could find. Hiring people that we knew through their code. Making sure they were good cultural fits.

Not getting an office until two years after we started GitHub. Campfire was our office in the meantime and that let us put what money we did have into hiring the best people.

Always thinking for ourselves.

(comment deleted)
In what ways have you found aspiring hackers participating in open source projects use Github to become competent hackers?

Also, thanks for the very inspiring talk at Startup School.

Reading code is one of the best ways to become a better programmer. You can learn so much so quickly by trying to understand how other people you admire solve problems in code. Making it easy to find, follow, and read code is what GitHub is all about.

In the future, participating in open source will be the best way to land a great job. When employers see that you have a demonstrable ability to code and work well in a team, you have a MUCH more likely chance of getting that interview and impressing the right people at that company you'd kill to work for.

We're currently using Redmine to keep track of tickets, but it's a bit of a pain having to manage it separately from our code in GH. Are you guys planning on overhauling your issues system to be as slick as everything else you offer?
I can neither confirm nor deny that we're working on kickass improvements to GitHub Issues.
What does this look like, quora?

8=============D~~~

No, that looks like an ascii dong.
Coming from a guy with weenie in his name :)
(comment deleted)
The only question that I have is: How many GitHub engineers could pass a Google interview?
Is there any concern at all about alcoholism at Github given the success of your drinkups? For instance, does the health plan now cover rehab and alcohol induced cirrhosis?
Alcohol can either be a great social lubricator or a dangerous drug depending on how you use it. We're all friends and responsible adults at GitHub. Should there be a problem of this nature, we will address it in a private and personal fashion. Just like any self respecting group of people would.
Why did you choose git instead of hg, bzr, fossil, etc?

Also, what do you see as the future of git? Where is git going?

Git was the first distributed version control system that I spent any time with. It turned out that it was also the most elegant in construction and the most powerful in ability.

I think the future of Git is to become the technology on which really amazing, usable versioning and collaboration is built. Git the technology should be irrelevant to the end user. Git/GitHub the experience should be the best in the world. At least, that's the direction we intend to take it.

What are your thoughts on non-technical founders (or early employees) at tech start-ups (like GitHub)?

Are there any non-technical people at GH? Would you consider hiring any? Why or why not?

(Full disclosure: I'm an engineer just coming off of a bad experience with a 'business' co-founder)

I don't have any experience with non-technical cofounders, but I don't think that I'd start an internet company with one unless they were the absolutely most well connected, proven person that was going to be instrumental in getting us into a difficult to enter industry.

We only have one non-technical employee, our office manager Melissa. She's absolutely essential to the team. We have no plans to hire other non-technical people right now, but that doesn't mean that we won't in the future. Who we hire depends on what skills we need.

Do Github employees get equity?
Yes. Our equity offers are quite generous. Invested employees are motivated employees. Ownership is a huge factor in job satisfaction.
Fancy a beer next week?
Absolutely. How about Nihon?
Nihon is awesome. Please make this a drinkup! :)
I don't think we'd all fit!
I don't think Github (or anyone really) could afford a drinkup at Nihon.
Speaking of which, when's the next Boulder drinkup?
Next time I'm in town, I suppose!
One thing I love about GitHub is that you embrace NIH in a good way - lots of cool technology has come out of GitHub because you were unhappy with the current solutions out there. What else have you cooked up internally that you might release to the world one day?
We have an awesome tool we call Haystack that we use to collect, categorize, and search exceptions and other notices. It uses MongoDB capped collections to keep the number of stored entries to a manageable level. "Needles" are simple JSON hashes and the views are customizable with Mustache. Exceptions can be rolled up based on a custom value provided by the producer. For instance, we roll up exceptions by filename and line number of origin. We use the hell out of it.

There are other projects, but nothing else that I'm able to talk about at the moment.

Do you think Haystack will ever be released to the public? If not, could you guys post a blog post on the GitHub blog or one of your personal blogs with more details? It sounds very interesting.
It's hard to say. We don't have a lot of extra bandwidth to put towards properly releasing these kinds of side projects. I'd love to get it into the public's hands someday though.
GitHub does a lot of amazing work, and you guys are all fabulous coders. However, when I've spoken to colleagues in person, there's a definite feeling that GitHub have a tendency to have some Not-Invented-Here syndrome: see CI Joe when Hudson was already mature and widely used. It seems like a lot of brain-cycles could have been saved and put elsewhere.

Do you think that's a fair comment? Is it something you think is necessarily negative?

We don't put up with any bullshit. If the existing software out there displeases us, no matter how mature it is, we'll be tempted to build something better. This is how progress is made. It's possible that we're duplicating effort somewhere, but we all cherish the act of creation, and if we think we can improve upon the situation, we will. Sometimes just for the sheer joy of it.

I'd wager that pretty much everything you use today was considered an act of NIH by someone at some point in the past.

Along these lines, thanks for pushing Unicorn (I know you didn't develop it in house, but it was obscure until you used it).
I think Chris was the primary one behind that decision, but I agree. Unicorn kicks ass!
Meant GitHub in general. Can't beat simplistic zero downtime rolling deploys!
You host a lot of open-source projects and GitHub itself is even built on it.

What would you say is the best way to monetize your open-source product?

Well, what we've done seems to be working pretty well. Have an open source tool (or leverage someone else's) and then sell additional hosted or installable tools that expand the power of the underlying tool.

I know of a lot of places that do well with providing support and consulting for their open source offerings, but that doesn't scale as well as something that you can charge for on a recurring basis and that doesn't derive directly from butts in seats.

Are you guys hiring? Also, what other startups do you think are on the same level of awesome as GitHub?
We hire very slowly and very carefully. And we draw from our personal network first. The best way to get hired by GitHub is to be in San Francisco, come to the Drinkups, write awesome open source code or make insanely beautiful designs, and be a genuinely interesting and hard working person.

As for other startups, I don't really know firsthand the culture of many of them, but I do know the founders of CrowdFlower and they're amazing. And they're hiring. Go check them out.

How do you decide what features to add or not add to Github? How much thinking, discussion, planning, design, research, etc go into each feature before coding begins?
We look for features that we want to use ourselves. It's usually quite apparent what areas of the site need some love or where entire features are missing. The things that get implemented are the things that are important enough for someone on the team to actually sit down and start working on. If you want a feature badly enough, you'll go build it. It turns out that this is a great filter for what is worthwhile.

Some features (like Pull Requests 2.0) spend many months in development before they're launched. PRs took about 8 months of off and on work before they were ready. Pressure from other team members will often serve as a catalyst for the implementors to finish what they started.

More strategic decisions often bubble up to the founders and we'll make a final decision on whether we need to hire additional people to make things happen faster.