{"id":33922,"date":"2023-05-17T06:20:44","date_gmt":"2023-05-17T13:20:44","guid":{"rendered":"https:\/\/coderpad.io\/?p=33922"},"modified":"2024-04-02T07:01:25","modified_gmt":"2024-04-02T14:01:25","slug":"4-ways-to-use-chatgpt-to-enhance-your-coding-interview-process","status":"publish","type":"post","link":"https:\/\/coderpad.io\/blog\/hiring-developers\/4-ways-to-use-chatgpt-to-enhance-your-coding-interview-process\/","title":{"rendered":"4 ChatGPT Prompt Templates to Enhance Your Coding Interview Process"},"content":{"rendered":"\n<p>Does this sound like your Twitter feed?<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p><em>Blah blah blah ChatGPT blah blah blah AI blah LLM!<\/em> \ud83e\udd16\ud83c\udf0e\ud83d\udca5<\/p>\n<\/blockquote>\n\n\n\n<p>If you have any presence on the internet, you are likely well-acquainted with the discussions surrounding ChatGPT, Bard, and other emerging Large Language Model (LLM) applications.<\/p>\n\n\n\n<p>Although there is much hype around these buzzwords, these tools hold great potential to improve your work processes significantly.<\/p>\n\n\n\n<p>As a coding interview platform, CoderPad is particularly interested in utilizing ChatGPT to enhance the interview process.<\/p>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p><em>We find the modern conversation about the validity of using co-pilot and ChatGPT as a tool in interviewing as a similar conversation to the one we were having decades ago about StackOverflow and Google.&nbsp;&nbsp;&nbsp;<\/em><\/p><cite><em>Amanda Richardson \u2013 CEO of CoderPad<\/em><\/cite><\/blockquote><\/figure>\n\n\n\n<p>We created the <a href=\"https:\/\/coderpad.io\/resources\/docs\/interview\/pads\/chatgpt-integration\/\" target=\"_blank\" rel=\"noreferrer noopener\">CoderPad Interview ChatGPT integration<\/a> to enable interviewers to observe how candidates critically approach problems and utilize modern toolsets. Many users of our ChatGPT integration use it as a collaboration tool during interviews with candidates. They present a question to the candidate and allow them to use the integration as they would Google or StackOverflow.&nbsp;<\/p>\n\n\n\n<p>While the initial goal was to enhance the candidate experience, we\u2019ve also started exploring how ChatGPT can ultimately enhance the hiring manager interview experience too.<\/p>\n\n\n\n<p>One of the primary advantages of LLMs is their ability to automate numerous tedious thought processes. This allows you to focus your critical thinking efforts on more impactful matters, such as determining if a candidate is a suitable cultural fit for your team, guiding your team through a crucial project deadline, or adapting your application architecture to accommodate an unforeseen integration.<\/p>\n\n\n\n<p>So if you\u2019re ready to outsource your tedious work to the new generation of developer tools, check out this list of ways to improve your interview processes with ChatGPT:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#generate-test-data\">Generate test data<\/a><\/li>\n\n\n\n<li><a href=\"#translate-starter-code-snippets-from-one-language-to-another\">Translate starter code snippets from one language to another<\/a><\/li>\n\n\n\n<li><a href=\"#create-test-cases\">Create test cases<\/a><\/li>\n\n\n\n<li><a href=\"#come-up-with-question-ideas\">Come up with question ideas<\/a><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>\u2705 The screenshots below are from CoderPad Interview\u2019s new AI Chat feature. It&#8217;s available to all CoderPad subscribers &#8212; <a href=\"https:\/\/coderpad.io\/resources\/docs\/interview\/pads\/chatgpt-integration\/\" target=\"_blank\" rel=\"noreferrer noopener\">you can find out more about how to access it in your account here<\/a>. If you&#8217;re not yet a CoderPad subscriber, <a href=\"https:\/\/app.coderpad.io\/register\" target=\"_blank\" rel=\"noreferrer noopener\">you can sign up for a free trial<\/a> to access the AI Chat feature.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"generate-test-data\">Generate test data<\/h2>\n\n\n\n<p>Finding data that mimics what you have in production without compromising user data security can be challenging.&nbsp;<\/p>\n\n\n\n<p>And often, even if you have a data set, you must translate it from one format \u2013 like a CSV file \u2013 to another \u2013 like JSON or XML.&nbsp;<\/p>\n\n\n\n<p>You can now save yourself the hassle by having ChatGPT do all that for you. Here&#8217;s the template:<\/p>\n\n\n\n<p><code>Generate [data structure] that contains [number of test data][data type] with randomly generated values for the following keys: [list of keys or fields].<\/code><\/p>\n\n\n\n<p>For example, say I need to mimic some customer data for an eCommerce application assessment. I\u2019d write the following prompt to ChatGPT:<\/p>\n\n\n\n<p><em>Generate a JSON array that contains five JSON objects with randomly generated values for the following keys: \u201cname,\u201d \u201clocation,\u201d \u201cphone,\u201d and \u201ccustomer_id.\u201d<\/em><\/p>\n\n\n\n<p>And GPT auto-magically generates a test array for me:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-14.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"994\" height=\"747\" src=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-14.png\" alt=\"\" class=\"wp-image-33926\" srcset=\"https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-14.png 994w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-14-300x225.png 300w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-14-768x577.png 768w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-14-16x12.png 16w\" sizes=\"auto, (max-width: 994px) 100vw, 994px\" \/><\/a><figcaption class=\"wp-element-caption\">Click to enlarge (this goes for all images in this post).<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Oops, I got my applications mixed up, and I need XML instead. No worries:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-17.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"997\" height=\"730\" src=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-17.png\" alt=\"A screenshot of the chatgpt integration with a response of test data in xml format.\" class=\"wp-image-33929\" srcset=\"https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-17.png 997w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-17-300x220.png 300w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-17-768x562.png 768w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-17-16x12.png 16w\" sizes=\"auto, (max-width: 997px) 100vw, 997px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Perhaps you want it as a CSV too?<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-13.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"993\" height=\"327\" src=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-13.png\" alt=\"A screenshot of the chatgpt integration with a response of test data in CSV format.\" class=\"wp-image-33925\" srcset=\"https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-13.png 993w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-13-300x99.png 300w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-13-768x253.png 768w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-13-18x6.png 18w\" sizes=\"auto, (max-width: 993px) 100vw, 993px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>You can easily add more objects, data fields, and formats.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"translate-starter-code-snippets-from-one-language-to-another\">Translate starter code snippets from one language to another<\/h2>\n\n\n\n<p>Often you don\u2019t mind what languages your candidates are proficient in as long as they know how to code and understand software engineering fundamentals. If this is the case, you\u2019ll usually stick with a <a href=\"https:\/\/coderpad.io\/blog\/interviewing\/language-agnostic-interview-questions\/\" target=\"_blank\" rel=\"noreferrer noopener\">language-agnostic interview question<\/a> where you provide the candidate with a question prompt and allow them to pick a language and answer it from scratch.<\/p>\n\n\n\n<p>However, there may be reasons you don\u2019t want your candidates writing everything from scratch \u2013 maybe you want them to focus on a challenging part of the implementation, or perhaps you want to provide them with starter code to save you both time in the interview.<\/p>\n\n\n\n<p>The problem is, providing starter code for several languages is tedious \u2013 especially if you\u2019ve never used that language before.<\/p>\n\n\n\n<p>But it\u2019s not tedious if you use ChatGTP. <\/p>\n\n\n\n<p>The prompt template is simple:<\/p>\n\n\n\n<p><code>Convert this code to [new programming language] : \"[original code snippet]\".<\/code><\/p>\n\n\n\n<p>Take <a href=\"https:\/\/app.coderpad.io\/sandbox?question_id=222148\" target=\"_blank\" rel=\"noreferrer noopener\">this interview question<\/a>, for example. It asks users to improve the performance of the given code snippet in Python &#8212; but our candidate is more comfortable with JavaScript than Python. <\/p>\n\n\n\n<p>So our prompt would be:<\/p>\n\n\n\n<p><em>Convert this code to Javascript:<\/em><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python shcb-wrap-lines\">&lt;em&gt;<span class=\"hljs-string\">\"import random\n\ndef generate_random_list(n):\n    result = &#91;]\n    for i in range(n):\n        x = random.randint(1,n)\n        if x not in result:\n            result.append(x)\n    return result\n\n## Don't edit testcases below, it's cheating!\n\nimport time\n\n# SMALL TEST\nstart = time.time()\ngenerate_random_list(100)\ntest_time = (time.time() - start) * 1000\nprint(f'Small test took {test_time:.1f} ms')\nassert test_time &lt; 100, 'Too slow!'\n\n# LARGE TEST\nstart = time.time()\ngenerate_random_list(20000)\ntest_time = (time.time() - start) * 1000\nprint(f'Large test took {test_time:.1f} ms')\nassert test_time &lt; 100, 'Too slow!'\"<\/span>\n&lt;\/em&gt;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This is the converted code that ChatGPT produces:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">generateRandomList<\/span>(<span class=\"hljs-params\">n<\/span>) <\/span>{\n  <span class=\"hljs-keyword\">const<\/span> result = &#91;];\n  <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">let<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; n; i++) {\n    <span class=\"hljs-keyword\">const<\/span> x = <span class=\"hljs-built_in\">Math<\/span>.floor(<span class=\"hljs-built_in\">Math<\/span>.random() * n) + <span class=\"hljs-number\">1<\/span>;\n    <span class=\"hljs-keyword\">if<\/span> (!result.includes(x)) {\n      result.push(x);\n    }\n  }\n  <span class=\"hljs-keyword\">return<\/span> result;\n}\n\n<span class=\"hljs-comment\">\/\/ Don't edit testcases below, it's cheating!<\/span>\n\n<span class=\"hljs-comment\">\/\/ SMALL TEST<\/span>\n<span class=\"hljs-keyword\">const<\/span> startSmall = performance.now();\ngenerateRandomList(<span class=\"hljs-number\">100<\/span>);\n<span class=\"hljs-keyword\">const<\/span> testTimeSmall = performance.now() - startSmall;\n<span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">`Small test took <span class=\"hljs-subst\">${testTimeSmall.toFixed(<span class=\"hljs-number\">1<\/span>)}<\/span> ms`<\/span>);\n<span class=\"hljs-keyword\">if<\/span> (testTimeSmall &gt; <span class=\"hljs-number\">100<\/span>) <span class=\"hljs-built_in\">console<\/span>.error(<span class=\"hljs-string\">'Too slow!'<\/span>);\n\n<span class=\"hljs-comment\">\/\/ LARGE TEST<\/span>\n<span class=\"hljs-keyword\">const<\/span> startLarge = performance.now();\ngenerateRandomList(<span class=\"hljs-number\">20000<\/span>);\n<span class=\"hljs-keyword\">const<\/span> testTimeLarge = performance.now() - startLarge;\n<span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">`Large test took <span class=\"hljs-subst\">${testTimeLarge.toFixed(<span class=\"hljs-number\">1<\/span>)}<\/span> ms`<\/span>);\n<span class=\"hljs-keyword\">if<\/span> (testTimeLarge &gt; <span class=\"hljs-number\">100<\/span>) <span class=\"hljs-built_in\">console<\/span>.error(<span class=\"hljs-string\">'Too slow!'<\/span>);\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>And here\u2019s what it looks like if we replaced &#8220;JavaScript&#8221; in our prompt with the relatively obscure &#8220;OCaml&#8221; language:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"OCaml\" data-shcb-language-slug=\"ocaml\"><span><code class=\"hljs language-ocaml shcb-wrap-lines\"><span class=\"hljs-keyword\">open<\/span> <span class=\"hljs-type\">Printf<\/span>\n<span class=\"hljs-keyword\">open<\/span> <span class=\"hljs-type\">Random<\/span>\n\n<span class=\"hljs-keyword\">let<\/span> generate_random_list n =\n  <span class=\"hljs-keyword\">let<\/span> <span class=\"hljs-keyword\">rec<\/span> aux result count =\n    <span class=\"hljs-keyword\">if<\/span> count &lt; n <span class=\"hljs-keyword\">then<\/span>\n      <span class=\"hljs-keyword\">let<\/span> x = <span class=\"hljs-number\">1<\/span> + <span class=\"hljs-type\">Random<\/span>.<span class=\"hljs-built_in\">int<\/span> n <span class=\"hljs-keyword\">in<\/span>\n      <span class=\"hljs-keyword\">if<\/span> not (<span class=\"hljs-type\">List<\/span>.mem x result) <span class=\"hljs-keyword\">then<\/span>\n        aux (x :: result) (count + <span class=\"hljs-number\">1<\/span>)\n      <span class=\"hljs-keyword\">else<\/span>\n        aux result count\n    <span class=\"hljs-keyword\">else<\/span>\n      result\n  <span class=\"hljs-keyword\">in<\/span>\n  aux <span class=\"hljs-literal\">&#91;]<\/span> <span class=\"hljs-number\">0<\/span>\n\n<span class=\"hljs-comment\">(* Don't edit testcases below, it's cheating! *)<\/span>\n\n<span class=\"hljs-comment\">(* SMALL TEST *)<\/span>\n<span class=\"hljs-keyword\">let<\/span> <span class=\"hljs-literal\">()<\/span> =\n  <span class=\"hljs-keyword\">let<\/span> start = <span class=\"hljs-type\">Unix<\/span>.gettimeofday <span class=\"hljs-literal\">()<\/span> <span class=\"hljs-keyword\">in<\/span>\n  <span class=\"hljs-keyword\">let<\/span> _ = generate_random_list <span class=\"hljs-number\">100<\/span> <span class=\"hljs-keyword\">in<\/span>\n  <span class=\"hljs-keyword\">let<\/span> test_time = (<span class=\"hljs-type\">Unix<\/span>.gettimeofday <span class=\"hljs-literal\">()<\/span> -. start) *. <span class=\"hljs-number\">1000.0<\/span> <span class=\"hljs-keyword\">in<\/span>\n  printf <span class=\"hljs-string\">\"Small test took %.1f ms\\n\"<\/span> test_time;\n  <span class=\"hljs-keyword\">if<\/span> test_time &gt; <span class=\"hljs-number\">100.0<\/span> <span class=\"hljs-keyword\">then<\/span> print_endline <span class=\"hljs-string\">\"Too slow!\"<\/span>\n\n<span class=\"hljs-comment\">(* LARGE TEST *)<\/span>\n<span class=\"hljs-keyword\">let<\/span> <span class=\"hljs-literal\">()<\/span> =\n  <span class=\"hljs-keyword\">let<\/span> start = <span class=\"hljs-type\">Unix<\/span>.gettimeofday <span class=\"hljs-literal\">()<\/span> <span class=\"hljs-keyword\">in<\/span>\n  <span class=\"hljs-keyword\">let<\/span> _ = generate_random_list <span class=\"hljs-number\">20000<\/span> <span class=\"hljs-keyword\">in<\/span>\n  <span class=\"hljs-keyword\">let<\/span> test_time = (<span class=\"hljs-type\">Unix<\/span>.gettimeofday <span class=\"hljs-literal\">()<\/span> -. start) *. <span class=\"hljs-number\">1000.0<\/span> <span class=\"hljs-keyword\">in<\/span>\n  printf <span class=\"hljs-string\">\"Large test took %.1f ms\\n\"<\/span> test_time;\n  <span class=\"hljs-keyword\">if<\/span> test_time &gt; <span class=\"hljs-number\">100.0<\/span> <span class=\"hljs-keyword\">then<\/span> print_endline <span class=\"hljs-string\">\"Too slow!\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">OCaml<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">ocaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The hardest part is coming up with the original starter code. After that, it\u2019s a matter of seconds for ChatGPT to convert the code to another language. How\u2019s that for a time saver?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"create-test-cases\">Create test cases&nbsp;<\/h2>\n\n\n\n<p>Already have an interview question in mind but don\u2019t want to spend time working out the test cases to validate your candidates\u2019 code? Use ChatGPT.<\/p>\n\n\n\n<p>For the template, use: <\/p>\n\n\n\n<p><code>Create a test case for the technical interview question and starter code below. The question is in the format of a comment at the top of the code snippet: \"[code snippet you need test cases for]\".<\/code><\/p>\n\n\n\n<p>I plugged this <a href=\"https:\/\/coderpad.io\/blog\/coding-challenges\/tiny-interview-python-image-rotation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Code Challenge question<\/a> into ChatGPT and asked it to give me test cases. You&#8217;ll need to include the instructions as comments at the top of the starter code:<\/p>\n\n\n\n<p><em>Create a test case for the technical interview question and starter code below. The question is in the format of a comment at the top of the code snippet:<\/em><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">&lt;em&gt;<span class=\"hljs-string\">''<\/span><span class=\"hljs-string\">'\nThis function is supposed to rotate a square matrix clockwise, but it is not behaving as expected. Can you take a look?\nBonus points if you can keep the computation in-place, without significant extra memory (you can declare a few variables but not a whole new array )\n'<\/span><span class=\"hljs-string\">''<\/span>\n\ndef rotate_in_place(matrix):\n    n = len(matrix)\n    <span class=\"hljs-keyword\">for<\/span> r in range(n):\n        <span class=\"hljs-keyword\">for<\/span> c in range(n):\n            matrix&#91;r]&#91;c] = matrix&#91;n-c<span class=\"hljs-number\">-1<\/span>]&#91;r]\n\nMATRIX1 = &#91;\n    &#91; <span class=\"hljs-number\">1<\/span>,  <span class=\"hljs-number\">2<\/span>,  <span class=\"hljs-number\">3<\/span>,  <span class=\"hljs-number\">4<\/span>],\n    &#91; <span class=\"hljs-number\">5<\/span>,  <span class=\"hljs-number\">6<\/span>,  <span class=\"hljs-number\">7<\/span>,  <span class=\"hljs-number\">8<\/span>],\n    &#91; <span class=\"hljs-number\">9<\/span>, <span class=\"hljs-number\">10<\/span>, <span class=\"hljs-number\">11<\/span>, <span class=\"hljs-number\">12<\/span>],\n    &#91;<span class=\"hljs-number\">13<\/span>, <span class=\"hljs-number\">14<\/span>, <span class=\"hljs-number\">15<\/span>, <span class=\"hljs-number\">16<\/span>]\n]\n\nEXPECTED1 = &#91;\n    &#91;<span class=\"hljs-number\">13<\/span>,  <span class=\"hljs-number\">9<\/span>,  <span class=\"hljs-number\">5<\/span>,  <span class=\"hljs-number\">1<\/span>],\n    &#91;<span class=\"hljs-number\">14<\/span>, <span class=\"hljs-number\">10<\/span>,  <span class=\"hljs-number\">6<\/span>,  <span class=\"hljs-number\">2<\/span>],\n    &#91;<span class=\"hljs-number\">15<\/span>, <span class=\"hljs-number\">11<\/span>,  <span class=\"hljs-number\">7<\/span>,  <span class=\"hljs-number\">3<\/span>],\n    &#91;<span class=\"hljs-number\">16<\/span>, <span class=\"hljs-number\">12<\/span>,  <span class=\"hljs-number\">8<\/span>,  <span class=\"hljs-number\">4<\/span>]\n]\n\nMATRIX2 = &#91;\n    &#91; <span class=\"hljs-number\">1<\/span>,  <span class=\"hljs-number\">2<\/span>,  <span class=\"hljs-number\">3<\/span>,  <span class=\"hljs-number\">4<\/span>,  <span class=\"hljs-number\">5<\/span>,  <span class=\"hljs-number\">6<\/span>,  <span class=\"hljs-number\">7<\/span>],\n    &#91; <span class=\"hljs-number\">8<\/span>,  <span class=\"hljs-number\">9<\/span>, <span class=\"hljs-number\">10<\/span>, <span class=\"hljs-number\">11<\/span>, <span class=\"hljs-number\">12<\/span>, <span class=\"hljs-number\">13<\/span>, <span class=\"hljs-number\">14<\/span>],\n    &#91;<span class=\"hljs-number\">15<\/span>, <span class=\"hljs-number\">16<\/span>, <span class=\"hljs-number\">17<\/span>, <span class=\"hljs-number\">18<\/span>, <span class=\"hljs-number\">19<\/span>, <span class=\"hljs-number\">20<\/span>, <span class=\"hljs-number\">21<\/span>],\n    &#91;<span class=\"hljs-number\">22<\/span>, <span class=\"hljs-number\">23<\/span>, <span class=\"hljs-number\">24<\/span>, <span class=\"hljs-number\">25<\/span>, <span class=\"hljs-number\">26<\/span>, <span class=\"hljs-number\">27<\/span>, <span class=\"hljs-number\">28<\/span>],\n    &#91;<span class=\"hljs-number\">29<\/span>, <span class=\"hljs-number\">30<\/span>, <span class=\"hljs-number\">31<\/span>, <span class=\"hljs-number\">32<\/span>, <span class=\"hljs-number\">33<\/span>, <span class=\"hljs-number\">34<\/span>, <span class=\"hljs-number\">35<\/span>],\n    &#91;<span class=\"hljs-number\">36<\/span>, <span class=\"hljs-number\">37<\/span>, <span class=\"hljs-number\">38<\/span>, <span class=\"hljs-number\">39<\/span>, <span class=\"hljs-number\">40<\/span>, <span class=\"hljs-number\">41<\/span>, <span class=\"hljs-number\">42<\/span>],\n    &#91;<span class=\"hljs-number\">43<\/span>, <span class=\"hljs-number\">44<\/span>, <span class=\"hljs-number\">45<\/span>, <span class=\"hljs-number\">46<\/span>, <span class=\"hljs-number\">47<\/span>, <span class=\"hljs-number\">48<\/span>, <span class=\"hljs-number\">49<\/span>]\n]\n\nEXPECTED2 = &#91;\n    &#91;<span class=\"hljs-number\">43<\/span>, <span class=\"hljs-number\">36<\/span>, <span class=\"hljs-number\">29<\/span>, <span class=\"hljs-number\">22<\/span>, <span class=\"hljs-number\">15<\/span>,  <span class=\"hljs-number\">8<\/span>,  <span class=\"hljs-number\">1<\/span>],\n    &#91;<span class=\"hljs-number\">44<\/span>, <span class=\"hljs-number\">37<\/span>, <span class=\"hljs-number\">30<\/span>, <span class=\"hljs-number\">23<\/span>, <span class=\"hljs-number\">16<\/span>,  <span class=\"hljs-number\">9<\/span>,  <span class=\"hljs-number\">2<\/span>],\n    &#91;<span class=\"hljs-number\">45<\/span>, <span class=\"hljs-number\">38<\/span>, <span class=\"hljs-number\">31<\/span>, <span class=\"hljs-number\">24<\/span>, <span class=\"hljs-number\">17<\/span>, <span class=\"hljs-number\">10<\/span>,  <span class=\"hljs-number\">3<\/span>],\n    &#91;<span class=\"hljs-number\">46<\/span>, <span class=\"hljs-number\">39<\/span>, <span class=\"hljs-number\">32<\/span>, <span class=\"hljs-number\">25<\/span>, <span class=\"hljs-number\">18<\/span>, <span class=\"hljs-number\">11<\/span>,  <span class=\"hljs-number\">4<\/span>],\n    &#91;<span class=\"hljs-number\">47<\/span>, <span class=\"hljs-number\">40<\/span>, <span class=\"hljs-number\">33<\/span>, <span class=\"hljs-number\">26<\/span>, <span class=\"hljs-number\">19<\/span>, <span class=\"hljs-number\">12<\/span>,  <span class=\"hljs-number\">5<\/span>],\n    &#91;<span class=\"hljs-number\">48<\/span>, <span class=\"hljs-number\">41<\/span>, <span class=\"hljs-number\">34<\/span>, <span class=\"hljs-number\">27<\/span>, <span class=\"hljs-number\">20<\/span>, <span class=\"hljs-number\">13<\/span>,  <span class=\"hljs-number\">6<\/span>],\n    &#91;<span class=\"hljs-number\">49<\/span>, <span class=\"hljs-number\">42<\/span>, <span class=\"hljs-number\">35<\/span>, <span class=\"hljs-number\">28<\/span>, <span class=\"hljs-number\">21<\/span>, <span class=\"hljs-number\">14<\/span>,  <span class=\"hljs-number\">7<\/span>]\n]&lt;\/em&gt;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This is the test function ChatGPT responded with:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">def test_rotate_in_place():\n    test_cases = &#91;\n        (MATRIX1, EXPECTED1),\n        (MATRIX2, EXPECTED2)\n    ]\n\n    <span class=\"hljs-keyword\">for<\/span> matrix, expected in test_cases:\n        rotate_in_place(matrix)\n        assert matrix == expected, f<span class=\"hljs-string\">\"Expected: {expected}, but got: {matrix}\"<\/span>\n\n    <span class=\"hljs-keyword\">print<\/span>(<span class=\"hljs-string\">\"All test cases passed.\"<\/span>)\n\ntest_rotate_in_place()\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You may have to reframe your prompts if you have a particularly complex use case you want to test for, as often ChatGPT will generate boilerplate code but will not generate specifics without prompting.&nbsp;<\/p>\n\n\n\n<p>In other words, it may not consider non-obvious or nuanced edge cases, and you may need to provide it with feedback so that it can generate the code necessary to test those edge cases. Even then, though, you\u2019ll still probably spend less time writing the code for those test cases than you would without ChatGPT.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"come-up-with-question-ideas\">Come up with question ideas<\/h2>\n\n\n\n<p>One of the hardest parts of any interview is coming up with the questions themselves. But if you have a general idea of what you want to assess for, ChatGPT can help you come up with some questions.<\/p>\n\n\n\n<p>The key with prompt creation is 1) to be specific and 2) to reframe the question to get the response if the first few tries aren\u2019t precisely what you\u2019re looking for. Take this initial prompt:<\/p>\n\n\n\n<p><em>\u201cGenerate five technical interview questions to assess a senior react developer&#8217;s ability to work with an eCommerce application that stores data in a MongoDB database. These questions should require the developer to demonstrate their coding and critical thinking skills. \u201c<\/em><\/p>\n\n\n\n<p>Here\u2019s what ChatGPT produced:&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-16.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"329\" src=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-16-1024x329.png\" alt=\"How would you design the React component structure for an eCommerce application with product listing, product details, shopping cart, and checkout features? Please explain the reasoning behind your choices, and discuss the use of class components, functional components, and hooks.\n\nImagine you need to implement a product search feature that provides autocomplete suggestions as the user types in a search query. Describe your approach to implementing this feature in React, considering performance and user experience. How would you handle debouncing and fetching data from the MongoDB database?\n\nIn an eCommerce application, it's important to ensure that the shopping cart remains consistent across different devices and sessions for a logged-in user. How would you manage the state of the shopping cart in a React application? Discuss your approach to persisting the cart data, synchronizing it with the MongoDB database, and handling potential conflicts.\n\nOur eCommerce application has a dashboard for sellers to manage their products, orders, and customer information. Implement a higher-order component (HOC) or custom hook to handle user authentication and authorization, ensuring that only users with the &quot;seller&quot; role can access the dashboard. How would you manage server-side authentication and role-based access control using the data stored in MongoDB?\n\nAs the application grows, performance optimization becomes critical. Describe your approach to optimizing the performance of the eCommerce React application, considering techniques like lazy loading, code splitting, and memoization. How would you leverage the MongoDB database to improve the performance of queries and data retrieval?\" class=\"wp-image-33928\" srcset=\"https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-16-1024x329.png 1024w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-16-300x97.png 300w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-16-768x247.png 768w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-16-18x6.png 18w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-16.png 1063w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Not bad, but I want the questions to be framed so that the candidate understands that they need to code to solve it. So I responded with:&nbsp;<\/p>\n\n\n\n<p><em>\u201cReframe these questions to imply that the candidate needs to answer the questions by writing code in an IDE.\u201d<\/em><\/p>\n\n\n\n<p>The response:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-15.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"341\" src=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/05\/image-15-1024x341.png\" alt=\"\nWrite a sample React component structure for an eCommerce application with product listing, product details, shopping cart, and checkout features. Use class components, functional components, and hooks where appropriate, and include comments to explain the reasoning behind your choices.\n\nImplement a product search component in React that provides autocomplete suggestions as the user types in a search query. Demonstrate how you would handle debouncing and fetching data from the MongoDB database in your implementation. Include comments to address performance and user experience considerations.\n\nImplement a shopping cart component in a React application that remains consistent across different devices and sessions for a logged-in user. Write code to manage the state of the shopping cart, persist the cart data, synchronize it with the MongoDB database, and handle potential conflicts.\n\nCreate a higher-order component (HOC) or custom hook to handle user authentication and authorization in a seller dashboard, ensuring that only users with the &quot;seller&quot; role can access the dashboard. Demonstrate how you would manage server-side authentication and role-based access control using the data stored in MongoDB.\n\nAssume you have an existing eCommerce React application. Write code samples to demonstrate how you would optimize its performance using techniques like lazy loading, code splitting, and memoization. Additionally, provide code examples to show how you would leverage the MongoDB database to improve the performance of queries and data retrieval.\" class=\"wp-image-33927\" srcset=\"https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-15-1024x341.png 1024w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-15-300x100.png 300w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-15-768x256.png 768w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-15-18x6.png 18w, https:\/\/coderpad.io\/wp-content\/uploads\/2023\/05\/image-15.png 1060w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Much better! I knew some questions would be better than others, which is why I prompted it for five questions rather than just one.<\/p>\n\n\n\n<p>So the final template to generate interview questions will be:<\/p>\n\n\n\n<p><code>Generate [desired number of questions] technical interview questions to assess a [job level][job title]'s ability to work with a(n) [type of application the candidate will be working with] application that [add any other business logic or tech stack info you'd like to assess the candidate on]. These questions should require the developer to demonstrate their coding and critical thinking skills. These questions should to imply that the candidate needs to answer the questions by writing code in an IDE.<\/code><\/p>\n\n\n\n<p>Even with these templates you may need to reframe prompts more than once &#8212; and that&#8217;s okay! This is still a pretty new technology and it&#8217;s going to take time to figure out the best way to get the answers you want.<\/p>\n\n\n\n<p>Of course we&#8217;re not finished saving ourselves time with ChatGPT.<\/p>\n\n\n\n<p>To continue from our example above, let\u2019s say I want to use the customer review question that ChatGPT provided in my upcoming technical interview. I probably want to include some starter code so the candidate isn\u2019t wasting their time with trivial coding tasks \u2013 I want them to get straight into the stuff that will test their critical thinking.&nbsp;<\/p>\n\n\n\n<p>Save yourself some time and have ChatGPT write that starter code for you:<\/p>\n\n\n\n<p><em>Write the scaffolding code for the third question that the candidate will need to flush out to complete.<\/em><\/p>\n\n\n\n<p>The response:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-keyword\">import<\/span> React, { useState } <span class=\"hljs-keyword\">from<\/span> <span class=\"hljs-string\">'react'<\/span>;\n\n<span class=\"hljs-keyword\">const<\/span> ReviewForm = <span class=\"hljs-function\">(<span class=\"hljs-params\">props<\/span>) =&gt;<\/span> {\n  <span class=\"hljs-keyword\">const<\/span> &#91;name, setName] = useState(<span class=\"hljs-string\">''<\/span>);\n  <span class=\"hljs-keyword\">const<\/span> &#91;rating, setRating] = useState(<span class=\"hljs-string\">''<\/span>);\n  <span class=\"hljs-keyword\">const<\/span> &#91;comment, setComment] = useState(<span class=\"hljs-string\">''<\/span>);\n\n  <span class=\"hljs-keyword\">const<\/span> submitHandler = <span class=\"hljs-function\">(<span class=\"hljs-params\">e<\/span>) =&gt;<\/span> {\n    e.preventDefault();\n    <span class=\"hljs-comment\">\/\/ Write code to submit the review data to the server and update the state for reviews<\/span>\n    setName(<span class=\"hljs-string\">''<\/span>);\n    setRating(<span class=\"hljs-string\">''<\/span>);\n    setComment(<span class=\"hljs-string\">''<\/span>);\n  };\n\n  <span class=\"hljs-keyword\">return<\/span> (\n    <span class=\"xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">h2<\/span>&gt;<\/span>Write a customer review<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">h2<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">form<\/span> <span class=\"hljs-attr\">onSubmit<\/span>=<span class=\"hljs-string\">{submitHandler}<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n          <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">label<\/span> <span class=\"hljs-attr\">htmlFor<\/span>=<span class=\"hljs-string\">\"name\"<\/span>&gt;<\/span>Name<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">label<\/span>&gt;<\/span>\n          <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">input<\/span>\n            <span class=\"hljs-attr\">type<\/span>=<span class=\"hljs-string\">\"text\"<\/span>\n            <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"name\"<\/span>\n            <span class=\"hljs-attr\">placeholder<\/span>=<span class=\"hljs-string\">\"Enter name\"<\/span>\n            <span class=\"hljs-attr\">value<\/span>=<span class=\"hljs-string\">{name}<\/span>\n            <span class=\"hljs-attr\">onChange<\/span>=<span class=\"hljs-string\">{(e)<\/span> =&gt;<\/span> setName(e.target.value)}\n            required\n          &gt;<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">input<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n          <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">label<\/span> <span class=\"hljs-attr\">htmlFor<\/span>=<span class=\"hljs-string\">\"rating\"<\/span>&gt;<\/span>Rating<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">label<\/span>&gt;<\/span>\n          <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">select<\/span>\n            <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"rating\"<\/span>\n            <span class=\"hljs-attr\">value<\/span>=<span class=\"hljs-string\">{rating}<\/span>\n            <span class=\"hljs-attr\">onChange<\/span>=<span class=\"hljs-string\">{(e)<\/span> =&gt;<\/span> setRating(e.target.value)}\n            required\n          &gt;\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">option<\/span> <span class=\"hljs-attr\">value<\/span>=<span class=\"hljs-string\">\"\"<\/span>&gt;<\/span>Select<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">option<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">option<\/span> <span class=\"hljs-attr\">value<\/span>=<span class=\"hljs-string\">\"1\"<\/span>&gt;<\/span>1 - Poor<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">option<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">option<\/span> <span class=\"hljs-attr\">value<\/span>=<span class=\"hljs-string\">\"2\"<\/span>&gt;<\/span>2 - Fair<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">option<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">option<\/span> <span class=\"hljs-attr\">value<\/span>=<span class=\"hljs-string\">\"3\"<\/span>&gt;<\/span>3 - Good<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">option<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">option<\/span> <span class=\"hljs-attr\">value<\/span>=<span class=\"hljs-string\">\"4\"<\/span>&gt;<\/span>4 - Very Good<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">option<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">option<\/span> <span class=\"hljs-attr\">value<\/span>=<span class=\"hljs-string\">\"5\"<\/span>&gt;<\/span>5 - Excellent<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">option<\/span>&gt;<\/span>\n          <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">select<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n          <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">label<\/span> <span class=\"hljs-attr\">htmlFor<\/span>=<span class=\"hljs-string\">\"comment\"<\/span>&gt;<\/span>Comment<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">label<\/span>&gt;<\/span>\n          <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">textarea<\/span>\n            <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"comment\"<\/span>\n            <span class=\"hljs-attr\">value<\/span>=<span class=\"hljs-string\">{comment}<\/span>\n            <span class=\"hljs-attr\">onChange<\/span>=<span class=\"hljs-string\">{(e)<\/span> =&gt;<\/span> setComment(e.target.value)}\n            required\n          &gt;<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">textarea<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">button<\/span> <span class=\"hljs-attr\">type<\/span>=<span class=\"hljs-string\">\"submit\"<\/span>&gt;<\/span>Submit review<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">button<\/span>&gt;<\/span>\n      <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">form<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span><\/span>\n  );\n};\n\n<span class=\"hljs-keyword\">export<\/span> <span class=\"hljs-keyword\">default<\/span> ReviewForm;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Boom. You just saved yourself a few hours (at least!) worth of work with just a few simple prompts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Is that all?<\/h2>\n\n\n\n<p>Absolutely not! CoderPad is trailblazing the use of ChatGPT in interviews, but we\u2019ve only scratched the surface regarding how you can use it in interviews.&nbsp;<\/p>\n\n\n\n<p>If you\u2019re a CoderPad subscriber and have used ChatGPT in your interviews, <a href=\"mailto:support@coderpad.io\" target=\"_blank\" rel=\"noreferrer noopener\">we\u2019d love to hear how YOU have been using it<\/a> so we can share it with other CoderPad members.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>\ud83c\udd93If you\u2019re not currently using CoderPad, we\u2019d encourage you to sign up for a <a href=\"https:\/\/app.coderpad.io\/register\" target=\"_blank\" rel=\"noreferrer noopener\">free trial<\/a>, give the ChatGPT integration a try, and let us know how it goes.<\/p>\n<\/blockquote>\n\n\n\n<p>We look forward to seeing how ChatGPT makes your interviewing experience better!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to easily streamline your coding interviews with ChatGPT.<\/p>\n","protected":false},"author":12,"featured_media":39450,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[23],"tags":[],"persona":[27],"blog-programming-language":[],"keyword-cluster":[],"class_list":["post-33922","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hiring-developers"],"acf":[],"_links":{"self":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/33922","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=33922"}],"version-history":[{"count":53,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/33922\/revisions"}],"predecessor-version":[{"id":34456,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/33922\/revisions\/34456"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media\/39450"}],"wp:attachment":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media?parent=33922"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/categories?post=33922"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/tags?post=33922"},{"taxonomy":"persona","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/persona?post=33922"},{"taxonomy":"blog-programming-language","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/blog-programming-language?post=33922"},{"taxonomy":"keyword-cluster","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/keyword-cluster?post=33922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}