Skip to content

Instantly share code, notes, and snippets.

@michaeldejong
Created June 14, 2013 21:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michaeldejong/5785597 to your computer and use it in GitHub Desktop.
Save michaeldejong/5785597 to your computer and use it in GitHub Desktop.
Interview questions for GitHub employees.

Questions for GitHub

Hi, thanks for helping me out! For one of my last courses at the Technical University in Delft (Netherlands), I'm investigating 'new' ways of software engineering for distributed teams. By distributed I mean, that participants in the development of a product are no longer all located in the same building as they are in most companies.

Software engineers are hard to come by, so companies have been looking for them in foreign countries (off-shoring) in the past few decades. I think the main problem here is that this doesn't scale well and makes communication quite difficult between team members.

My initial focus for my assignment is on open-source software projects. In open-source projects, contributers are rarely colocated in the same building, but are able to produce very high-quality products. Also, I believe this 'model' scales a lot better. During this assignment I'm hoping to find workflows, mechanisms or practices which are used in open-source software development (like on github) and see how we could apply these to actual companies (small and large).

To make this a bit more tangible, I also want to look into at least one company which has organized itself like open-source projects. Looking at some of Zach Holmans talks (@holman), I get a feeling that GitHub is such a company. Although these talks give quite a good impression of how GitHub operates internally, some issues are still unclear. So I've prepared a few questions which I hope you're willing to answer for me.

With these questions I'm hoping to get a better picture of how GitHub operates and communicates between githubbers. Feel free to ignore questions if you can't or are not allowed to answer them.

Organizational

As I stated before, Zach's talks explain quite a bit in how githubbers work, but with the following questions I'd like to get a sense of how GitHub is organized.

  • How are GitHub employees organized?
    • Are they organized into cross-functional teams, or in some other fashion?
  • How are these groups organized?
    • Are they self-organizing or is there a leader?
    • And if so is that person elected or appointed?
  • How and who decides what the team will work on?
  • Are people recruited into these groups or are they hired specifically for a certain group?
  • How do the founders fit into the organization? What role(s) do they play?

Working remotely

From what I understand from Zach's talks is that working from the office is optional. On the website it is even stated that around 2/3 of githubbers works remotely. I'm assuming that most githubbers are from the San Fransisco area.

  • Does GitHub have any foreign employees and if so could you give an indication of how many (perhaps even which continents they are located at)?
  • With off-shoring, employees usually experience that there's a difference in culture between those located locally and those located in the foreign country. Have you ever experienced differences in culture between GitHub employees?
  • How do you prevent the loss of team feeling/spirit if some of your team members are located remotely?
  • Sharing knowledge about the product(s) might become very hard if most people work remotely. How do you share knowledge? Is this solely through the use of wikis, issues and pull requests?
  • Are there any other kinds of communication channels you use besides wikis, issues, pull requests and Campfire?
  • Are the teams distributed across multiple locations?
    • Assuming that they are, is this something that's encouraged or avoided within GitHub?
  • How do you handle the time difference between some team members?
    • Is this a problem for GitHub given that communication is done asynchronously?
  • When communication is asynchronous (ie. no immediate response), do you feel that making decisions takes longer?

Workflow

  • How do non-coding tasks (like UI design) fit into this process?
  • Is there a testing process before something gets deployed to production?
  • Who decides what's deployed and when? Is this a democratic or individual decision?

Hiring

  • Assuming that GitHub (a US based company) has non-US employees. Is hiring in a foreign country not extremely difficult? How do you (for instance) handle legal issues and interviewing potential candidates?
  • Are the efforts of hiring in a foreign country worth it in your opinion?

Thank you for answering my questions!

I'd like to thank you for taking the time to answer my questions. I hope I'll be able to distill some nice insights from them, and incorporation those insights into my research assignment. Although my assignment is not meant for publication, do you have any objections to this becoming public?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment