{"id":1898,"date":"2021-06-15T13:40:05","date_gmt":"2021-06-15T20:40:05","guid":{"rendered":"https:\/\/coderpad.io\/?page_id=1898"},"modified":"2021-09-16T12:38:19","modified_gmt":"2021-09-16T19:38:19","slug":"technical-interview-process-best-practices","status":"publish","type":"page","link":"https:\/\/coderpad.io\/resources\/learn\/technical-interview-process-best-practices\/","title":{"rendered":"Best Practices for the Technical Interview Process\u2014From Start to Finish"},"content":{"rendered":"\n<p>If you haven\u2019t conducted technical interview before\u2014or if you have, and ended up with candidates that were less than ideal\u2014then you may find yourself wondering how to optimize your process. Companies like Apple, Google, and Tesla have their technical interview process down to a science. These organizations are literally built on the backs of the most talented developers in the industry. Many of those individuals found themselves at the top echelons of talent without the benefit of traditional educational or job experiences.<\/p>\n\n\n\n<p>As a hiring manager for software developers, what this means is that a coder who went to community college might be as a good as a coder who went to MIT. Your job is therefore to apply a different kind of hiring filter to your candidates, one that can prioritizes an applicant\u2019s coding talent as opposed to their educational background.<\/p>\n\n\n<aside class=\"\n    cta-banner\n        \"\ndata-block-name=\"cta-banner\">\n    <div class=\"inner\">\n        <div class=\"content\">\n                            <h2 class=\"headline\">Need a better way to interview candidates? Try CoderPad.<\/h2>\n            \n                            <div class=\"cta-buttons\">\n                                    <a href=\"\/demo\/\" class=\"button  js-cta--get-a-demo\"  data-ga-category=\"CTA\" data-ga-label=\"Need a better way to interview candidates? Try CoderPad.|Get a demo\">Get a demo<\/a>\n                                <\/div>\n                    <\/div>\n            <\/div>\n<\/aside>\n\n\n\n<h2 class=\"wp-block-heading\">The Technical Interview Process Begins with Reading Resumes\u2014or Does it?<\/h2>\n\n\n\n<p>Before you begin conducting technical interviews, you need to start by collecting resumes. This may seem counterintuitive given that our introduction talked about hiring by talent instead of by background\u2014but there are still good reasons why the resume review remains an important keystone of the technical interview process.&nbsp;<\/p>\n\n\n\n<p>For one thing, there are more ways to collect resumes than you might think. Many traditional recruiters stick to either soliciting resumes from people they\u2019d like to recruit or placing requests for job applicants on venues such as LinkedIn\u2014but there\u2019s a third way.<\/p>\n\n\n\n<p>For example, you can post what\u2019s known as \u201c<a href=\"https:\/\/coderpad.io\/features\/resources\/docs\/interview\/quick-start-guides\/interviewers\/resources\/docs\/interview\/quick-start-guides\/interviewers\/resources\/docs\/interview\/quick-start-guides\/interviewers\/take-home-projects\/\">take-home projects<\/a>\u201d on your website. These are software engineer interview questions that are based on problems that you solve every day at your company. Good coders find it difficult to resist a difficult question, so you should get plenty of responses. Anyone who\u2019s able to successfully answer your questions should be invited to submit a resume and an application, which means that you now have a ready-made supply of candidates who are interested in your company and who have demonstrated that they can do the work.<\/p>\n\n\n\n<p>Once you have all the resumes you want, your next step is to read them\u2014and there is much to be gleaned from a resume. For example, let\u2019s say that one of your applicants went to MIT, but that they\u2019re fresh out of college. Why would you hire them? A good candidate will be able to:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Articulate the projects that they were part of&nbsp;<\/li><li>Show how their contributions led to quantitative improvements&nbsp;<\/li><li>Link to a portfolio that demonstrates their work<\/li><\/ul>\n\n\n\n<p>A great candidate will be able to point to all of these things\u2014even without having had a lot of experience in the field. What\u2019s more, you as the interviewer should be able to pick through a candidate\u2019s accomplishments, understand which of them has the most relevance to your open position, and then drill down on these experiences during the interview itself.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Assemble a Hiring Team to Create Technical Recruiter Interview Questions<\/h2>\n\n\n\n<p>Making a list of technical recruiter interview questions is the next part of the technical interview process, but it shouldn\u2019t be done alone. If you create interview questions in a vacuum, you risk alienating process stakeholders who will resent their lack of input. Worse, you could end up with a candidate who doesn\u2019t reflect the preferences of their future business leaders.<\/p>\n\n\n\n<p>First, you need to understand who the stakeholders are\u2014who needs to be at the table when designing technical recruiter interview questions?&nbsp;<\/p>\n\n\n\n<p>First, you need to start from the top and work your way down. Someone like a CTO or a CIO doesn\u2019t necessarily need to be across the table from a job applicant asking questions (unless it\u2019s a very small company) but they should be able to sign off on the list of interviewers and the questions you\u2019ll be asking. Having their blessing will allow you and your hiring team to make better and more confident decisions as you move forwards.<\/p>\n\n\n\n<p>Second, you need engineers on your side. Having the CTO\u2019s blessing comes in handy here. A lot of engineers don\u2019t necessarily like giving interviews or helping with the hiring process, but having the CTOs authority means that you\u2019ll be able to compel a lot more enthusiasm.<\/p>\n\n\n\n<p>Having engineers conduct or sit in on interviews results in better questions\u2014and can help validate a candidate\u2019s responses as well. It\u2019s best to choose interviews who are experienced in hiring if possible, especially if they\u2019ll be working above or alongside the candidate you\u2019re hiring. If you can\u2019t find an experienced interviewer among your engineers, try to train them using mock interviews, and make sure that they\u2019re familiar with the tools you\u2019ll be using to screen applicants.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conduct Screening Interviews Before Asking Programming Technical Interview Questions<\/h2>\n\n\n\n<p>Many recruiters might be tempted to jump right into their programming technical interview questions without conducting a basic screener, but we recommend against this. A basic screening interview can weed out applicants for many reasons. As one example, let\u2019s say that your workforce is planning on returning to the office once the pandemic ebbs\u2014but that your applicant is planning to work remotely indefinitely. This kind of information might not come up in a technical interview, but it would certainly result in a hiring mismatch.<\/p>\n\n\n\n<p>In general, recruiters should use their time to set expectations for the job. Candidates should understand what the workload looks like, what their ideal candidate looks like, and what the average workload looks like. Meanwhile, the recruiter should understand the reverse\u2014what the candidate is looking for and whether their background matches expectations.<\/p>\n\n\n\n<p>In most cases, you\u2019re not going to learn more about the candidate than what you know already. These are candidates who already look good on paper, and this call serves mostly to verify that your applicants are interested in the job and are able to theoretically do it. About one in five candidates will drop out during this process, but don\u2019t be discouraged. If there\u2019s a mismatch between what you expect from your hires and what your candidates want, it\u2019s better to get that out of the way early.<\/p>\n\n\n<aside class=\"\n    cta-banner\n        \"\ndata-block-name=\"cta-banner\">\n    <div class=\"inner\">\n        <div class=\"content\">\n                            <h2 class=\"headline\">Need a better way to interview candidates? Try CoderPad.<\/h2>\n            \n                            <div class=\"cta-buttons\">\n                                    <a href=\"\/demo\/\" class=\"button  js-cta--get-a-demo\"  data-ga-category=\"CTA\" data-ga-label=\"Need a better way to interview candidates? Try CoderPad.|Get a demo\">Get a demo<\/a>\n                                <\/div>\n                    <\/div>\n            <\/div>\n<\/aside>\n\n\n\n<h2 class=\"wp-block-heading\">Beginning the Technical Interview Process<\/h2>\n\n\n\n<p>Now, finally it is time for technical interviews to begin. Although it took a long time to get to this stage, the wait was worth it. You\u2019ve assembled a list of promising candidates and created a team of well-trained and motivated interviewers. Now all that\u2019s left is for your candidates to test their mettle. Where do we begin?<\/p>\n\n\n\n<p>Before you even start asking software engineer interview questions, the first step is to level-set about the ways that your interviews will be designed. The most important thing is that each candidate should have the same experience\u2014they should be asked the same questions (with some exceptions), and they should be given the same tools. Interviewers should also agree on what a good answer looks like.<\/p>\n\n\n\n<p>Once you\u2019ve established this rubric, technical interviews can now commence.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Technical Screening Interview<\/h3>\n\n\n\n<p>During this first round of interviews, it is most important to make sure that each candidate is asked the same software engineer interview questions. This should be used as a venue for a collaborative exercise. The interviewer can work together with the candidate to solve problems that are closely related to the work that they\u2019d be doing if they were accepted. Try to time the screening interview so that it lasts about an hour.<\/p>\n\n\n\n<p>From this, the interviewer will learn a few important things:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>First, they\u2019ll learn if their candidate is a good match for the specific problems presented by your company\u2019s day-to-day operations. Most candidates with the programming skills they claim to possess should be able to fulfil this criterion. The next parts of the rubric are more important.<\/li><li>Second, they\u2019ll learn how well the candidate is able to collaborate with others. Teamwork is hugely important to the development process. If an applicant can\u2019t sit through a paired programming exercise, then they probably aren\u2019t a good fit for your position.<\/li><li>Lastly, the interviewer will learn about the candidate\u2019s distinct coding style in a low-pressure environment. Any style is acceptable at this stage\u2014as long as the candidate can complete the exercise in the allotted time, but this will give you material to develop more personalized questions in later rounds of testing.<\/li><\/ul>\n\n\n\n<p>If you\u2019ve set up your pipeline correctly, this technical screen should be able to narrow down a substantial minority of your candidates while letting the top tier of applicants through to the next round. With that said, there are ways to optimize the interview experience to make sure that you can evaluate every candidate fairly and make sure that your most talented applicants don\u2019t drop out of the process.&nbsp;<\/p>\n\n\n\n<p>Interviewers need to make sure that the testing tools they\u2019re using closely approximate the tools that developers use from day to day. Many interviewers don\u2019t do this, instead simply screensharing a text editor and asking candidates to answer questions using tools that they aren\u2019t sued to working with. Using a text editor doesn\u2019t make sense, however, because it cuts out one of the most important parts of a software developer\u2019s workflow\u2014the ability to run code, check for errors, and run it again.<\/p>\n\n\n\n<p>Giving candidates tools they\u2019re familiar with\u2014such as those which approximate a full-featured IDE\u2014means that they\u2019ll be more comfortable throughout the technical interview. It also allows you greater insight into their thought process. Taking these tools away adds stress to the interview process without adding any valuable information. What\u2019s more, a stressful interview process will make candidates less likely to accept any job offers that come down the line.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Whiteboard Coding Interview\u2014What Not to Do&nbsp;<\/h3>\n\n\n\n<p>Whiteboard interviews occupy a somewhat uneasy place within the technical interview process, and we\u2019re going to tell you why. Short answer? Many interviewers rely on the whiteboard at the expense of other interviewing tools, which is a detriment to the entire process. Most programmers don\u2019t use whiteboards that often, which means that when you confront them with a <a href=\"https:\/\/coderpad.io\/resources\/learn\/coding-interview-guide\/\">coding interview<\/a> that focuses entirely on whiteboards, even promising candidates might freeze up. Because of this, we recommend using an IDE optimized for remote interviews instead of whiteboards when possible.<\/p>\n\n\n\n<p>That being said, there are some programming technical interview questions that will require the use of a whiteboard, and some candidates might like to be given the option of a whiteboard in order to augment their thought process. In these scenarios, CoderPad includes a Drawing Mode that lets candidates draw or diagram to explain a system\u2014and also allows interviewers to sketch out a concept for a candidate. In this context, Drawing Mode acts as a supplement to the interview without taking it over completely.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Capping Off the Interview with a Technical Project<\/h3>\n\n\n\n<p>The final programming technical interview question will be designed to test the limit of a candidate\u2019s abilities. Rather than answering questions about their background or working with the interviewer, the candidate will be expected to create a capstone project. During this part of the application process, the candidate is given a long period of time\u2014up to five hours\u2014and will be instructed to face a more challenging problem. This might include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Creating an entire application from scratch<\/li><li>Writing an algorithm designed to run on a system with strict memory limits<\/li><li>Design a continuous integration system<\/li><\/ul>\n\n\n\n<p>Because this part of the interview is so long\u2014and because any applicant who gets this far has a good chance of being hired\u2014it\u2019s good practice to have multiple stakeholders sit in on these interviews in order to offer a wide range of opinions on the candidates being evaluated. At the end of these process, you\u2019ll be able to narrow down the applicant pool to just three or four candidates.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hiring Remotely (for the Foreseeable Future)<\/h2>\n\n\n\n<p>Now that you\u2019ve narrowed down the candidate pool, what happens next? Bear in mind that you probably won\u2019t be able to meet your new employee for quite some time. As such, best practice for <a href=\"https:\/\/coderpad.io\/blog\/interviewing\/7-ways-to-stand-out-and-improve-your-remote-technical-hiring\/\">remote technical hiring<\/a> is to do a final round of due diligence before you make your decision.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Meeting with a team member<\/h2>\n\n\n\n<p>Depending on the importance of the role you\u2019re hiring for, now is the time for your candidate to meet with one of your business leaders, such as the project manager. This allows the candidate to learn about the goals of the wider company, not just the department they\u2019re working for. In addition, this lets the product manager gain an understanding of the hiring process and learn more about the people who might be working under them. Earlier, we spoke about making sure that your hiring process has buy-in from multiple stakeholders. This is part of that. By ensuring that the business leader knows you\u2019re bringing up quality candidates, you\u2019ll have more support when the time comes to make additional hires.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Review and Extending the Offer<\/h2>\n\n\n\n<p>At last! We\u2019re finally into the onboarding process. Having narrowed it down to a very small handful of candidates, your job here is to compare notes and pick whoever\u2019s best. Continuing with the \u201cbuy-in\u201d theme, this is where you should have your VP of Engineering or a C-Level step in to help you make your decision\u2014reviewing your collective wisdom and helping you make a \u201csanity check.\u201d<\/p>\n\n\n\n<p>Last but not least, your top-tier candidates may be considering other offers right now\u2014so you need to make an effort to sell them on your position. After sitting through three rounds of interviews, you might assume that your candidate is an automatic \u201cyes,\u201d but it would be embarrassing if they didn\u2019t. Make sure that you make more than a token effort to impress the people you\u2019re trying to hire at the end-stage of the process, and you\u2019ll be guaranteed to onboard enthusiastic employee who hit the ground running.<\/p>\n\n\n\n<p>We\u2019re not going to lie\u2014technical hiring is a difficult and time-intensive process, but the results are what matter. Adhering to best practices and making the right decisions means hiring motivated employees who can drive your company further into the future. With CoderPad, you\u2019ll be able to streamline the interview process in a way that benefits both recruiters and applicants. Interview more talent, and learn more about your candidates\u2019 skill and knowledge when you get started with <a href=\"https:\/\/coderpad.io\">CoderPad<\/a> today.<\/p>\n\n\n<aside class=\"\n    cta-banner\n        \"\ndata-block-name=\"cta-banner\">\n    <div class=\"inner\">\n        <div class=\"content\">\n                            <h2 class=\"headline\">Need a better way to interview candidates? Try CoderPad.<\/h2>\n            \n                            <div class=\"cta-buttons\">\n                                    <a href=\"\/demo\/\" class=\"button  js-cta--get-a-demo\"  data-ga-category=\"CTA\" data-ga-label=\"Need a better way to interview candidates? Try CoderPad.|Get a demo\">Get a demo<\/a>\n                                <\/div>\n                    <\/div>\n            <\/div>\n<\/aside>\n","protected":false},"excerpt":{"rendered":"<p>If you haven\u2019t conducted technical interview before\u2014or if you have, and ended up with candidates that were less than ideal\u2014then you may find yourself wondering how to optimize your process. Companies like Apple, Google, and Tesla have their technical interview process down to a science. These organizations are literally built on the backs of the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":280,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1898","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/pages\/1898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/comments?post=1898"}],"version-history":[{"count":7,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/pages\/1898\/revisions"}],"predecessor-version":[{"id":2788,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/pages\/1898\/revisions\/2788"}],"up":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/pages\/280"}],"wp:attachment":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media?parent=1898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}