{"id":35671,"date":"2023-07-31T11:00:20","date_gmt":"2023-07-31T18:00:20","guid":{"rendered":"https:\/\/coderpad.io\/?p=35671"},"modified":"2023-07-31T11:00:23","modified_gmt":"2023-07-31T18:00:23","slug":"2-helpful-interview-questions-to-ask-your-backend-engineering-candidates","status":"publish","type":"post","link":"https:\/\/coderpad.io\/blog\/interviewing\/2-helpful-interview-questions-to-ask-your-backend-engineering-candidates\/","title":{"rendered":"2 Helpful Interview Questions to Ask Your Backend Engineering Candidates"},"content":{"rendered":"\n<p>As businesses aim to attract elite tech professionals, the journey to discover skilled back-end developers is both exciting and challenging. All too frequently, identifying or evaluating the ideal candidate proves tough.<\/p>\n\n\n\n<p>According to the latest findings from our <a href=\"https:\/\/www.codingame.com\/work\/codingame-and-coderpad-tech-hiring-survey-2023\" target=\"_blank\" rel=\"noreferrer noopener\">2023 State of Tech Hiring survey<\/a>, back-end developers not only rank as THE most sought-after job role for recruiters but they are also anticipated to be the 2nd most challenging positions to fill.<\/p>\n\n\n\n<div class=\"infogram-embed\" style=\"background-color:black; text-align:center; color:white\" data-id=\"3f2aaeb2-3ae2-4b21-8063-6638729f3d87\" data-type=\"interactive\" data-title=\"3. In demand positions 2023\"><caption style=\"color:white\"><b>What job roles are recruiters looking to fill right now?<\/b><\/caption><\/div><script>!function(e,i,n,s){var t=\"InfogramEmbeds\",d=e.getElementsByTagName(\"script\")[0];if(window[t]&&window[t].initialized)window[t].process&&window[t].process();else if(!e.getElementById(n)){var o=e.createElement(\"script\");o.async=1,o.id=n,o.src=\"https:\/\/e.infogram.com\/js\/dist\/embed-loader-min.js\",d.parentNode.insertBefore(o,d)}}(document,0,\"infogram-async\");<\/script>\n\n\n\n<p>Consequently, filling these roles will consume a significant amount of time and financial resources. To avoid wasting valuable time and money, it is crucial to ensure that you make the right hiring decisions when selecting a back-end developer for your company. Repeating the hiring process multiple times is far from a wise use of your limited time and resources.<\/p>\n\n\n\n<p>Therefore, to identify and hire the most suitable back-end developer, it is essential to evaluate their back-end skills thoroughly \u2013 for instance, skills like processing form input and communicating with data-enriching microservices through API calls.&nbsp;<\/p>\n\n\n\n<p>In addition, an understanding of web application architecture and expertise in HTTP\/Rest protocols are equally important, taking into account your company&#8217;s applications, databases, and web storage requirements.<\/p>\n\n\n\n<p>One of the most effective methods to evaluate these essential skills in potential candidates is to conduct collaborative coding exercises in a realistic environment. Thus, developing well-crafted technical interview questions becomes a vital aspect of the interview process that deserves special attention.<\/p>\n\n\n\n<p>In this article, we will explore two interview questions specifically designed for assessing back-end developers.&nbsp;<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>\u2705 Although the questions samples below are presented with specific programming languages \u2013 Node.js in this case \u2013 we also offer them in <a href=\"https:\/\/coderpad.io\/languages\/\" target=\"_blank\" rel=\"noreferrer noopener\">Django, Rails, and Spring<\/a>. Alternatively, you can adapt them to align with your own technical stack and needs.&nbsp;<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Question 1: Shopping List<\/h2>\n\n\n\n<p>This question tests a candidate&#8217;s ability to create model(s) for the data structure, insert hard-coded data into a database, modify tables and fields in a database, and write endpoints to interact with data.<\/p>\n\n\n\n<p><strong>Part 1<\/strong><\/p>\n\n\n\n<p><em>Create a model for the shopping lists and items located in app\/data\/data.ts.<\/em><\/p>\n\n\n\n<p><strong>Part 2<\/strong><\/p>\n\n\n\n<p><em>Store the shopping lists and items located in app\/data\/data.ts in the database.<\/em><\/p>\n\n\n\n<p><strong>Part 3<\/strong><\/p>\n\n\n\n<p><em>Modify the database such that a price field can be stored for each item.<\/em><\/p>\n\n\n\n<p><strong>Part 4<\/strong><\/p>\n\n\n\n<p><em>Multiply the quantity of each item in the shopping lists by two.<\/em><\/p>\n\n\n\n<p><strong>Part 5<\/strong><\/p>\n\n\n\n<p><em>Create API endpoints to dynamically get a list of shopping lists and items.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Assessing the candidate<\/h3>\n\n\n\n<p>The candidate should create models for a shopping list and items. They should then write code to create the tables necessary and insert the data into the tables. Additionally, the candidate can be asked to edit the data in the tables and add additional fields. Finally, endpoints to interact with the data can be created.<\/p>\n\n\n<div\n\tclass=\"sandbox-embed responsive-embed  sandbox-embed--full-width\"\n\tstyle=\"padding-top: 85%\"\ndata-block-name=\"coderpad-sandbox-embed\">\n\t<iframe src=\"https:\/\/embed.coderpad.io\/sandbox?question_id=254803&#038;use_question_button\" width=\"640\" height=\"544\" loading=\"lazy\" aria-label=\"Try out the CoderPad sandbox\"><\/iframe>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Question 2: Galaxy Data Ingestion and Planetary API Server<\/h2>\n\n\n\n<p>This question tests the candidate&#8217;s ability to fetch data from a GraphQL source, create model(s) for the data structure, and write CRUD endpoints to interact with data. <\/p>\n\n\n\n<p>Here are the instructions for the candidate:<\/p>\n\n\n\n<p><em>The goal of this exercise is to retrieve data from an external source, store it in an appropriate database structure, and create a CRUD RESTful API to interface with the database<\/em>.<\/p>\n\n\n\n<p><strong><em>Goals<\/em><\/strong><\/p>\n\n\n\n<p><em>1. Read the data from this GraphQL endpoint &#8212; <\/em><code>https:\/\/swapi-graphql.netlify.app\/.netlify\/functions\/index<\/code><em> &#8212; with the following query:<\/em><\/p>\n\n\n\n<p><em><code>query Query {allPlanets{planets{name population terrains climates}}}<\/code><\/em><\/p>\n\n\n\n<p><em>(You can view the shape of the data <a href=\"https:\/\/studio.apollographql.com\/public\/star-wars-swapi\/explorer?explorerURLState=N4IgJg9gxgrgtgUwHYBcQC4QEcYIE4CeABAIq6FHAA6SRRAhgDaMAKj9SCKAzpTXXQAO7Tjz60BdJPUT9JRQREEx2KAJYQkcySnx56apN20CojNXHq7jEugF85DpHZB2gA&amp;variant=current\" target=\"_blank\" rel=\"noreferrer noopener\">here.)<\/a><\/em><\/p>\n\n\n\n<p><em>2. Store the data from the GraphQL endpoint in the database and create appropriate models<\/em><\/p>\n\n\n\n<p><em>3. Write RESTful Create, Read, Update, and Delete endpoints to interact with the database<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Assessing the candidate<\/h3>\n\n\n\n<p>The candidate should create a model to represent a <code>Planet<\/code> entity, a way to load the data from the GraphQL endpoint to the database, and REST endpoints to do CRUD operations (get, put, post, delete).<\/p>\n\n\n<div\n\tclass=\"sandbox-embed responsive-embed  sandbox-embed--full-width\"\n\tstyle=\"padding-top: 85%\"\ndata-block-name=\"coderpad-sandbox-embed\">\n\t<iframe src=\"https:\/\/embed.coderpad.io\/sandbox?question_id=254809&#038;use_question_button\" width=\"640\" height=\"544\" loading=\"lazy\" aria-label=\"Try out the CoderPad sandbox\"><\/iframe>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">More interview resources<\/h2>\n\n\n\n<p>Evaluating developers goes beyond assessing their technical prowess. To better gauge their suitability for your team, consider exploring our additional interview guides listed in the Related Posts below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Give your backend candidates realistic coding exercises with these two technical interview questions.<\/p>\n","protected":false},"author":12,"featured_media":35677,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[12],"tags":[],"persona":[27],"blog-programming-language":[33,61],"keyword-cluster":[],"class_list":["post-35671","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-interviewing"],"acf":[],"_links":{"self":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/35671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/comments?post=35671"}],"version-history":[{"count":36,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/35671\/revisions"}],"predecessor-version":[{"id":35740,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/35671\/revisions\/35740"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media\/35677"}],"wp:attachment":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media?parent=35671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/categories?post=35671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/tags?post=35671"},{"taxonomy":"persona","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/persona?post=35671"},{"taxonomy":"blog-programming-language","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/blog-programming-language?post=35671"},{"taxonomy":"keyword-cluster","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/keyword-cluster?post=35671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}