This blog post is a timeline of my journey from submitting my application to receiving and accepting an offer at GitHub.
If you’re interested in working at Github, feel free to email me at Phanatic At GitHub Dot Com
March 15th - I apply for the job.
Apply for a job that looks very enticing on the GitHub Jobs Board.
March 15th - Initial contact with the recruiter.
Shannon, the world’s best recruiter gets in touch with me to ask when I can block off time to do a programming project that should take about 2 hours or so. I figure I can do this early in the morning and ask for March 17th.
March 17th, 8 AM EST - Initial technical screen starts.
I get invited to contribute to the interview repository by GitHub’s interview bot.
March 17th 9:40 AM EST - Initial technical screen ends.
I submit the solution with working tests and documentation as a Pull Request to the repository.
March 22nd - Initial technical screen result is positive.
Shannon reaches out to me and gives me the good news that my solution passed muster and that they’d like to schedule me for a Video chat with two Hubbers. We schedule the interview for March 28th.
March 28th - Video conferenced interview with two Hubbers, Mike & Arthur.
I chat with the amazing Mike Skalnik and the awesome Arthur Schreiber and they ask me detailed questions about my work experience and the way I approach interpersonal relationships and conflicts at work. Overall, it was a really fun and engaging discussion for 40 minutes about my past experiences and their impact on my approach to work. We end the interview with a few questions I had prepared for them that were specific to their experiences at GitHub.
Here’s some of the questions I asked:
- Mike: Can you tell me about the chatbot connected to the 3D printer?
- Arthur: How did the re-architecture of the diff pages come about? Was it customer driven or just in the backlog from the first time it was created?
- Is the Engineering culture to have a lot of design meetings and then proceed or tackle issues as they come down?
- What does a successful engineer on your team look like?
March 30th - Results of previous interview and invitation for a full day of interviews.
After visiting the Bay Area to find a place for Corinne and I to move, and failing, I fly back from SFO to beautiful Portland Maine. As soon as the plane touches down at Detroit, I turn my phone on and frantically start refreshing email, to see this heartwarming message from Shannon
“We’d like to invite you for final interviews, via zoom, you will have a chance to meet more Hubbers.”
I was invited to do a day full of interview rounds, over video conferencing with a bunch of Hubbers!
I give a cheer and high five the confused passenger next to me. I reply with dates for the immediate next week and hope that we can get something figured out soon. We set the final interview dates for April 5th.
April 5th - Full day of interviews.
Interview 1 - Team fit.
My first interview of the day was with Jamie and David. We chatted a little more about my professional experience in working with a distributed team and how that would be helpful at a team as distributed as GitHub. We also dove in and discussed in detail my style of working with people and my awareness of the kinds of diverse communication styles on a team. It was a really fun discussion where I was asked questions such as :
- Describe a time when you failed and what you learnt from it.
- Describe a successful team you worked on and why it was successful.
Again, I had a bunch of specific questions I had for my interviewers, based on their experience and roles at GitHub.
- Jamie: How do you manage technical debt? Do you work off of a backlog?
- David : Has your experience at GitHub changed since you worked on image attachments at GitHub?
Interview 2 - Technical pair programming round
The second interview was to be a technical pair programming interview where we made modifications to the program I submitted in the first step of the process. The minute the conference call starts, I hear from the engineer that I was paired with a set of ruby engineers, while my solution was in nodeJS. The engineer apologizes and tells me he’s talking to the recruiter to get me rescheduled. A bit dismayed, but immensely impressed that the engineer made a call to cancel the interview so I’d have the best chance of success. This place sounds better every passing minute! I immediately email Shannon, and within 10 minutes, we reschedule for the next day with a new set of interviewers.
Interview 3 - Diversity and its role in the workplace.
This was an interview that I’ve never had with any company in all of my years as a software engineer. I had a great conversation with Dustin about our views on diversity and how I felt a workplace was enhanced by having many disparate viewpoints & experiences working towards a common goal. I left this meeting feeling reaffirmed that GitHub was the right place for me.
My questions for Dustin:
- Can you describe your employee performance review process? How often do you do them?
- What are some lesser known awesome things about working at GitHub?
Interview 4 - Interview with the hiring manager.
Scott, the Director of Engineering for the application team and I had a really fun, free-form discussion about what kind of products the team was working on and what role I could play on the team. He was very easy to talk to and I had a great time coming up with a very basic design for a feature that Scott was thinking of adding to GitHub. Overall, I left the meeting feeling relieved & happy that management at GitHub gets it.
My questions for Scott:
- What are the biggest challenges facing your org right now?
- Where & How often do teams meet F2F at the org level or team level?
Interview 1 : Technical pair programming interview : Redux
After the false start the day before and the prompt rescheduling, Ash, Katrina and I join a video conference via zoom and start pair programming. The interview started off with introductions and Ash & Katrina describing a feature I could add to the solution I submitted for my Initial technical screen. I shared my desktop and bumped up the font size in Atom & the terminal so that they could see my screen and follow along as I coded up the solution. We had a fun 80 minutes going through the problem, proposing the changes required to make the new feature work with the existing code base, and the usual trial & error of actually getting a program running. They were really fun to talk to, and mercifully laughed at a few of my jokes. I was able to get the solution to the problem early on and we spent a few extra minutes modifying the existing tests and adding new ones so that the new feature could be tested and no older features were broken. After a wrap-up, I had a chance to ask a few questions off of my interviewers.
- Ash Wilson: Who do you admire most on the team/at the company and why?
- Katrina UyChaco: What would you change about software engineering at GitHub?
Interview X : Wrap up with Shannon
After a whirlwind few days of interviews, we’re finally done! Shannon takes me through the next steps and thanks me for taking the time to meet with the team. She tells me that I’ll know very soon about the results, within the next 48 hours.
Within 24 hours of our last phone call, I get an email from Shannon with the title :
“Can we chat? - Good news!”
With my heart beating out of my chest, I reply immediately with a “YES! Please call my cell.” As the phone starts ringing, I quiet down Nina Simone belting out I put a spell on you and start the call with “Hi Shannon” . Over the next few minutes, I get the amazing news that everyone I talked to at GitHub was impressed and that they want to offer me a position on the team! I ask for a week to make up my mind as I had interviews going on at other places and go out to celebrate with my friends in Portland, Maine.
April 11th - I Accept!
I send an email I’ve been drafting for a while, even before I started interviewing at GitHub, notifying the team that I’m honoured to be offered a position on the team and that I gladly accept!