├── CITATION.cff ├── interviewing-example-email.txt ├── CODE_OF_CONDUCT.md └── README.md /CITATION.cff: -------------------------------------------------------------------------------- 1 | cff-version: 1.2.0 2 | title: Interviewing 3 | message: >- 4 | If you use this work and you want to cite it, 5 | then you can use the metadata from this file. 6 | type: software 7 | authors: 8 | - given-names: Joel Parker 9 | family-names: Henderson 10 | email: joel@joelparkerhenderson.com 11 | affiliation: joelparkerhenderson.com 12 | orcid: 'https://orcid.org/0009-0000-4681-282X' 13 | identifiers: 14 | - type: url 15 | value: 'https://github.com/joelparkerhenderson/interviewing/' 16 | description: Interviewing 17 | repository-code: 'https://github.com/joelparkerhenderson/interviewing/' 18 | abstract: >- 19 | Interviewing 20 | license: See license file 21 | -------------------------------------------------------------------------------- /interviewing-example-email.txt: -------------------------------------------------------------------------------- 1 | From: Alice Anderson 2 | To: Your Name 3 | 4 | Welcome to Acme Inc., and thank you for interviewing with us. 5 | 6 | This email has information about the interview and what to expect. 7 | 8 | My contact information: 9 | Alice Anderson 10 | alice@example.com 11 | +1-415-555-0000 12 | 13 | Company contact information: 14 | Acme Inc. 15 | 100 Main Street, Suite #100 16 | San Francisco, CA, 94101, US 17 | +1-800-000-0000 18 | https://example.com 19 | 20 | The interview time is 11 a.m. to 12 noon, Pacific Time. 21 | 22 | There will be two half-hour interviews, with two interviewers each. 23 | 24 | The interview focuses on real-world work, including reading/writing code, 25 | technical communication, and how to build substantial applications. 26 | 27 | Please come prepared to show some of your existing code, 28 | discuss one or more of your recent relevant projects, 29 | and write new code together with our teammates. 30 | 31 | If you have a laptop and want to bring it, that's good. 32 | Set it up to show your work in the way you want. 33 | 34 | Thank you for coming in, and we look forward to meeting you. 35 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | 2 | # Contributor Covenant Code of Conduct 3 | 4 | ## Our Pledge 5 | 6 | We as members, contributors, and leaders pledge to make participation in our 7 | community a harassment-free experience for everyone, regardless of age, body 8 | size, visible or invisible disability, ethnicity, sex characteristics, gender 9 | identity and expression, level of experience, education, socio-economic status, 10 | nationality, personal appearance, race, caste, color, religion, or sexual 11 | identity and orientation. 12 | 13 | We pledge to act and interact in ways that contribute to an open, welcoming, 14 | diverse, inclusive, and healthy community. 15 | 16 | ## Our Standards 17 | 18 | Examples of behavior that contributes to a positive environment for our 19 | community include: 20 | 21 | * Demonstrating empathy and kindness toward other people 22 | * Being respectful of differing opinions, viewpoints, and experiences 23 | * Giving and gracefully accepting constructive feedback 24 | * Accepting responsibility and apologizing to those affected by our mistakes, 25 | and learning from the experience 26 | * Focusing on what is best not just for us as individuals, but for the overall 27 | community 28 | 29 | Examples of unacceptable behavior include: 30 | 31 | * The use of sexualized language or imagery, and sexual attention or advances of 32 | any kind 33 | * Trolling, insulting or derogatory comments, and personal or political attacks 34 | * Public or private harassment 35 | * Publishing others' private information, such as a physical or email address, 36 | without their explicit permission 37 | * Other conduct which could reasonably be considered inappropriate in a 38 | professional setting 39 | 40 | ## Enforcement Responsibilities 41 | 42 | Community leaders are responsible for clarifying and enforcing our standards of 43 | acceptable behavior and will take appropriate and fair corrective action in 44 | response to any behavior that they deem inappropriate, threatening, offensive, 45 | or harmful. 46 | 47 | Community leaders have the right and responsibility to remove, edit, or reject 48 | comments, commits, code, wiki edits, issues, and other contributions that are 49 | not aligned to this Code of Conduct, and will communicate reasons for moderation 50 | decisions when appropriate. 51 | 52 | ## Scope 53 | 54 | This Code of Conduct applies within all community spaces, and also applies when 55 | an individual is officially representing the community in public spaces. 56 | Examples of representing our community include using an official e-mail address, 57 | posting via an official social media account, or acting as an appointed 58 | representative at an online or offline event. 59 | 60 | ## Enforcement 61 | 62 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 63 | reported to the community leaders responsible for enforcement at 64 | [INSERT CONTACT METHOD]. 65 | All complaints will be reviewed and investigated promptly and fairly. 66 | 67 | All community leaders are obligated to respect the privacy and security of the 68 | reporter of any incident. 69 | 70 | ## Enforcement Guidelines 71 | 72 | Community leaders will follow these Community Impact Guidelines in determining 73 | the consequences for any action they deem in violation of this Code of Conduct: 74 | 75 | ### 1. Correction 76 | 77 | **Community Impact**: Use of inappropriate language or other behavior deemed 78 | unprofessional or unwelcome in the community. 79 | 80 | **Consequence**: A private, written warning from community leaders, providing 81 | clarity around the nature of the violation and an explanation of why the 82 | behavior was inappropriate. A public apology may be requested. 83 | 84 | ### 2. Warning 85 | 86 | **Community Impact**: A violation through a single incident or series of 87 | actions. 88 | 89 | **Consequence**: A warning with consequences for continued behavior. No 90 | interaction with the people involved, including unsolicited interaction with 91 | those enforcing the Code of Conduct, for a specified period of time. This 92 | includes avoiding interactions in community spaces as well as external channels 93 | like social media. Violating these terms may lead to a temporary or permanent 94 | ban. 95 | 96 | ### 3. Temporary Ban 97 | 98 | **Community Impact**: A serious violation of community standards, including 99 | sustained inappropriate behavior. 100 | 101 | **Consequence**: A temporary ban from any sort of interaction or public 102 | communication with the community for a specified period of time. No public or 103 | private interaction with the people involved, including unsolicited interaction 104 | with those enforcing the Code of Conduct, is allowed during this period. 105 | Violating these terms may lead to a permanent ban. 106 | 107 | ### 4. Permanent Ban 108 | 109 | **Community Impact**: Demonstrating a pattern of violation of community 110 | standards, including sustained inappropriate behavior, harassment of an 111 | individual, or aggression toward or disparagement of classes of individuals. 112 | 113 | **Consequence**: A permanent ban from any sort of public interaction within the 114 | community. 115 | 116 | ## Attribution 117 | 118 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 119 | version 2.1, available at 120 | [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 121 | 122 | Community Impact Guidelines were inspired by 123 | [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 124 | 125 | For answers to common questions about this code of conduct, see the FAQ at 126 | [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 127 | [https://www.contributor-covenant.org/translations][translations]. 128 | 129 | [homepage]: https://www.contributor-covenant.org 130 | [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 131 | [Mozilla CoC]: https://github.com/mozilla/diversity 132 | [FAQ]: https://www.contributor-covenant.org/faq 133 | [translations]: https://www.contributor-covenant.org/translations 134 | 135 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Interviewing 2 | 3 | Interviewing for hiring is a big deal, for candidates and for employees. This repo has notes and links that help our team with interviews. This repo focuses on technical interviews for software developers, because this is what we do often. 4 | 5 | Contents: 6 | 7 | * [For the interviewer](#for-the-interviewer) 8 | * [3 types of questions](#3-types-of-questions) 9 | * [Challenge question](#challenge-question) 10 | * [Insight question](#insight-question) 11 | * [Scenario question](#scenario-question) 12 | * [Follow-up questions](#follow-up-questions) 13 | * [Before the interview](#before-the-interview) 14 | * [During the interview](#during-the-interview) 15 | * [Interview advice by Microsoft's Developer Division](#interview-advice-by-microsoft-s-developer-division) 16 | * [Share the interview in advance](#share-the-interview-in-advance) 17 | * [Use a real problem](#use-a-real-problem) 18 | * [Give access to data](#give-access-to-data) 19 | * [Make it interactive](#make-it-interactive) 20 | * [Follow a single scenario](#follow-a-single-scenario) 21 | * [Pair interviewers](#pair-interviewers) 22 | * [Hold feedback until the end](#hold-feedback-until-the-end) 23 | * [Give feedback on the process too](#give-feedback-on-the-process-too) 24 | * [Resources](#resources) 25 | 26 | 27 | ## For the interviewer 28 | 29 | 1. Have a written job description listing the essential skills and experience. 30 | 31 | 2. Use the job description as a roadmap, and write your questions beforehand. 32 | 33 | 3. During the interview, be a good listener, and also take notes. 34 | 35 | 36 | ## 3 types of questions 37 | 38 | From [3 types of job interview questions you should be prepared to answer at Google](https://www.cnbc.com/2018/05/25/3-types-of-questions-google-asks-in-a-job-interview.html) 39 | 40 | ### Challenge question 41 | 42 | Ask an open-end question, such as "Why was the project successful?" or "What would you do on a similar future project?" 43 | 44 | Goal: the interviewer finds the top edges of the candiates capabilities. 45 | 46 | Reason: These types of questions are complex and have a wide range of answers, so the interviewer can learn about the candidate's thought process. The interviewer may push back on some of the candidate's responses, to see how the candidate responds and position. 47 | 48 | 49 | ### Insight question 50 | 51 | Ask a specific question that involves surprises and opinions, such as "What surprises you about …?" or "What is a perspective that you have, that is different from most people?" 52 | 53 | Goal: the interviewer discovers what insights the candidate gained from previous positions. 54 | 55 | Reason: The framing is meant to encourage insightful thought and discussion, and to get away from a candidate providing rehearsed answers. The purpose is to help the candidate think from a unique perspective. 56 | 57 | 58 | ### Scenario question 59 | 60 | Ask a project-oriented team-oriented question, such as "How do you work as a team on projects, to plan them and build them?" or "When you need to make an important decision, how do you do it?" 61 | 62 | Goal: the interviewer learns how the candidate works on a team. 63 | 64 | Reason: The framing is meant to encourage discussion of teamwork, planning, and long term work together. 65 | 66 | 67 | ### Follow-up questions 68 | 69 | Ask a follow-up question if you like: 70 | 71 | Goal: the interview gains more in-depth answers. 72 | 73 | Examples: 74 | 75 | * "Can you tell me more about X?" 76 | * "Why did you choose X?" 77 | * "What steps did you take to make X happen?" 78 | * "What specific things did X accomplish?" 79 | 80 | 81 | ## Before the interview 82 | 83 | 84 | Before the interview, send the candidate a warm, friendly email message. 85 | 86 | * Contact information for the interviewer liason and the company. 87 | * The interview date, time, duration, place, and map directions. 88 | * Prepartion instructions, such as what to prepare, expect, and know. 89 | 90 | See our file [interviewing-example-email.txt](interviewing-example-email.txt) 91 | 92 | 93 | ## During the interview 94 | 95 | Welcome the candidate. 96 | 97 | * Offer water, tea, coffee, etc. 98 | * Invite them to use the restroom if they want. 99 | * Show them to the interview room. 100 | 101 | Get the candidate comfortable by by starting with pleasantries. 102 | 103 | * Such as "Were our directions okay?" and "How's your morning going?". 104 | * Describe the general plan for the interview process. 105 | * Ask them if they need anything before starting. 106 | 107 | 108 | ## Interview advice by Microsoft's Developer Division 109 | 110 | 111 | ### Share the interview in advance 112 | 113 | To start with, we let the candidate know a few days in advance what the interview day will look like and what problem we’ll be working on. We give them time to do their own research and to think about it. It’s not like going into work every day is a surprise, so why should an interview be? 114 | 115 | ### Use a real problem 116 | 117 | We run through a real problem the team is trying to solve — improving satisfaction, increasing retention, boosting usage of a service or feature. The fact that it’s a real problem that we’re working on helps foster a collaborative conversation. 118 | 119 | 120 | ### Give access to data 121 | 122 | We give the candidate access to the same information we’re working from, and during the interview they are free to search the internet or ask for more data. We often supply the candidate with our customer research, usage data, designs and mock-ups — most everything we have. 123 | 124 | 125 | ### Make it interactive 126 | 127 | We make the interviews interactive. We’re not asking you questions. We have a problem to solve together, so let’s work the way we’ll work when you’re here and we’re working on this particular problem. 128 | 129 | 130 | ### Follow a single scenario 131 | 132 | We follow a single scenario/problem throughout the day and take the candidate on a similar journey that PMs go through starting with the customer or business problem, understanding the customer’s job-to-be-done, designing the solution, bringing the solution into customer hands and ultimately getting them to use and love it. Each interview focuses on a different phase of the process. 133 | 134 | 135 | ### Pair interviewers 136 | 137 | We pair interviewers up. Rather than having one-to-one interviews, we bring two people from the team into each interview. Our original motive was to train more interviewers, but having two people in the room had other benefits. Not only was the conversation more dynamic with multiple collaborators, it also gave us an opportunity to hear multiple perspectives on the same conversation. Not everyone hears conversations the same way, so it gave us a way to place a check on unconscious bias in the same conversation. 138 | 139 | 140 | ### Hold feedback until the end 141 | 142 | We hold feedback between interviewers till the end of the day. We wanted each interviewer to judge the candidate based on the merits of their conversation alone — and not the opinion of interviewers who came before them. We tell interviewers not to signal to others whether they were leaning toward recommending we hire someone or not. They hand off the candidate to the next interviewer set and give a summary of what we’d learned in the previous session. At the end of the day everyone simultaneously makes their recommendation and explains a bit about what they saw/heard that led to that conclusion. 143 | 144 | 145 | ### Give feedback on the process too 146 | 147 | At the end of each interview loop, we not only discuss what we learned in our time with the candidate, but what worked or didn’t work in the process. We feed that back into the process so it gets better. 148 | 149 | 150 | 151 | ## Resources 152 | 153 | For candidates: 154 | 155 | * [20 tips for great job interviews](https://www.experisjobs.us/exp_us/en/career-advice/20-tips-job-interviews.htm) 156 | * [How to answer the 31 most common interview questions](https://www.themuse.com/advice/how-to-answer-the-31-most-common-interview-questions) 157 | 158 | For interviewers: 159 | 160 | * [How to interview candidates effectively](https://www.betterteam.com/how-to-interview-candidates) 161 | * [The Right Way To Interview A Job Candidate](https://www.forbes.com/sites/lizryan/2017/04/28/the-right-way-to-interview-a-job-candidate/#74f581d1b70a) 162 | * [Rethinking how we interview in Microsoft’s Developer Division](https://blog.usejournal.com/rethinking-how-we-interview-in-microsofts-developer-division-8f404cfd075a) 163 | 164 | For everyone: 165 | 166 | * [Laszlo Bock](https://en.wikipedia.org/wiki/Laszlo_Bock) 167 | --------------------------------------------------------------------------------