The best part about working at GitHub is the great colleagues! They are uniformly friendly, super talented, and have a positive, supportive attitude. All the engineers I have worked with have been really motivated and produce high-quality work.
A majority of GitHub employees work remotely; some in small satellite offices, but most at home, cafes, or shared office space, whatever. Because of this, the company goes to a lot of effort to make remote work effective. Communications are largely asynchronous (e.g., via GitHub issues and pull requests), most meetings are streamed and recorded, and there are lots of chances to meet other GitHubbers when necessary: the annual company summit, mini-summits for departments or teams kicking off a project, plus we are welcome to travel to visit HQ or other GitHubbers when we feel the urge to connect. Most "synchronous" discussion takes place in online chat, though even here transcripts are kept for anybody to read. Time zones can be a real hassle, but otherwise it all works quite well. It's so awesome being able to work for a San Francisco-based company while being able to live almost anywhere!
The company is very transparent. Many company-wide issues are discussed in the open, and anybody's input is welcome.
Until the beginning of 2014, GitHub didn't have any formal management structure to speak of. The result was predictable: people worked on what they found exciting, but it was hard to gather critical mass to implement large-scale projects. Since then, people-managers have been introduced, which has improved the company focus. So far, management has used a relatively light touch. In particular, work is still mostly organized by the engineers working on it rather than top-down by management. In my opinion, the introduction of management has improved the company, though it has definitely caused a shift in the culture.
GitHub, the company, also seems to have a good heart. As far as I can tell, everybody at the company, from top to bottom, is really trying hard to do the right thing:
Finally, it's great to build a product that millions of people use and love. It's a pleasure to run into GitHub users in real life because they are so positive about the company. We're helping to propagate the open-source ethos:
Reading back over what I've written, it sounds like I'm a marketing shill. But in fact, I'm just a very happy software engineer. After nearly two years at the company, I am still almost giddy that I get to work at GitHub.
Remote work impedes serendipitous communication. It's an effort to keep up with what is happening in the rest of the company when you don't bump into your colleagues in the kitchen or in the elevator.
As a hangover from the management-free days, it can sometimes still be hard to figure out who is in charge of what.
With employees the caliber of GitHub's, a little management goes a long way.
Be careful not to allow management to grow into a separate caste.
Especially, don't let it evolve into a dynamic where edicts flow down and no information/feedback flows up. (So far, it's not a problem, but it is a risk.)
I applied online after receiving a referral. First, there was a basic HR phone call, which explained the role and allowed me to ask any questions. The second step was a take-home test. The test wasn't exactly difficult, assuming you know the langua
I completed a technical assessment via Codility, then was invited to a series of three interviews in a single day: two technical and one behavioral. Overall, the experience was positive, although the behavioral interview felt more like an interrogat
This coding interview question was straightforward, testing basic problem-solving skills. It focused on simple programming concepts, such as reversing a string. Performance was measured based on the efficiency of the code.
I applied online after receiving a referral. First, there was a basic HR phone call, which explained the role and allowed me to ask any questions. The second step was a take-home test. The test wasn't exactly difficult, assuming you know the langua
I completed a technical assessment via Codility, then was invited to a series of three interviews in a single day: two technical and one behavioral. Overall, the experience was positive, although the behavioral interview felt more like an interrogat
This coding interview question was straightforward, testing basic problem-solving skills. It focused on simple programming concepts, such as reversing a string. Performance was measured based on the efficiency of the code.