
Ask HN: How do you or your company handle coding assigments for interviewers? - rpcope1
<p><pre><code>    Greetings Hacker News,
</code></pre>
The company I work for uses a coding project to help vet developers in our interview process; this is something I have been thinking about how to improve upon, as we use a mix of often poor fitting tools and manual processes in this stage of the interview. As an example we use our in house git repo manager to store and review applicant code, which is challenging because we either get a huge number of repositories created unrelated to our actual work, or continually need to keep sticking assignments down into a single repository which gets big and&#x2F;or ugly as time goes on. Actually executing code submitted is also painful sometimes as not everyone interviewing who wants to test the code knows how to meaningfully sandbox it, which creates additional headaches when things go off the rails. These problems in the process are important for us as it often creates huge distractions from the actual work that needs to get done.<p>Does the company or organization you work for today use a coding project as part of the interview process? Do you use any special tools, tricks or services to facilitate that stage of the interview? When you incorporate coding projects into your interview process, do you just do review, or do you also try and execute the code? Do you experience any similar pain points around this? If your organization doesn&#x27;t use a coding project, barring the understandable philosophical objections to the exercise, would you consider using a coding project if there was a better way to manage having an applicant submit and get their code reviewed&#x2F;tested?<p>As always, I really appreciate the wonderful insight this community always seems to bring. :)
======
WrtCdEvrydy
Every time I've had to do this, I set up a sample Rails app or use one of my
past ones.

Depending on the assignment, I just assign them to add a new feature just to
see how capable they are and what it looks like.

Once I get their code, I do a quick pull request to see the changes and scan
for the basics: comments, capabilities, and security concerns. I'll often
google some of the sections to see where they got it from and check it against
security advisories and otherwise.

The cost of hiring someone who can't spend 5 minutes googling for the correct
answer is far higher than the cost of me taking a good long look at their
solution to the problem.

------
imauld
I don't know what language/toolchain you're using but this should apply to any
language I'm familiar with (Python, Go, to a lesser extent Java):

\- Have applicants keep their code in their own repo. No need to clutter your
VCS with their stuff. Anyone applying for a development position should
already have one anyway. If you're concerned about applicants scanning Github
for completed assignments, have them upload a zip of the code to <insert
favorite cloud service here>. Clear the bucket/folder every 30 days (easily
automated).

\- Tell applicants exactly what you are going to do test their code. Tell them
the steps you will take exactly and that if their code doesn't run with these
steps you won't try to debug it. Don't be heartless though, if it doesn't run
at first let them know and give them an opportunity to fix it. We all make
mistakes.

\- As for sandboxing, take care of it yourself. Provide a base docker image or
include instructions on how to setup vagrant. We used to provide a vagrant
file and include instruction on how to setup it up and get your code inside of
it. Developers that struggled with this, struggled with the assignment in
general. This is especially relevant if you deploy your code using some kind
of virtualization.

\- Be very specific in your requirements and in the details of the environment
that their code will be run in. If you don't want to jump through hoops
getting a machine to be able to run their code let them know their code should
work on a clean install of <your favorite OS> with no additional system
packages aside from the language itself and required compilers/toolchain
(maven, pip, godep, virtualenv, etc). If the assignment requires other stuff
be installed, Pillow an image processing lib for Python requires some C
libraries be installed for example, install it yourself and let them know the
version you have and that their code should work with that. Docker is your
friend here.

------
brudgers
An interview with someone invested in the process,
[https://blog.ycombinator.com/hiring-engineers-with-ammon-
bar...](https://blog.ycombinator.com/hiring-engineers-with-ammon-bartram/)

