How to recruit software developers in an age where everybody studies for the interview?












3














As a recruiter, I find it increasingly hard to recruit good software developers, due to the fact that it has become very easy to simply study for a job interview by reading any of those 14020 job interview questions for the software developer! books that are immensely popular these days.



It's gotten to the point where you pretty much can't ask a question without the applicant already having pre-studied at least a version of that same task and hence knows, roughly, what the solution is.



Now, this would of course not be a problem if knowledge of those problems is what we are looking for ... except, that isn't what we are looking for. Nobody cares if you know how to apply quicksort to some contrived, made-up example. The point isn't that you know how to solve those problems, the point is that you can figure it out. It's problem-solvers that we want, not problem-memorizers.



Because, once you actually get the job, you'll most likely never run into any of those problems from the job interview book again, so it's not your ability to memorize their solutions that matters, it's your ability to come up with a solution on the spot that is valuable. And yet, that is no longer testable, due to all these memorizers that read interview questions over and over.



How do we fix this issue? Because I am frankly tired of hiring promising software developers who answer each question perfectly in job interview questions, and then when you actually see them code in a real-world situation, you realize how little they actually know.










share|improve this question







New contributor




Indu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • While it's true that understanding the underlying problem and solve it is relatively better than memorizing it, having a candidate that thoroughly prepared his interview and is ready to answer any question is also a good indicator.
    – Cris
    1 hour ago
















3














As a recruiter, I find it increasingly hard to recruit good software developers, due to the fact that it has become very easy to simply study for a job interview by reading any of those 14020 job interview questions for the software developer! books that are immensely popular these days.



It's gotten to the point where you pretty much can't ask a question without the applicant already having pre-studied at least a version of that same task and hence knows, roughly, what the solution is.



Now, this would of course not be a problem if knowledge of those problems is what we are looking for ... except, that isn't what we are looking for. Nobody cares if you know how to apply quicksort to some contrived, made-up example. The point isn't that you know how to solve those problems, the point is that you can figure it out. It's problem-solvers that we want, not problem-memorizers.



Because, once you actually get the job, you'll most likely never run into any of those problems from the job interview book again, so it's not your ability to memorize their solutions that matters, it's your ability to come up with a solution on the spot that is valuable. And yet, that is no longer testable, due to all these memorizers that read interview questions over and over.



How do we fix this issue? Because I am frankly tired of hiring promising software developers who answer each question perfectly in job interview questions, and then when you actually see them code in a real-world situation, you realize how little they actually know.










share|improve this question







New contributor




Indu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • While it's true that understanding the underlying problem and solve it is relatively better than memorizing it, having a candidate that thoroughly prepared his interview and is ready to answer any question is also a good indicator.
    – Cris
    1 hour ago














3












3








3







As a recruiter, I find it increasingly hard to recruit good software developers, due to the fact that it has become very easy to simply study for a job interview by reading any of those 14020 job interview questions for the software developer! books that are immensely popular these days.



It's gotten to the point where you pretty much can't ask a question without the applicant already having pre-studied at least a version of that same task and hence knows, roughly, what the solution is.



Now, this would of course not be a problem if knowledge of those problems is what we are looking for ... except, that isn't what we are looking for. Nobody cares if you know how to apply quicksort to some contrived, made-up example. The point isn't that you know how to solve those problems, the point is that you can figure it out. It's problem-solvers that we want, not problem-memorizers.



Because, once you actually get the job, you'll most likely never run into any of those problems from the job interview book again, so it's not your ability to memorize their solutions that matters, it's your ability to come up with a solution on the spot that is valuable. And yet, that is no longer testable, due to all these memorizers that read interview questions over and over.



How do we fix this issue? Because I am frankly tired of hiring promising software developers who answer each question perfectly in job interview questions, and then when you actually see them code in a real-world situation, you realize how little they actually know.










share|improve this question







New contributor




Indu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











As a recruiter, I find it increasingly hard to recruit good software developers, due to the fact that it has become very easy to simply study for a job interview by reading any of those 14020 job interview questions for the software developer! books that are immensely popular these days.



It's gotten to the point where you pretty much can't ask a question without the applicant already having pre-studied at least a version of that same task and hence knows, roughly, what the solution is.



Now, this would of course not be a problem if knowledge of those problems is what we are looking for ... except, that isn't what we are looking for. Nobody cares if you know how to apply quicksort to some contrived, made-up example. The point isn't that you know how to solve those problems, the point is that you can figure it out. It's problem-solvers that we want, not problem-memorizers.



Because, once you actually get the job, you'll most likely never run into any of those problems from the job interview book again, so it's not your ability to memorize their solutions that matters, it's your ability to come up with a solution on the spot that is valuable. And yet, that is no longer testable, due to all these memorizers that read interview questions over and over.



How do we fix this issue? Because I am frankly tired of hiring promising software developers who answer each question perfectly in job interview questions, and then when you actually see them code in a real-world situation, you realize how little they actually know.







software-industry recruitment






