THE github INTERVIEW
Looking to land a job at GitHub but don’t know what the process looks like?
Well, you’ve come to the right place. Detailed in this post is a look at the timeline of the interview, preparation guidelines, and what’s different or unique about GitHub's process as opposed to other tech companies.
THE github INTERVIEW explained
GitHub is the largest developer community in the world with millions of developers sharing code, working together, and building amazing software.
Based out of San Francisco, California, roughly 75% of their employees work remotely and rely heavily on communication, inclusion, and diversity to power their company, and their interview process reflects that.
How Hubbers work: Borrow principles from agile, async (remote first), ship daily, code reviews, strong containership mentality, responsible for the code you write, teams responsible for the code they ship, strong working relationships with PM & Designers.
Let’s dive in and explore the GitHub interview process, and how it differs from other notable tech companies.
BEFORE THE INTERVIEW
updating your resume
Make sure you’ve updated your resume; use deliverables and metrics when you can as they are concrete examples of what you’ve accomplished. Don’t forget to mention any languages you’ve worked with and if your work has been in production. Once you have your resume updated, you can head on over to their career page or you can check out their job board.
Here is our guide on how to prepare for the coding interview with a 12-week plan. Another preparation tip you should know is that your interviews will be conducted via Zoom, so make sure you have that downloaded and ready to go.
CHOOSING YOUR LANGUAGE
While many companies don’t require you to know one specific language, GitHub may require that you know the language for the position you’re applying for. For example, if the position you’re applying for mentions a language like Ruby, then you must be prepared to interview in that language. On that note, you should always double check and clarify with the recruiter to see if the position requires a specific language or not.
talent partner screen
After you’ve submitted your resume, it will be reviewed by the Talent Partner and the Hiring Manager. If they take a liking to your resume, then you’ll be scheduled for a Talent Partner screen. This partner screen will be a 45-minute chat, so be sure to come prepared to talk about relevant work experience, past projects, etc.
Your goal for this interview is to:
Give an overview of your current role, and relevant job history
Ask specific questions related to job
The goal of the Talent Partner is to:
Understand what the candidate is looking for in their next role/company
Remote work experience (not required, however be prepared to talk through the challenges you might face)
Get a feel for your current job status, compensation overview, work authorization
And finally set the expectations of the interview process
As briefly mentioned above, here are some topics you can expect to run through: Review interview process, what to expect, current status, comp overview, best way to communicate, work authorization.
Here are some relevant questions you can expect in this section of the interview:
Walk through experience and dive into most current or relevant work experience. Company size, team size, expectations, which languages, new or legacy code, software methodology used, cross functional teams, qa...etc.
What would the ideal opportunity look like for you?
Have you ever worked remotely? What did you like about it, what were the challenges? (if not ask what would be some of the challenges)
How do you best like to work with your Manager?
first round - gitgrub
If all goes well in the Talent Partner screen, you’ll then be issued a technical take home exercise which should take about 3-5 hours. This is a 2-part exercise; the first section will be coding, and the second section will be a code review (reviewing a pull request). Be prepared to provide your GitHub handle which will be used to kick off the exercise.
If you get in to the exercise and think “this is hard” - you are in the right exercise.
Notes on the technical take home test:
Follow the instructions in the README to set up your environment and begin the exercise.
It's entirely OK to use Google, or any source of information online, that you would normally use at work.
Tests are included, but you are free to supplement those tests with additional coverage for edge cases, etc. Do not remove any of the provided tests.
Please keep in mind that access to your exercise repository will be removed 300 minutes after it is granted.
When you're finished, push up your code and open a pull request. Please write the pull request as you would in your normal course of work on a team. Give a simple explanation of what the code is meant to do, discussing any potentially confusing bits or interesting decisions.
Each submission is evaluated by 2 engineers for correctness and quality. Once the engineer review is complete, we'll share results and next steps with you via email. We should be able to expect an update within 5 business days.
What Hubbers are looking for in this interview:
Understand candidates standard computer science knowledge, code fluency, shipping and autonomy
If you pass the take home exercise, the next steps would be a pairing exercise with two Engineers working within the same codebase.
second round - pairing exercise + Hiring manager
Once you’ve made it through the take home exercise, you’ll receive an email that looks like this:
The first interview will be a pairing exercise with two Engineers from the Experience Engineer Team. This interview will be 50% coding, and 50% code review, working in the same codebase from the exercise you completed. To prep, you will want to be in a comfortable development environment, set to share your screen (via zoom), and have an editor of your choice ready to use. This interview will be approx. 60 minutes.
The second interview will be with the hiring manager, and will provide you both an opportunity to learn more. I would plan 30 minutes for this interview, however we do like to block out 60 minutes to allow time, should the interview go longer.
Prep for Pairing Exercise / Technical Interview
Communication - candidates must demonstrate clear communication. Candidates should talk aloud and explain their thinking and approach effectively enough that the interviewers are able to understand and follow the candidate's solution as well as the steps taken to reach a solution.
All candidates should demonstrate familiarity with the take home portion of their solution. They should be able to explain key decisions and tradeoffs when prompted.
TL;DR: They know you can code, so they’re looking for candidates to show off other engineering strengths — Technical communication, problem solving, understanding consequences with changes shipped to a production application.
Hiring Manager Interview
Opportunity to learn more about one another, the team, roadmap and long-term vision.
The final round will be split into two sections: The first on Leadership Principles, the second on Diversity & Inclusion & Belonging. At the end there may be an optional Hiring Manager round and there will be a Talent Partner Wrap-up to conclude the interviews.
The Leadership Principles interview will be around 60 minutes where you’ll meet with two Hubbers. Here are there principles:
Trust by Default
Ship to Learn
Own the Outcome
Global Product, Global Team
Anything is Possible
It’s a good idea to come up with a few anecdotes for each of these principles. You should touch on the work you’ve done (i.e. Own the Outcome, Anything is Possible) but also how you build and maintain relationships (Practice Kindness).
Diversity & Inclusion & Belonging
This will be a 30 minute interview with highly qualified interviewers. It should be noted that this is not a common interview and may be the first one you have had like this. GitHub believes strongly in an inclusive culture. While there is no right answer, you should be prepared to talk about what Diversity, Inclusion, and Belonging mean to you.
Hiring Manager Q&A (optional)
You may not have this interview, but if the Hiring Manager feels as though there’s still more to discuss they may request another interview. You can expect this to be around 30-45 minute chat.
Talent Partner Wrap-up
This interview will be approximately 30 minutes. The goals of this interview are to:
Gain candidates interview feedback, with an overview of each interview
Set expectations on what to expect following final interviews
THE OFFER / NO offer
You should hear back from the Talent Partner within 48 hours of the final interview. If you didn’t pass, they will kindly let you know, but don’t expect any feedback. However if all goes well, they will extend an offer, perform a background check, and decide on a start date.
Note that while the majority of the GitHub workforce is remote, all new hires start on a Tuesday in the SF office for their first week.
In the event that you don’t receive an offer, you’ll most likely have to wait six months to a year to re-apply. To avoid waiting another 6-12 months, you can check out our 12-week preparation guide to answer any coding interview question.
You can expect most, if not all, of your interviews to be conducted over Zoom. This is a great chance for you to experience what it’s like to work remotely, considering 75% of their workforce is. So make sure you’ve downloaded Zoom and have everything setup before the interview starts.
Diversity, Inclusion, and Belonging
Most of you have probably not had this interview, but GitHub strongly believes in diversity, inclusion, and belonging. Many of you already know how to code and you’re good at it, so there has to be something that sets you apart and this interview will give them good insights into how you support these values, and where you fit in culturally.
GitHub makes strong use of paired programming in their everyday work, so this is a chance for them to get to see how you think, how you work, and how you are as a person. The idea here is: Can you communicate your thought process in the exercise clearly and professionally.
HOW TO BEST PREPARE FOR YOUR INTERVIEW
In our experience, it’s best not to try to memorize specific questions. There are no silver bullets.
The questions that companies ask are always changing, because companies of this size are always trying to stay ahead of the curve and try new things. The questions you face will also depend on the team and the hiring manager.
Instead, it’s best to work your way through the fundamentals so you understand the underlying concepts and can answer even new types of interview questions with confidence.
Need help preparing for the interview?
Check out the Definitive Interview Prep Roadmap,
written and reviewed by real hiring managers.