7 ms·
Scaling GitHub
- neduma 15y agoLiked it and compare with 'Netflix Culture' too.
- victork2 15y agoPretty nice, but the slides are only interesting from page 45 to 74 the rest is totally useless. I must be allergic to PR aimed at hipsgrammer (hipster programmer)...
- prsimp 15y agoSnide comments aside, I think you're missing a lot of value in slides 26 through 34, the section on communication. Reducing the 'spin-up' time for new employees and documenting even the one-off conversations seems like a great way to increase productivity.
- nodesocket 15y agoWhat graphing utility/service do you guys use at GitHub?
- technoweenie 15y agohttp://graphite.wikidot.com/ http://graphite.wikidot.com/
- redidas 15y agoWhat about for the dashboards, like on slide 63? Is that generated by Graphite as well?
- technoweenie 15y agoJust basic HTML/CSS/Javascript built around the Graphite JSON APIs. We have Hubot integration to build graphs on demand through commands in Campfire, a Graph Store to save graph configurations, and static HTML pages that arrange these graphs nicely.
- joeshaw 15y agoThey are beautiful, especially compared to the built-in dashboard UIs. If you're looking for yet another piece of infrastructure code to give away for free, I'd love to see it open-sourced.
- wfarr 15y agoYou might be interested in https://github.com/paperlesspost/graphiti https://github.com/paperlesspost/graphiti It's somewhat based on some of the stuff Github uses internall for graph generation (so the README says).
- deleted 15y ago[deleted]
- aiurtourist 15y agoI'm usually wary of Holman's presentations and writing. GitHub is such a unique, special place — an engineering company with a product engineers use and are devoted to. This presentation is pretty good and has some good tenets. However, I have trouble believing that all of these ideals will work when you have a PM screaming at your engineers to finish the internal CRM system, or something else that engineers must work on but don't necessarily care about.
- ctide 15y agoYou're right, they wouldn't. GitHub would never hire the PM you're referring to, because that's the type of PM that makes engineers hate their jobs and become demotivated.
- spitfire 15y agoNever say never.
- phillmv 15y agoGH is a special case. They're darlings of the tech community, and they throw a ton of events. Even if they were crappy to work for they would probably have an easy time hiring. THAT SAID, "finishing the internal CRM system" is a problem that happens in organizations an order of magnitude larger, methinks. My finishing platitude is, how did you hire - and why do you retain - engineers that don't give a shit about the project they're working on? Also, why is your PM screaming? A project meeting deadlines is his or her responsibility. Sounds like you have a crap PM to boot.
- shadowfiend 15y agoCause and effect? I mean, yes, they're darlings of the tech community and throw a ton of events, but that is explicitly mentioned as part of their strategy for keeping their employees happy, which is the underlying principle for their “scaling”. So perhaps it's a self-reinforcing cycle: they were originally darlings because of their service, and as they've grown, their attempts to keep their employees happy result in more goodwill, which further makes them darlings. In essence, I think if they were crappy to work for, they wouldn't have an easy time hiring, because a lot of the cool stuff they do just wouldn't happen.
- msumpter 15y agoI'd be interested to hear more about the Kinect/Arduino video recording platform. We are always looking at better ways of capturing and storing video archives for later use internally.
- epenn 15y agoOne thing the slides mention in passing that I cannot stress the usefulness of enough is an internal wiki. There are so many common tips, issues, ideas, etc. that can be more effectively communicated and expanded upon when they're in a centralized location for all to see. So many conversations of the form "I've never dealt with that, but I know $coworker ran into that once. Go ask him." can be reduced or eliminated if the ideas are already visibly detailed. In short, setting up an internal wiki helps improve/scale your team's productivity.
- gavingmiller 15y ago+1 But the issue I always face is that many coworkers aren't diligent enough to document in the wiki. How would you address that?
- xbryanx 15y agoBuild that time into project budgets.
- generalk 15y agoIt's gotta come from the top. You can't dictate awesome culture like this. If the highest folks in the company update the wiki with useful information and point to it constantly, the newer hires will do the same. If someone dictates that the wiki should be the source of information and then never puts anything in it it won't go anywhere.
- brown9-2 15y agoFigure out what kind of traits the workers you want (diligent, documenting) exhibit in a job interview and hire that type of people.
- gwern 15y agoTwo of the replies to you illustrate the classic joke about the traveler who gets lost and asks the village peasant for directions to his destinations - 'Well, if I wanted to get there, I shouldn't start from here.' (And are as useful.)
- 15y ago
- ans 15y agoTotally devoid of information. I would be more interested in reading actual technical reports of higly scaled infrastructures. These flimsy half-truths gleaned from such scaling, I can do without.
- victork2 15y agoAgreed, but sadly this is the state of passing information now in "new age" startup/ companies. It's like Twitter: some nice pastel colors, very little text, no information but it's easy access and people can say "Oh yeah, I know about scaling I have read this on a blog post". Sorry to break it everyone but scaling is hard, totally unfunny or uncool, with tons of problems and stressful. But to answer your question ans scaling is for most companies kept secret because it is such a key process that they don't really want to share it with their competition. If you find some I would be interested too, I am currently in the process of doing so in my company and it's a pain. Anyway that put me in a bad mood :). edit: you really shouldn't be downvoted for stating a cold truth
- pjhyett 15y agoWe've gone into excruciating detail about how GitHub's architected: https://github.com/blog/530-how-we-made-github-fast https://github.com/blog/530-how-we-made-github-fast
- phillmv 15y ago1) It's a slide deck for a talk. What were you expecting, a detailed tutorial? I also don't think you got the most important bit: focus on employees. 2) Scaling is also… really custom. I'm extremely unlikely to have to find a way to shard git repositories across a network of users. And they do cover their architecture and release back a fair number of their tools.
- ans 15y agoRe.: 1) OK-why post it then? Post the talk. Re.: 2) Doesn't matter if it might not be useful, it sure would be interesting. :)
- akg 15y agoI once worked at a "startup" that was the anti-culture. It hired a programmer after the current team had turned them down. That person was hired b/c she was a recommendation from of the VPs friends. At one point, we had more "Managers" in the company than people to manage...needless to say, no one got anything done. I think most companies don't realize that businesses are always about people; they are composed of people, run by people, and sell their products/services to people. When it comes to the composition of a company, having camaraderie and talent goes hand in hand. The moment you hire someone who is average or doesn't fit, the entire work force degrades gradually. Thomas C. Shelling developed a statistical model that actually describes this behavior and shows how a class of people clump together (http://www2.econ.iastate.edu/tesfatsi/demos/schelling/schellhp.htm http://www2.econ.iastate.edu/tesfatsi/demos/schelling/schell...). This is why talent attracts talent and mediocrity attracts mediocrity.
- rhizome 15y agoThe moment you hire someone who is average or doesn't fit, the entire work force degrades gradually. I agree, as long as you're talking about a socially conservative work force. There are plenty of companies comprised and tolerant of unique people. This doesn't make anybody "average," either, and I'd venture that the less tolerant of outsiders a workgroup is, the more average they are. They're certainly insulating themselves, regardless, which can't be good in the long run.
- krobertson 15y agoI think he was talking about average in terms of talent while you seem to be thinking in terms of social norms. The way I've seen is put is: A's hire A's and B's hire C's (couldn't find the original source of that) Highly talented people like to hire other highly talented people. They recognize that they will learn from them and the team will be better. Average people (the B's) will often hire other average people or less talented people. Have heard it explained as they're less secure and more protective, or that their criteria is more generalized and less stringent.
- 15y ago
- GMali 15y agoCan someone explain what exactly he meant by "throttling the google bot"?
- newman314 15y agoIt's telling googlebot to slow down and not be so aggressive. You can use google webmaster tools to dial down the crawl rate. Some think you can use Crawl-delay: in robots.txt but I have not tested this (and it may very well not work).
- antirez 15y agoGithub is a bit special but I guess this can work every time you have a few basic ingredients: a product that has final customers (no busines-to-business), and a company that is completely focused in developing this single product. It is not very common but also not rare either for web startups to have this kind of setup, so I think this may work for many... of course a fundamental thing here is that they hire smart guys, you can do something like that only if every piece of the company is skilled and independently able to handle his own work.
- RandallBrown 15y agoI think saying that GitHub is a special case is a copout. The real meaning of this presentation is that if you treat your employees well and let them do their job, they'll build great stuff. Yes, not all companies will have the same success as GitHub with this approach, but I bet for most it would be a huge improvement over what they have now.
- nosequel 15y agoI don't necessarily think it is a copout. They are bootstrapped, are making a ton of money, and hit the market with a good product right off the bat. Not many companies can afford to do the things they do and still pull a profit. How many startups can afford and justify having an artist (not graphic artist mind you) permanently on staff? Don't get me wrong, I love github and they have a great team, but not every company can do the things they do and still be in business.
- DanielRibeiro 15y agoRelated presentation: Hacking Your Organization[1] [1] http://www.infoq.com/presentations/Hacking-Your-Organization http://www.infoq.com/presentations/Hacking-Your-Organization
- bengl3rt 15y agoThis is of particular interest to me because I'll be starting my full-time job hunt early next year (or even earlier because I get neurotic about these things), and I really only want to work somewhere that understands the appeal/necessity of "work where you want/when you want/on what you want". How do I filter potential job opportunities on that criteria without being rude to anyone? I don't want anyone to think I turned them down because I thought I was too good for them or something, but the reality is that in a world where workplaces like GH exist, there's no reason to work somewhere that doesn't "get it" yet (and maybe never will).
- heimidal 15y agoGithub is a very, very special company, and there aren't many companies out there that operate this way. Unless the organization as a whole adopts the philosophy you're looking for from the top down, this kind of freedom usually doesn't exist. I think a good start is to begin early and search for companies that fit your criteria, then find ways to demonstrate why you would be a good employee to those companies directly. Don't go through the normal channels; find a way to stick out and be seen before you even apply. Best bet: contribute a ton to a high-profile, well-known open source project that will stick out like a bright, shining beacon of light to your potential employers.
- JonWood 15y agoI'm in a similar company at the moment - it's not quite GitHub, but the atmosphere of smart people working on things they love is there. Since I started they've also started adapting to the "Work when you want, where you want" approach as well ;) When looking for work a big requirement was that I could work from home, and have Wednesdays off - filtering down the opportunities was just a case of mentioning that in the initial contact with a company I was interested in. No one you want to work for is going to be offended at you pointing out something that could be a problem early on in the process so long as you go about it politely.
- bradfa 15y agoFilter based on if they're touting the work ethics you want. If they're not touting it from the tops of the hills, they probably don't do it. Places like GitHub and 37signals yell about how awesome their work environment is, if you want the places you're considering working at to be like GitHub or 37signals and these places aren't doing the same, I'd be wary. If you're looking at bigger companies, find a list like Fortune's 100 best employers (for the US, sorry don't know other regions) and read it. There's a good chance what's written about the best employers is mostly true (not completely true, but it's a good guide). Also, ask other people who work for a place you're interviewing if you can buy them a beer / coffee the day after your interview. Pick their brain about the culture. If you're paying for the drinks and considering joining them, many people will be honest (I would be). Don't feel you're being rude. I'd recommend telling the places that don't fit your desired culture exactly why you're not going to work for them. Worst it can do is nothing, at best, maybe the people who do work there see some tiny improvement.
- aiurtourist 15y agoPromoting these practices does little good for companies that aren't GitHub, and believing in them might be woefully idealistic. Let's look at GitHub: * Most of GitHub's 50 or so employees are engineers[1], not sales or marketing or product management or art directors or logistics or accounting. * GitHub's primary product is github.com[2], a product which is primarily used by engineers. * The company hasn't taken funding outside of friends & family[3]. * They claim to be "very profitable"[4]. * Their team is distributed[1], which can work well for engineers who enjoy time alone. Compare this to my startup: Engineers are < 33% of the company, we're all in one location, we have a range of web and mobile products, and we've taken funding from VCs. Our customers are normal humans, not engineers (no offense, I'm one too), and our products need to be sold and marketed so that people understand why they're good. We don't have the benefit of a customer base who intrinsically know why the product is great once they use it like engineers do. Our products want to make our customers come work for us. We're all in one place because we need to collaborate with non-engineers to build our product. Good in-person relationships with the sales and marketing people lets us work together very well and is important for non-engineers, who especially can't use a DVCS to collaborate. We iterate quickly, so systems like Campfire or wikis are useless. There's no point in writing documentation and employee on-boarding instructions if they're going to be out of date in two weeks or if it's easier to walk over to The Guy Who Knows That Stuff and ask. Yes, our bus factor is horribly low, but it's not worth documenting a system that will change wildly in two months. We also have a board of directors who are demanding. We have monthly and quarterly goals we need to meet. We don't have time to work on cool things like bots and music players because we're busy experimenting and building products which we're still defining. Sure, we add a few easter eggs here and there, but I need to finish the damn CRM improvements, otherwise the sales team can't handle our customers in the way we want, the customers won't have the best experience, we won't hit our January numbers, and the board will be angry. I love GitHub. It's one of the greatest things to happen to open source and software project collaboration. But whenever Zach Holman shows off a well-manicured presentation or blog post about how awesome GitHub's ideals and work environment are, I have to roll my eyes a little. His intentions are good and he's a swell writer and presenter, but I can't help but wonder what kind of magical, mystical fairyland he think's he in. (No offense, Zach. I think you're great. Let's get a beer.) [1] https://github.com/humans.txt [2] Probably. What else do they do? [3] http://news.ycombinator.com/item?id=1454597 [4] http://techcrunch.com/2010/07/24/github-one-million/
- SkyMarshal 15y ago>Every internal GitHub talk is automatically recorded, uploaded, and viewable to every future employee. ... on a Kinect-powered Arduino-based motion-detecting portable video recording platform. Um, more please! Wtb a video of that in action or meetup presentation or something.