The entire process took about 6 weeks from receiving the first e-mail from the recruiter through the final rejection.
Yes, the process takes a long time, but GitHub has a lot of applicants and a lot of people to weed through. I wish it would have moved faster, but I’ve come to find that the companies with the best jobs tend to have longer processes.
I originally applied for a position from the greenhouse website.
I received an invitation to give a recruiter my availability as well as sign an NDA. The conversation with the recruiter was great. They gave me the information about the position, the team, GitHub’s priorities when bringing in a candidate. She explained the process to me and what to expect.
I was given a technical challenge with just an overarching idea to build a well-tested utility in Ruby with documentation for the app as well as my process, challenges, and future plans. It had some asks that seemed intentionally vague to see how I would approach and / or explain them. I have a full time job and was also interviewing with other companies, so I took deliberate time to work on it. I spend about 2 hours planning it out and about 12 - 15 hours building it over 6 days. I submitted.
A week later, I received an invitation to submit my availability to chat with the team about my technical challenge. It was an interview with 4 people that the position would work closely with. I went through my code and explained my process and some of the decisions I made and why. It was a pretty open conversation where they also posed questions such as, “If you had a person working with you and an extra few days, how would you use that time to enhance this application?” and “What are some of the drawbacks or downsides of certain choices you made?”
One week after that I received an invitation to fly out to GitHub HQ in San Francisco for about 5 hours of interviews with various members of peripheral teams and managers. GitHub flew me out on a Monday afternoon, sent a car for me at the airport, dropped me off at a hotel (that they also paid for) and I interviewed the next day.
The final round was intense. It was 45 minute block interviews almost back to back with various people on different teams that work with the team this position was on. Each interview had a different theme: 1 for each of GitHub’s values as well as a diversity and inclusion interview.
I was taken back to the airport after the interview, then had a wrap phone call with the recruiter. They went into detail about compensation and benefits as well as the every-other-week on-boarding on-site process. My only complaint about this process is that the recruiter tentatively attempts to schedule you for one based on how long you would need to give your current job. I tried to remain neutral about whether I got the position or not, but that one detail made it especially hard to think that since all of my other interviews went well, that I didn’t get the position.
A week after the final round, I received a phone call from the recruiter where they said they were going with another candidate. It was heartbreaking, but they offered to help with anything they could and said to e-mail them freely. I asked to be referred to another team and am starting the process over again.
The no-feedback policy is true and it makes sense. There’s not always a specific thing you did wrong, it truly could have been that another candidate was better. Would you want to receive a phone call where the recruiter said, “just have more experience” or “be less bad”? I did reach out to a few of the people I interviewed with and received advice that no being chosen shouldn’t dissuade me from interviewing for another (or the same) team sometime in the future and that this person didn’t get the job on the first try.
Overall, despite a heartbreaking loss in the final round and the length of time it took. I think it was a great process and will definitely be shooting for a job at GitHub in the future.