share|improve this question







New contributor




Indu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




Indu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




Indu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 3 hours ago









Indu

191




191




New contributor




Indu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Indu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Indu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • While it's true that understanding the underlying problem and solve it is relatively better than memorizing it, having a candidate that thoroughly prepared his interview and is ready to answer any question is also a good indicator.
    – Cris
    1 hour ago


















  • While it's true that understanding the underlying problem and solve it is relatively better than memorizing it, having a candidate that thoroughly prepared his interview and is ready to answer any question is also a good indicator.
    – Cris
    1 hour ago
















While it's true that understanding the underlying problem and solve it is relatively better than memorizing it, having a candidate that thoroughly prepared his interview and is ready to answer any question is also a good indicator.
– Cris
1 hour ago




While it's true that understanding the underlying problem and solve it is relatively better than memorizing it, having a candidate that thoroughly prepared his interview and is ready to answer any question is also a good indicator.
– Cris
1 hour ago










6 Answers
6






active

oldest

votes


















5














Provide the candidate with a genuine programming test in the interview - a laptop hooked up to a projector with a broken project, with a mixture of basic to complex bugs, and ask them to add some functionality, again ranging from basic to moderately complex. This is something nobody can really study for and will actually provide a showcase of their skills. Have technical people there talking to the candidate to get a feel for their personality and how they approach the problems faced.



For the job interview for my current role, I had spent 2 weeks studying programming principles, design patterns, database stuff etc. I was able to answer all the theoretical questions well and think I came across well



I was then handed a laptop which was connected up to the projector and shown a solution which contained a broken website with a defined number of errors which I had to debug and add some simple functionality. While I wasn't very familiar with the front-end framework used by the company, I was able to fix about half the bugs and then give my best guess as to what the causes were for the remaining bugs based on what I could see, and this was good enough to get me in the door.



The whole thing, between the theoretical questions and the website debugging session lasted about 2 hours.






