{"id":352,"date":"2022-08-02T23:08:00","date_gmt":"2022-08-02T23:08:00","guid":{"rendered":"http:\/\/rainforestqa.com\/engineering-hiring-process\/"},"modified":"2023-02-14T17:07:12","modified_gmt":"2023-02-14T17:07:12","slug":"engineering-hiring-process","status":"publish","type":"post","link":"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process","title":{"rendered":"The engineering hiring process at Rainforest QA"},"content":{"rendered":"\n<p>One of Rainforest\u2019s Engineering\u2019s team core tenets is continuous improvement. So before we started hiring again, we sat down and discussed how we wanted to change our hiring process. We decided on a few changes, but the main one was we wanted to be more transparent about how engineering at Rainforest works. That\u2019s why we\u2019re publicly publish our hiring process here for the first time.<\/p>\n\n\n\n<p>First, we wanted to make it clear how we work here at Rainforest so we can attract more of the right kind of candidates. Second, we wanted to disclose the specifics of our hiring process so you can decide whether you want to go through it before applying. After all, there\u2019s no point in applying for a position if you don\u2019t want to undergo the application process \u2014 it\u2019s not a good use of your time or ours.<\/p>\n\n\n\n<p>Over the years we\u2019ve spent a lot of time reading about hiring processes and thinking about our own process. We\u2019re aware there are things in our process that might be disagreeable for some candidates and might lead to some bias in our selection process. For example, you might argue that some people aren\u2019t good at live coding or talking in front of strangers, or that our process isn\u2019t representative of \u201creal\u201d work. This is probably true, but we need some way of assessing strangers on whether they will thrive at Rainforest, and this is how we\u2019ve decided to do it \u2014 at least until we learn from the current version of the process and identify how we can improve it.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process\/#1_Application\" >1. Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process\/#2_Hiring_manager_review\" >2. Hiring manager review<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process\/#3_Initial_call_With_HR_to_describe_compensation_philosophy\" >3. Initial call With HR to describe compensation philosophy<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process\/#4_Phone_screen\" >4. Phone screen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process\/#5_Work_sample_test\" >5. Work sample test<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process\/#6_Interview_panel\" >6. Interview panel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process\/#7_Reference_checks\" >7. Reference checks<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process\/#8_Chat_with_CEO\" >8. Chat with CEO<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.rainforestqa.com\/blog\/engineering-hiring-process\/#9_Offer\" >9. Offer<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Application\"><\/span>1. Application<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>We post our job listings to <a id=\"\" href=\"https:\/\/jobs.lever.co\/rainforest\" target=\"_blank\" rel=\"noopener\">our website<\/a> and other job boards like <a id=\"\" href=\"https:\/\/hnhiring.com\/\" target=\"_blank\" rel=\"noopener\">HN\u2019s <em id=\"\">Who Is Hiring?<\/em><\/a>.<\/p>\n\n\n\n<p>We ask applicants to complete a short <a id=\"\" href=\"https:\/\/letsrevolutionizetesting.com\/challenge\" target=\"_blank\" rel=\"noopener\">puzzle<\/a> as part of the application submission process. Solving the puzzle requires a combination of web technology knowledge and troubleshooting skills, so we think it\u2019s a good early indicator of fit for our roles.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Hiring_manager_review\"><\/span>2. Hiring manager review<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The engineering hiring manager will review your previous roles, accomplishments, tasks, and any additional information (such as portfolio work) to get an initial sense of whether your experience aligns with what\u2019s needed to be successful in our working environment and the role.<\/p>\n\n\n\n<p>Particularly, the hiring manager will look for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Work with software programming languages and application-level frameworks that are core to working at Rainforest, <strong id=\"\">OR<\/strong> devOps experience on a modern commercial cloud provider or platform, especially with common Infrastructure-as-Code (IaC) stacks like Terraform, Puppet\/Chef\/Ansible\/etc.<\/li>\n\n\n\n<li>Use of Agile methodologies in a cross-functional team setting.<\/li>\n\n\n\n<li>For higher grade levels: experience of working effectively with different stakeholders (including non-technical ones).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Initial_call_With_HR_to_describe_compensation_philosophy\"><\/span>3. Initial call With HR to describe compensation philosophy<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If you pass the initial screening, you\u2019ll have a chat with HR to make sure we align on compensation expectations. To be respectful to everyone\u2019s time, if we can&#8217;t align on compensation, it&#8217;s best to end earlier in the process.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_Phone_screen\"><\/span>4. Phone screen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>You\u2019ll have your first conversation with the hiring manager (who will usually be your manager if you get hired).<\/p>\n\n\n\n<p>As a quick sanity-check to make sure you can code, there\u2019ll be a short (30 minutes, maximum) collaborative live coding exercise. Please come prepared with a development environment where you can write and run your code (in any language of your choosing).<\/p>\n\n\n\n<p>This is a good first (but not last) opportunity to ask any questions you have about the role and about working at Rainforest.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_Work_sample_test\"><\/span>5. Work sample test<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The goal of the work sample test is to help your interviewer ask thoughtful questions about the kind of code you\u2019d write, thought processes you\u2019d apply, and choices you\u2019d make while at Rainforest.<\/p>\n\n\n\n<p>As much as possible, we want to evaluate what your normal, everyday work would look like, which is why we use a work sample test rather than whiteboard or live coding exercise for this part of the process.<\/p>\n\n\n\n<p>We provide detailed instructions (published below) for the work sample assignment, and ask that you spend no more than three hours completing it. Once you\u2019ve submitted the work sample, your interviewer will read your submission, run it, and prepare follow-up questions to ask during the interview panel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em id=\"\">Instruction to candidates<\/em><\/h3>\n\n\n\n<p><em id=\"\">We know that the best way to tell if someone\u2019s a good engineer is to actually look at their code, so before your interview you\u2019ll need to submit a code sample for us to review.<\/em><\/p>\n\n\n\n<p><em id=\"\">Rainforest\u2019s core languages are Ruby and JavaScript. We may be able to review code in other languages as well, if we have a knowledgeable reviewer \u2014 just ask. Choose the language you\u2019re strongest in \u2014 we\u2019re looking to have a conversation with you about the decisions you\u2019ve made in your code.<\/em><\/p>\n\n\n\n<p><strong id=\"\"><em id=\"\">Please let us know right away what language you\u2019ll be using so we can select an appropriate reviewer.<\/em><\/strong><\/p>\n\n\n\n<p><em id=\"\">Your code sample is due by {DATE}, and you can submit by replying to this email. Please don\u2019t be late; if you miss the deadline, that\u2019ll jeopardize your application. If you can\u2019t make the deadline please let us know as soon as possible.<\/em><\/p>\n\n\n\n<p><em id=\"\">Your next interview will be with someone who has reviewed and run your code, so be prepared to explain your code, walk through it with our interviewer, and answer questions.<\/em><\/p>\n\n\n\n<p><em id=\"\">We have different assignments depending on the position you&#8217;re applying for:<\/em><\/p>\n\n\n\n<p><em id=\"\">For backend engineer positions, pick <\/em><strong id=\"\"><em id=\"\">one<\/em><\/strong><em id=\"\"> of these assignments:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a id=\"\" href=\"https:\/\/homework.adhoc.team\/noclist\/\" target=\"_blank\" rel=\"noopener\"><em id=\"\">https:\/\/homework.adhoc.team\/noclist\/<\/em><\/a><\/li>\n\n\n\n<li><a id=\"\" href=\"https:\/\/homework.adhoc.team\/slcsp\/\" target=\"_blank\" rel=\"noopener\"><em id=\"\">https:\/\/homework.adhoc.team\/slcsp\/<\/em><\/a><\/li>\n\n\n\n<li><a id=\"\" href=\"https:\/\/homework.adhoc.team\/virs_pipeline\/\" target=\"_blank\" rel=\"noopener\"><em id=\"\">https:\/\/homework.adhoc.team\/virs_pipeline\/<\/em><\/a><\/li>\n<\/ul>\n\n\n\n<p><em id=\"\">Each exercise has its own rules and instructions. Where our rules and Ad Hoc\u2019s differ, follow our rules. Let us know if you have questions!<\/em><\/p>\n\n\n\n<p><em id=\"\">For frontend engineer positions, you can find the template repository for the assignment <\/em><a id=\"\" href=\"https:\/\/github.com\/rainforestapp\/rf-homework-frontend\" target=\"_blank\" rel=\"noopener\"><em id=\"\">here<\/em><\/a><em id=\"\">.<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em id=\"\">As mentioned above, please submit code written in the language we agreed upon.<\/em><\/li>\n\n\n\n<li><em id=\"\">Include documentation about your development environment and instructions on how to run your program. Make sure that someone familiar with your chosen language can easily run your code.<\/em><\/li>\n\n\n\n<li><em id=\"\">Include tests and instructions on how to run the tests.<\/em><\/li>\n\n\n\n<li><em id=\"\">Share your code via a publicly accessible Git repository.<\/em><\/li>\n<\/ul>\n\n\n\n<p><em id=\"\">Please don\u2019t spend more than 3 hours on your exercise. If you reach 3 hours, and haven\u2019t completed work, please contact us and we\u2019ll help you decide what to do next.<\/em><\/p>\n\n\n\n<p><em id=\"\">Good luck! If you have any questions, please let us know!<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6_Interview_panel\"><\/span>6. Interview panel<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>You\u2019ll have three, back-to-back interviews, each with a different member of our engineering team. Each interview will be approximately one hour long. To reduce the stress associated with single interviews that might run a few minutes long, you\u2019ll be in the same video meeting room for all your interviews.<\/p>\n\n\n\n<p>One of the interviews will cover your work sample test. The other two interviews will be behavioral interviews, which means you&#8217;ll be asked a series of questions about experiences you\u2019ve had and how you handled them. There are no \u201cright\u201d answers; we\u2019re interested in talking through these situations with you to learn more about you. Don\u2019t be surprised if you get the same question from different interviewers; that\u2019s normal. Feel free to think for a moment before answering if that\u2019s your style \u2014 you won\u2019t be judged for it.<\/p>\n\n\n\n<p>There will be times when the interviewer asks for more information, or wants to dig deeper into your answers. That\u2019s also normal; we want to make sure we understand what you did and why.<\/p>\n\n\n\n<p>Please keep in mind that interviewing is a two-way street. This is another good chance to learn more about working at Rainforest, directly from our team members.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7_Reference_checks\"><\/span>7. Reference checks<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Assuming you pass the the interview stage, we\u2019ll ask for up to three references to talk to. Two of these contacts should be from people who have managed you directly. The third can be from another manager <em id=\"\">or<\/em> someone else who knows your work well.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"8_Chat_with_CEO\"><\/span>8. Chat with CEO<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If we\u2019re happy about what we\u2019ve heard from your references, at this point we\u2019re pretty confident that you&#8217;ll be a good fit.<\/p>\n\n\n\n<p>We\u2019ll invite you to meet with our CEO, who can talk more about the company\u2019s vision. This is an important step because we want everyone to feel motivated by what we\u2019re trying to accomplish. (Also, our CEO just likes to get to know everyone on the team.) &nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"9_Offer\"><\/span>9. Offer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If everything has gone well, we\u2019ll feel confident that you\u2019ll be successful engineer at Rainforest, and we\u2019ll both be excited about your joining the team. It\u2019s time to extend you an offer!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here&#8217;s the exact hiring process we use to evaluate candidates for the engineering team here at Rainforest QA.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[6],"tags":[],"class_list":["post-352","post","type-post","status-publish","format-standard","hentry","category-engineering"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/comments?post=352"}],"version-history":[{"count":5,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/352\/revisions"}],"predecessor-version":[{"id":949,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/352\/revisions\/949"}],"wp:attachment":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/media?parent=352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/categories?post=352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/tags?post=352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}