Communication was excellent throughout the entire process. I was never left hanging, or guessing what was next. Every appointment was met on time, and each step was clear and concise.
The actual process played out like this:
• After applying online I quickly received an automated reply from Talent Acquisition letting me know that my resume was received and they would be in touch in the coming weeks.
• A couple days later I received an email with a series of technical questions, as well as various other non-technical questions (mostly designed to assess my motivations, background and experience). For the technical questions I was asked to respond to each question just as I would to a customer. The technical questions were not terribly difficult, and took a little over an hour to answer.
• After submitting my questionnaire I was informed that there were an overwhelming number of applications for the position, and that a response would likely be delayed.
• Six days later I received an invitation for a 45-minute Zoom video chat with a hiring manager. I set the date, and was also was asked to sign an NDA. The chat went very well. The hiring manager was pleasant, friendly, easy to talk with and very approachable. I really enjoyed this interview.
• The day after my first round video interview, I was invited to move forward. The next step was a paired Linux troubleshooting session with a member of the GitHub Enterprise Support team. The session was a simultaneous Zoom video call and shared Linux session. When I joined the video chat I was surprised to find that two people from GitHub were involved, but one of them was merely an observer (training, I suspect), and not "judging" my performance.
As you might expect, I was a little nervous. I made a few silly logic errors along the way that had me shaking my head once the interview was completed. It's a little unnerving to be observed via video and screencast by two people you've never met, fully aware that they see every keystroke (including, of course, typos). All of this was made much easier, though, because my interviewer was exceptionally helpful, cool and friendly. He provided occasional hints when he saw that I needed them, and was super encouraging the whole way. I managed to solve all the technical problems, but by the end of the session I felt like I was doomed. It was not my best performance.
The problems I was asked to solve were somewhat atypical, but I think that was by design. They really do seem to be primarily interested in how candidates approach and solve problems, and not absolute perfection. That said, if you're not extremely comfortable zipping around a Linux system, forget it.
• Four days later I was stoked to receive an invitation to move forward to the final round of video interviews. This was the infamous GitHub "all-day" interview. The series of interviews took place over about six hours, most of which were on one day (around five hours and five interviewers on one day, and another hour a couple days later).
The final interview on the longer day was a two-hour paired troubleshooting session, this time a series of customer emails.
The interviews were challenging, but every single person I spoke with was awesome. Each interview was more of a friendly conversation than anything even remotely resembling a grilling. Despite being mentally exhausted at the end of the series, I truly enjoyed the day.
• A few days later I had my final two interviews: a Zoom video session with the Director of Enterprise Support, followed by a short wrap-up with a member of the Talent Acquisition team. These interviews were conversational, but some tough and thought-provoking questions were asked. Once again, I was impressed with the flow and feel of the interviews.
All the people I interacted with are true professionals, and clearly passionate about their jobs and GitHub. During each interview I was given ample time to ask all the questions I wanted, and the answers to my questions were detailed and clear.
Three days after my final interview I received an offer via a telephone call, which I accepted. Start to finish, about six weeks.
GitHub is very selective, and the interview process is challenging, but they definitely make things as pleasant and laid back for the candidates as possible. As you might suspect, there is massive interest when new positions at GitHub become available, so you're going to need to shine brightly if you want to be noticed.