share|improve this answer































    2














    Use Whiteboard interviews, and ask problems which are related to the skills and business domain that you're interested in. Look for people that you can work with, even if they aren't perfect matches for the position, because you can always train the right person if they have potential. Ask existing employees for recommendations (and offer a finders-fee)






    share|improve this answer

















    • 2




      Pete, I fear that OP is indeed talking about whiteboard-type problems!
      – Fattie
      2 hours ago






    • 1




      @Fattie - Yep - but a good thing with whiteboard interviews rather than take-away coding tests is that you can change the parameters halfway through the question to throw a spanner in the works
      – PeteCon
      2 hours ago



















    1














    Welcome new user, I've come to believe that the only way to hire software engineers is




    • Just hire and pay them for a week or two on a project.


    I think that's it.



    It's the only way to know.



    Everything else is useless.



    The amount of time/money you'll spend on the sundry alternatives ... might as well just put them on the job for a week.



    (Depending on your style and project, you might hire 'em for a time period (a week) or some "task" for $x. Either way.)



    If you consistently take this approach, you'll likely find after a year or two that, the money you wasted doing this approach, was indeed far less than the sundry other costs of search and hiring.






    share|improve this answer

















    • 3




      Hopefully you mean as an off-hours contract project. Or as a final check after a meaningful selection process. Otherwise routinely making your selection only after bringing people onboard as employees is terrible for all concerned - it's expensive of both money and on-boarding effort, and it means often asking people to leave an existing job for a very uncertain alternative.
      – Chris Stratton
      2 hours ago










    • I mean .. we do pretty well, Chris? Regarding your idea that it's "expensive" - it's incredibly cheap. (No need to copy and paste what I wrote in the answer.)
      – Fattie
      1 hour ago










    • This may require that the candidate quit his or her current job to try out yours. This may not be bad if you want to hire from the unemployed only, but you're leaving some very promising people wondering "Why should I (quit my job/spend a full week of time off) just to interview?".
      – David Thornley
      1 min ago



















    1














    After getting through enough basic questions to show that they have some minimal (by my needs) ability to write code, I move on to the tougher part of the interview, based on two subject areas, their work and my work.



    Ask for information about a recent project at their current job. Even with respect to NDAs and IP restrictions, they should be able to explain the business problem, the complexity of the problems and how they overcame them. If they can't explain their own work to me so that I can understand and evaluate, then I worry about how successful they will be.



    Ask them to white board a design/solution to one of your current problems. The expectation should not be a working solution but how they approach the problem. Provide enough information that they have a high level scope for the problem. They should ask good questions, and you should provide good answers so they can proceed. They should be able to sketch out some sort of solution. In the end their solution may not work out, but you will be able to see how they work on a problem and whether or not they should be able to work on the projects you will have.






    share|improve this answer





























      1















      • Have multiple interviewers. Your strongest engineers on the team should participate in the interview process - they definitely want to work with people better than the one's that are struggling, right?


      • Ask an open ended design question. for a problem of medium complexity. Ask the candidate to write out the header file, class declarations, box diagrams, etc... Does the candidate ask clarifying questions? After he's done with a basic design, introduce a new requirement that would break his design. Is he able to pivot? Pick one part of his design and probe deeper.



      • Ask a question that probes if they have a deep understanding of the platform fundamentals. Some examples I've asked.




        • "How does the C++ compiler implement virtual methods?"

        • "How do closures work in Javascript?"

        • "Explain when you would ever want to use UDP instead of TCP."

        • "After you type a www.foo.com into a browser address bar, tell me about all the network activity and protocols involved to get the content on the screen."



      • Probe for genuine interest in programming. "Tell me about a program you wrote for fun that wasn't for work or school." A good candidate will tell you about an app, website, or hack that he did for his own personal pleasure. A weaker candidate will only tell you about the program he wrote to figure something out for work/school.







      share|improve this answer





























        0














        In some ways, studying for the interview is a good thing. You probably already ask that people study about four years in a University to prepare for the interview.



        Now, if your interviewing process is scripted, and the script lacks any kind of variation, then it is just a matter of time before the answers become memorized in the population. Solutions include:




        1. As questions that are generated, with variable fields that require the work to be done specific to this asking of the question.

        2. Change the question set from time to time, to minimize the time to build the pool of answers.

        3. Change the entire approach, giving them a trivial project with specifically added bugs, asking them to fix it and add a known feature.


        Also, consider the problem in the larger sense, if you are asking for information in an interview, and the information was memorized, then that should be an ideal candidate, unless you are asking for the wrong information.



        You are deciding that the information isn't what is wanted, so you might be able to fix the problem by asking for the right kind of information.






        share|improve this answer





















          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "423"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          noCode: true, onDemand: false,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          Indu is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f125402%2fhow-to-recruit-software-developers-in-an-age-where-everybody-studies-for-the-int%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown




















          StackExchange.ready(function () {
          $("#show-editor-button input, #show-editor-button button").click(function () {
          var showEditor = function() {
          $("#show-editor-button").hide();
          $("#post-form").removeClass("dno");
          StackExchange.editor.finallyInit();
          };

          var useFancy = $(this).data('confirm-use-fancy');
          if(useFancy == 'True') {
          var popupTitle = $(this).data('confirm-fancy-title');
          var popupBody = $(this).data('confirm-fancy-body');
          var popupAccept = $(this).data('confirm-fancy-accept-button');

          $(this).loadPopup({
          url: '/post/self-answer-popup',
          loaded: function(popup) {
          var pTitle = $(popup).find('h2');
          var pBody = $(popup).find('.popup-body');
          var pSubmit = $(popup).find('.popup-submit');

          pTitle.text(popupTitle);
          pBody.html(popupBody);
          pSubmit.val(popupAccept).click(showEditor);
          }
          })
          } else{
          var confirmText = $(this).data('confirm-text');
          if (confirmText ? confirm(confirmText) : true) {
          showEditor();
          }
          }
          });
          });






          6 Answers
          6






          active

          oldest

          votes








          6 Answers
          6






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          5














          Provide the candidate with a genuine programming test in the interview - a laptop hooked up to a projector with a broken project, with a mixture of basic to complex bugs, and ask them to add some functionality, again ranging from basic to moderately complex. This is something nobody can really study for and will actually provide a showcase of their skills. Have technical people there talking to the candidate to get a feel for their personality and how they approach the problems faced.



          For the job interview for my current role, I had spent 2 weeks studying programming principles, design patterns, database stuff etc. I was able to answer all the theoretical questions well and think I came across well



          I was then handed a laptop which was connected up to the projector and shown a solution which contained a broken website with a defined number of errors which I had to debug and add some simple functionality. While I wasn't very familiar with the front-end framework used by the company, I was able to fix about half the bugs and then give my best guess as to what the causes were for the remaining bugs based on what I could see, and this was good enough to get me in the door.



          The whole thing, between the theoretical questions and the website debugging session lasted about 2 hours.






          share|improve this answer




























            5














            Provide the candidate with a genuine programming test in the interview - a laptop hooked up to a projector with a broken project, with a mixture of basic to complex bugs, and ask them to add some functionality, again ranging from basic to moderately complex. This is something nobody can really study for and will actually provide a showcase of their skills. Have technical people there talking to the candidate to get a feel for their personality and how they approach the problems faced.



            For the job interview for my current role, I had spent 2 weeks studying programming principles, design patterns, database stuff etc. I was able to answer all the theoretical questions well and think I came across well



            I was then handed a laptop which was connected up to the projector and shown a solution which contained a broken website with a defined number of errors which I had to debug and add some simple functionality. While I wasn't very familiar with the front-end framework used by the company, I was able to fix about half the bugs and then give my best guess as to what the causes were for the remaining bugs based on what I could see, and this was good enough to get me in the door.



            The whole thing, between the theoretical questions and the website debugging session lasted about 2 hours.






            share|improve this answer


























              5












              5








              5






              Provide the candidate with a genuine programming test in the interview - a laptop hooked up to a projector with a broken project, with a mixture of basic to complex bugs, and ask them to add some functionality, again ranging from basic to moderately complex. This is something nobody can really study for and will actually provide a showcase of their skills. Have technical people there talking to the candidate to get a feel for their personality and how they approach the problems faced.



              For the job interview for my current role, I had spent 2 weeks studying programming principles, design patterns, database stuff etc. I was able to answer all the theoretical questions well and think I came across well



              I was then handed a laptop which was connected up to the projector and shown a solution which contained a broken website with a defined number of errors which I had to debug and add some simple functionality. While I wasn't very familiar with the front-end framework used by the company, I was able to fix about half the bugs and then give my best guess as to what the causes were for the remaining bugs based on what I could see, and this was good enough to get me in the door.



              The whole thing, between the theoretical questions and the website debugging session lasted about 2 hours.






              share|improve this answer














              Provide the candidate with a genuine programming test in the interview - a laptop hooked up to a projector with a broken project, with a mixture of basic to complex bugs, and ask them to add some functionality, again ranging from basic to moderately complex. This is something nobody can really study for and will actually provide a showcase of their skills. Have technical people there talking to the candidate to get a feel for their personality and how they approach the problems faced.



              For the job interview for my current role, I had spent 2 weeks studying programming principles, design patterns, database stuff etc. I was able to answer all the theoretical questions well and think I came across well



              I was then handed a laptop which was connected up to the projector and shown a solution which contained a broken website with a defined number of errors which I had to debug and add some simple functionality. While I wasn't very familiar with the front-end framework used by the company, I was able to fix about half the bugs and then give my best guess as to what the causes were for the remaining bugs based on what I could see, and this was good enough to get me in the door.



              The whole thing, between the theoretical questions and the website debugging session lasted about 2 hours.







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited 2 hours ago

























              answered 2 hours ago









              user1666620

              9,32273233




              9,32273233

























                  2














                  Use Whiteboard interviews, and ask problems which are related to the skills and business domain that you're interested in. Look for people that you can work with, even if they aren't perfect matches for the position, because you can always train the right person if they have potential. Ask existing employees for recommendations (and offer a finders-fee)






                  share|improve this answer

















                  • 2




                    Pete, I fear that OP is indeed talking about whiteboard-type problems!
                    – Fattie
                    2 hours ago






                  • 1




                    @Fattie - Yep - but a good thing with whiteboard interviews rather than take-away coding tests is that you can change the parameters halfway through the question to throw a spanner in the works
                    – PeteCon
                    2 hours ago
















                  2














                  Use Whiteboard interviews, and ask problems which are related to the skills and business domain that you're interested in. Look for people that you can work with, even if they aren't perfect matches for the position, because you can always train the right person if they have potential. Ask existing employees for recommendations (and offer a finders-fee)






                  share|improve this answer

















                  • 2




                    Pete, I fear that OP is indeed talking about whiteboard-type problems!
                    – Fattie
                    2 hours ago






                  • 1




                    @Fattie - Yep - but a good thing with whiteboard interviews rather than take-away coding tests is that you can change the parameters halfway through the question to throw a spanner in the works
                    – PeteCon
                    2 hours ago














                  2












                  2








                  2






                  Use Whiteboard interviews, and ask problems which are related to the skills and business domain that you're interested in. Look for people that you can work with, even if they aren't perfect matches for the position, because you can always train the right person if they have potential. Ask existing employees for recommendations (and offer a finders-fee)






                  share|improve this answer












                  Use Whiteboard interviews, and ask problems which are related to the skills and business domain that you're interested in. Look for people that you can work with, even if they aren't perfect matches for the position, because you can always train the right person if they have potential. Ask existing employees for recommendations (and offer a finders-fee)







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 2 hours ago









                  PeteCon

                  14.2k43857




                  14.2k43857








                  • 2




                    Pete, I fear that OP is indeed talking about whiteboard-type problems!
                    – Fattie
                    2 hours ago






                  • 1




                    @Fattie - Yep - but a good thing with whiteboard interviews rather than take-away coding tests is that you can change the parameters halfway through the question to throw a spanner in the works
                    – PeteCon
                    2 hours ago














                  • 2




                    Pete, I fear that OP is indeed talking about whiteboard-type problems!
                    – Fattie
                    2 hours ago






                  • 1




                    @Fattie - Yep - but a good thing with whiteboard interviews rather than take-away coding tests is that you can change the parameters halfway through the question to throw a spanner in the works
                    – PeteCon
                    2 hours ago








                  2




                  2




                  Pete, I fear that OP is indeed talking about whiteboard-type problems!
                  – Fattie
                  2 hours ago




                  Pete, I fear that OP is indeed talking about whiteboard-type problems!
                  – Fattie
                  2 hours ago




                  1




                  1




                  @Fattie - Yep - but a good thing with whiteboard interviews rather than take-away coding tests is that you can change the parameters halfway through the question to throw a spanner in the works
                  – PeteCon
                  2 hours ago




                  @Fattie - Yep - but a good thing with whiteboard interviews rather than take-away coding tests is that you can change the parameters halfway through the question to throw a spanner in the works
                  – PeteCon
                  2 hours ago











                  1














                  Welcome new user, I've come to believe that the only way to hire software engineers is




                  • Just hire and pay them for a week or two on a project.


                  I think that's it.



                  It's the only way to know.



                  Everything else is useless.



                  The amount of time/money you'll spend on the sundry alternatives ... might as well just put them on the job for a week.



                  (Depending on your style and project, you might hire 'em for a time period (a week) or some "task" for $x. Either way.)



                  If you consistently take this approach, you'll likely find after a year or two that, the money you wasted doing this approach, was indeed far less than the sundry other costs of search and hiring.






                  share|improve this answer

















                  • 3




                    Hopefully you mean as an off-hours contract project. Or as a final check after a meaningful selection process. Otherwise routinely making your selection only after bringing people onboard as employees is terrible for all concerned - it's expensive of both money and on-boarding effort, and it means often asking people to leave an existing job for a very uncertain alternative.
                    – Chris Stratton
                    2 hours ago










                  • I mean .. we do pretty well, Chris? Regarding your idea that it's "expensive" - it's incredibly cheap. (No need to copy and paste what I wrote in the answer.)
                    – Fattie
                    1 hour ago










                  • This may require that the candidate quit his or her current job to try out yours. This may not be bad if you want to hire from the unemployed only, but you're leaving some very promising people wondering "Why should I (quit my job/spend a full week of time off) just to interview?".
                    – David Thornley
                    1 min ago
















                  1














                  Welcome new user, I've come to believe that the only way to hire software engineers is




                  • Just hire and pay them for a week or two on a project.


                  I think that's it.



                  It's the only way to know.



                  Everything else is useless.



                  The amount of time/money you'll spend on the sundry alternatives ... might as well just put them on the job for a week.



                  (Depending on your style and project, you might hire 'em for a time period (a week) or some "task" for $x. Either way.)



                  If you consistently take this approach, you'll likely find after a year or two that, the money you wasted doing this approach, was indeed far less than the sundry other costs of search and hiring.






                  share|improve this answer

















                  • 3




                    Hopefully you mean as an off-hours contract project. Or as a final check after a meaningful selection process. Otherwise routinely making your selection only after bringing people onboard as employees is terrible for all concerned - it's expensive of both money and on-boarding effort, and it means often asking people to leave an existing job for a very uncertain alternative.
                    – Chris Stratton
                    2 hours ago










                  • I mean .. we do pretty well, Chris? Regarding your idea that it's "expensive" - it's incredibly cheap. (No need to copy and paste what I wrote in the answer.)
                    – Fattie
                    1 hour ago










                  • This may require that the candidate quit his or her current job to try out yours. This may not be bad if you want to hire from the unemployed only, but you're leaving some very promising people wondering "Why should I (quit my job/spend a full week of time off) just to interview?".
                    – David Thornley
                    1 min ago














                  1












                  1








                  1






                  Welcome new user, I've come to believe that the only way to hire software engineers is




                  • Just hire and pay them for a week or two on a project.


                  I think that's it.



                  It's the only way to know.



                  Everything else is useless.



                  The amount of time/money you'll spend on the sundry alternatives ... might as well just put them on the job for a week.



                  (Depending on your style and project, you might hire 'em for a time period (a week) or some "task" for $x. Either way.)



                  If you consistently take this approach, you'll likely find after a year or two that, the money you wasted doing this approach, was indeed far less than the sundry other costs of search and hiring.






                  share|improve this answer












                  Welcome new user, I've come to believe that the only way to hire software engineers is




                  • Just hire and pay them for a week or two on a project.


                  I think that's it.



                  It's the only way to know.



                  Everything else is useless.



                  The amount of time/money you'll spend on the sundry alternatives ... might as well just put them on the job for a week.



                  (Depending on your style and project, you might hire 'em for a time period (a week) or some "task" for $x. Either way.)



                  If you consistently take this approach, you'll likely find after a year or two that, the money you wasted doing this approach, was indeed far less than the sundry other costs of search and hiring.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 2 hours ago









                  Fattie

                  6,94531324




                  6,94531324








                  • 3




                    Hopefully you mean as an off-hours contract project. Or as a final check after a meaningful selection process. Otherwise routinely making your selection only after bringing people onboard as employees is terrible for all concerned - it's expensive of both money and on-boarding effort, and it means often asking people to leave an existing job for a very uncertain alternative.
                    – Chris Stratton
                    2 hours ago










                  • I mean .. we do pretty well, Chris? Regarding your idea that it's "expensive" - it's incredibly cheap. (No need to copy and paste what I wrote in the answer.)
                    – Fattie
                    1 hour ago










                  • This may require that the candidate quit his or her current job to try out yours. This may not be bad if you want to hire from the unemployed only, but you're leaving some very promising people wondering "Why should I (quit my job/spend a full week of time off) just to interview?".
                    – David Thornley
                    1 min ago














                  • 3




                    Hopefully you mean as an off-hours contract project. Or as a final check after a meaningful selection process. Otherwise routinely making your selection only after bringing people onboard as employees is terrible for all concerned - it's expensive of both money and on-boarding effort, and it means often asking people to leave an existing job for a very uncertain alternative.
                    – Chris Stratton
                    2 hours ago










                  • I mean .. we do pretty well, Chris? Regarding your idea that it's "expensive" - it's incredibly cheap. (No need to copy and paste what I wrote in the answer.)
                    – Fattie
                    1 hour ago










                  • This may require that the candidate quit his or her current job to try out yours. This may not be bad if you want to hire from the unemployed only, but you're leaving some very promising people wondering "Why should I (quit my job/spend a full week of time off) just to interview?".
                    – David Thornley
                    1 min ago








                  3




                  3




                  Hopefully you mean as an off-hours contract project. Or as a final check after a meaningful selection process. Otherwise routinely making your selection only after bringing people onboard as employees is terrible for all concerned - it's expensive of both money and on-boarding effort, and it means often asking people to leave an existing job for a very uncertain alternative.
                  – Chris Stratton
                  2 hours ago




                  Hopefully you mean as an off-hours contract project. Or as a final check after a meaningful selection process. Otherwise routinely making your selection only after bringing people onboard as employees is terrible for all concerned - it's expensive of both money and on-boarding effort, and it means often asking people to leave an existing job for a very uncertain alternative.
                  – Chris Stratton
                  2 hours ago












                  I mean .. we do pretty well, Chris? Regarding your idea that it's "expensive" - it's incredibly cheap. (No need to copy and paste what I wrote in the answer.)
                  – Fattie
                  1 hour ago




                  I mean .. we do pretty well, Chris? Regarding your idea that it's "expensive" - it's incredibly cheap. (No need to copy and paste what I wrote in the answer.)
                  – Fattie
                  1 hour ago












                  This may require that the candidate quit his or her current job to try out yours. This may not be bad if you want to hire from the unemployed only, but you're leaving some very promising people wondering "Why should I (quit my job/spend a full week of time off) just to interview?".
                  – David Thornley
                  1 min ago




                  This may require that the candidate quit his or her current job to try out yours. This may not be bad if you want to hire from the unemployed only, but you're leaving some very promising people wondering "Why should I (quit my job/spend a full week of time off) just to interview?".
                  – David Thornley
                  1 min ago











                  1














                  After getting through enough basic questions to show that they have some minimal (by my needs) ability to write code, I move on to the tougher part of the interview, based on two subject areas, their work and my work.



                  Ask for information about a recent project at their current job. Even with respect to NDAs and IP restrictions, they should be able to explain the business problem, the complexity of the problems and how they overcame them. If they can't explain their own work to me so that I can understand and evaluate, then I worry about how successful they will be.



                  Ask them to white board a design/solution to one of your current problems. The expectation should not be a working solution but how they approach the problem. Provide enough information that they have a high level scope for the problem. They should ask good questions, and you should provide good answers so they can proceed. They should be able to sketch out some sort of solution. In the end their solution may not work out, but you will be able to see how they work on a problem and whether or not they should be able to work on the projects you will have.






                  share|improve this answer


























                    1














                    After getting through enough basic questions to show that they have some minimal (by my needs) ability to write code, I move on to the tougher part of the interview, based on two subject areas, their work and my work.



                    Ask for information about a recent project at their current job. Even with respect to NDAs and IP restrictions, they should be able to explain the business problem, the complexity of the problems and how they overcame them. If they can't explain their own work to me so that I can understand and evaluate, then I worry about how successful they will be.



                    Ask them to white board a design/solution to one of your current problems. The expectation should not be a working solution but how they approach the problem. Provide enough information that they have a high level scope for the problem. They should ask good questions, and you should provide good answers so they can proceed. They should be able to sketch out some sort of solution. In the end their solution may not work out, but you will be able to see how they work on a problem and whether or not they should be able to work on the projects you will have.






                    share|improve this answer
























                      1












                      1








                      1






                      After getting through enough basic questions to show that they have some minimal (by my needs) ability to write code, I move on to the tougher part of the interview, based on two subject areas, their work and my work.



                      Ask for information about a recent project at their current job. Even with respect to NDAs and IP restrictions, they should be able to explain the business problem, the complexity of the problems and how they overcame them. If they can't explain their own work to me so that I can understand and evaluate, then I worry about how successful they will be.



                      Ask them to white board a design/solution to one of your current problems. The expectation should not be a working solution but how they approach the problem. Provide enough information that they have a high level scope for the problem. They should ask good questions, and you should provide good answers so they can proceed. They should be able to sketch out some sort of solution. In the end their solution may not work out, but you will be able to see how they work on a problem and whether or not they should be able to work on the projects you will have.






                      share|improve this answer












                      After getting through enough basic questions to show that they have some minimal (by my needs) ability to write code, I move on to the tougher part of the interview, based on two subject areas, their work and my work.



                      Ask for information about a recent project at their current job. Even with respect to NDAs and IP restrictions, they should be able to explain the business problem, the complexity of the problems and how they overcame them. If they can't explain their own work to me so that I can understand and evaluate, then I worry about how successful they will be.



                      Ask them to white board a design/solution to one of your current problems. The expectation should not be a working solution but how they approach the problem. Provide enough information that they have a high level scope for the problem. They should ask good questions, and you should provide good answers so they can proceed. They should be able to sketch out some sort of solution. In the end their solution may not work out, but you will be able to see how they work on a problem and whether or not they should be able to work on the projects you will have.







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered 1 hour ago









                      cdkMoose

                      10.4k22146




                      10.4k22146























                          1















                          • Have multiple interviewers. Your strongest engineers on the team should participate in the interview process - they definitely want to work with people better than the one's that are struggling, right?


                          • Ask an open ended design question. for a problem of medium complexity. Ask the candidate to write out the header file, class declarations, box diagrams, etc... Does the candidate ask clarifying questions? After he's done with a basic design, introduce a new requirement that would break his design. Is he able to pivot? Pick one part of his design and probe deeper.



                          • Ask a question that probes if they have a deep understanding of the platform fundamentals. Some examples I've asked.




                            • "How does the C++ compiler implement virtual methods?"

                            • "How do closures work in Javascript?"

                            • "Explain when you would ever want to use UDP instead of TCP."

                            • "After you type a www.foo.com into a browser address bar, tell me about all the network activity and protocols involved to get the content on the screen."



                          • Probe for genuine interest in programming. "Tell me about a program you wrote for fun that wasn't for work or school." A good candidate will tell you about an app, website, or hack that he did for his own personal pleasure. A weaker candidate will only tell you about the program he wrote to figure something out for work/school.







                          share|improve this answer


























                            1















                            • Have multiple interviewers. Your strongest engineers on the team should participate in the interview process - they definitely want to work with people better than the one's that are struggling, right?


                            • Ask an open ended design question. for a problem of medium complexity. Ask the candidate to write out the header file, class declarations, box diagrams, etc... Does the candidate ask clarifying questions? After he's done with a basic design, introduce a new requirement that would break his design. Is he able to pivot? Pick one part of his design and probe deeper.



                            • Ask a question that probes if they have a deep understanding of the platform fundamentals. Some examples I've asked.




                              • "How does the C++ compiler implement virtual methods?"

                              • "How do closures work in Javascript?"

                              • "Explain when you would ever want to use UDP instead of TCP."

                              • "After you type a www.foo.com into a browser address bar, tell me about all the network activity and protocols involved to get the content on the screen."



                            • Probe for genuine interest in programming. "Tell me about a program you wrote for fun that wasn't for work or school." A good candidate will tell you about an app, website, or hack that he did for his own personal pleasure. A weaker candidate will only tell you about the program he wrote to figure something out for work/school.







                            share|improve this answer
























                              1












                              1








                              1







                              • Have multiple interviewers. Your strongest engineers on the team should participate in the interview process - they definitely want to work with people better than the one's that are struggling, right?


                              • Ask an open ended design question. for a problem of medium complexity. Ask the candidate to write out the header file, class declarations, box diagrams, etc... Does the candidate ask clarifying questions? After he's done with a basic design, introduce a new requirement that would break his design. Is he able to pivot? Pick one part of his design and probe deeper.



                              • Ask a question that probes if they have a deep understanding of the platform fundamentals. Some examples I've asked.




                                • "How does the C++ compiler implement virtual methods?"

                                • "How do closures work in Javascript?"

                                • "Explain when you would ever want to use UDP instead of TCP."

                                • "After you type a www.foo.com into a browser address bar, tell me about all the network activity and protocols involved to get the content on the screen."



                              • Probe for genuine interest in programming. "Tell me about a program you wrote for fun that wasn't for work or school." A good candidate will tell you about an app, website, or hack that he did for his own personal pleasure. A weaker candidate will only tell you about the program he wrote to figure something out for work/school.







                              share|improve this answer













                              • Have multiple interviewers. Your strongest engineers on the team should participate in the interview process - they definitely want to work with people better than the one's that are struggling, right?


                              • Ask an open ended design question. for a problem of medium complexity. Ask the candidate to write out the header file, class declarations, box diagrams, etc... Does the candidate ask clarifying questions? After he's done with a basic design, introduce a new requirement that would break his design. Is he able to pivot? Pick one part of his design and probe deeper.



                              • Ask a question that probes if they have a deep understanding of the platform fundamentals. Some examples I've asked.




                                • "How does the C++ compiler implement virtual methods?"

                                • "How do closures work in Javascript?"

                                • "Explain when you would ever want to use UDP instead of TCP."

                                • "After you type a www.foo.com into a browser address bar, tell me about all the network activity and protocols involved to get the content on the screen."



                              • Probe for genuine interest in programming. "Tell me about a program you wrote for fun that wasn't for work or school." A good candidate will tell you about an app, website, or hack that he did for his own personal pleasure. A weaker candidate will only tell you about the program he wrote to figure something out for work/school.








                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered 1 hour ago









                              selbie

                              75128




                              75128























                                  0














                                  In some ways, studying for the interview is a good thing. You probably already ask that people study about four years in a University to prepare for the interview.



                                  Now, if your interviewing process is scripted, and the script lacks any kind of variation, then it is just a matter of time before the answers become memorized in the population. Solutions include:




                                  1. As questions that are generated, with variable fields that require the work to be done specific to this asking of the question.

                                  2. Change the question set from time to time, to minimize the time to build the pool of answers.

                                  3. Change the entire approach, giving them a trivial project with specifically added bugs, asking them to fix it and add a known feature.


                                  Also, consider the problem in the larger sense, if you are asking for information in an interview, and the information was memorized, then that should be an ideal candidate, unless you are asking for the wrong information.



                                  You are deciding that the information isn't what is wanted, so you might be able to fix the problem by asking for the right kind of information.






                                  share|improve this answer


























                                    0














                                    In some ways, studying for the interview is a good thing. You probably already ask that people study about four years in a University to prepare for the interview.



                                    Now, if your interviewing process is scripted, and the script lacks any kind of variation, then it is just a matter of time before the answers become memorized in the population. Solutions include:




                                    1. As questions that are generated, with variable fields that require the work to be done specific to this asking of the question.

                                    2. Change the question set from time to time, to minimize the time to build the pool of answers.

                                    3. Change the entire approach, giving them a trivial project with specifically added bugs, asking them to fix it and add a known feature.


                                    Also, consider the problem in the larger sense, if you are asking for information in an interview, and the information was memorized, then that should be an ideal candidate, unless you are asking for the wrong information.



                                    You are deciding that the information isn't what is wanted, so you might be able to fix the problem by asking for the right kind of information.






                                    share|improve this answer
























                                      0












                                      0








                                      0






                                      In some ways, studying for the interview is a good thing. You probably already ask that people study about four years in a University to prepare for the interview.



                                      Now, if your interviewing process is scripted, and the script lacks any kind of variation, then it is just a matter of time before the answers become memorized in the population. Solutions include:




                                      1. As questions that are generated, with variable fields that require the work to be done specific to this asking of the question.

                                      2. Change the question set from time to time, to minimize the time to build the pool of answers.

                                      3. Change the entire approach, giving them a trivial project with specifically added bugs, asking them to fix it and add a known feature.


                                      Also, consider the problem in the larger sense, if you are asking for information in an interview, and the information was memorized, then that should be an ideal candidate, unless you are asking for the wrong information.



                                      You are deciding that the information isn't what is wanted, so you might be able to fix the problem by asking for the right kind of information.






                                      share|improve this answer












                                      In some ways, studying for the interview is a good thing. You probably already ask that people study about four years in a University to prepare for the interview.



                                      Now, if your interviewing process is scripted, and the script lacks any kind of variation, then it is just a matter of time before the answers become memorized in the population. Solutions include:




                                      1. As questions that are generated, with variable fields that require the work to be done specific to this asking of the question.

                                      2. Change the question set from time to time, to minimize the time to build the pool of answers.

                                      3. Change the entire approach, giving them a trivial project with specifically added bugs, asking them to fix it and add a known feature.


                                      Also, consider the problem in the larger sense, if you are asking for information in an interview, and the information was memorized, then that should be an ideal candidate, unless you are asking for the wrong information.



                                      You are deciding that the information isn't what is wanted, so you might be able to fix the problem by asking for the right kind of information.







                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered 2 hours ago









                                      Edwin Buck

                                      2,4831019




                                      2,4831019






















                                          Indu is a new contributor. Be nice, and check out our Code of Conduct.










                                          draft saved

                                          draft discarded


















                                          Indu is a new contributor. Be nice, and check out our Code of Conduct.













                                          Indu is a new contributor. Be nice, and check out our Code of Conduct.












                                          Indu is a new contributor. Be nice, and check out our Code of Conduct.
















                                          Thanks for contributing an answer to The Workplace Stack Exchange!


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid



                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.


                                          To learn more, see our tips on writing great answers.





                                          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                                          Please pay close attention to the following guidance:


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid



                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.


                                          To learn more, see our tips on writing great answers.




                                          draft saved


                                          draft discarded














                                          StackExchange.ready(
                                          function () {
                                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f125402%2fhow-to-recruit-software-developers-in-an-age-where-everybody-studies-for-the-int%23new-answer', 'question_page');
                                          }
                                          );

                                          Post as a guest















                                          Required, but never shown





















































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown

































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown











                                          Popular posts from this blog

                                          Котор

                                          Потомский, Вадим Владимирович

                                          Бедствия войны