Crazy idea from a recruiter

Sasha Pachev sasha at asksasha.com
Tue Mar 26 17:22:57 MDT 2013


A follow-up. I get the digest, and I am too lazy to copy/paste
everything I am replying to :-)

First, I think Robert is doing a great service to all of us by
building a bridge between HR/management and the hard-core tech guys.
He is one of the few recruiters that are in the right place - PLUG.
Maybe we can help him by posting our favorite candidate screening
challenges. I'll start by posting mine.

- Suppose you are dealing with a parser that does not report line
numbers for errors - only if parsing was success or error. Lines are
independent of each other. You are dealing with a sample input
consisting of 1000000 lines with only one syntax error. How many tries
will you need to find which line has the error and how will you
proceed?

- Which language do you think this is written in, and what would be
the result of execution:

  char* msg;
  strcpy(msg,"Hello, world!");

?

- Assuming you are on a reasonable Unix platform, can you add some
magic around the code without inserting anything in between the above
two lines so that it would actually print Hello, world! in spite of
the egregious error?

- Barring a compiler bug, CPU malfunction or memory corruption is the
following possible, in which language, and how? You have the code that
says:

  s.a = 43;
  printf("s.a=%u\n",s.a);

Those lines result in the following message:

s.a=11

Regarding trying to pick a potential world-class marathoner from a 100
meter sprint test. The idea is actually not as ridiculous as it
sounds. Most world-class marathoners will perform quite a bit better
than the average Joe in this test. Thus we expect at least 12.7 for
the guy to have a shot at making it. But we deal with some limitations
of the method. 12.7 is possible with bad biomechanics compensated by
raw fast-twitch power. A guy with a bad heart or some glycogen storage
problem might be able to make the cut, but when you start training him
for distance you realize that he has problems. He may not mentally
have what it takes to put in the training day after day even if his
physiology is there.

When we look at a resume of a backend coder we need to realize that we
are trying to figure out how good of a marathon runner he might be by
having him run 100 meters. Resume writing is a different event.
Granted, somebody who can write good code would normally be able to
express himself somewhat coherently, but this is not where you want to
expect perfection. And too much perfection in resume writing may
indicate that his talent is somewhere else.

Now some fun practical screening challenges for sysadmins since
somebody mentioned it was difficult to obtain a code sample from them:

- Give him a shell on some weird embedded platform that does not have
some standard tools he would like to have (strace, lsof, fuser, find,
grep). Have him figure out the platform/architecture, find the
cross-compiler, find the sources of the tools, build, and install
them.

- Give him a shell on a standard Linux system with a normal
installation except you manually replace something like libpng.so with
something that does not work as libpng.so. Everything that using
libpng.so will now coredump while everything that does not will work
perfectly. Point out to him the case of the coredump and have him
figure out what's up.

- Give him a shell on a web server that is supposed to produce pretty
looking pages, but instead it is serving error pages. Have him figure
out where the config files are, were the document root is, and how to
make it serve the pretty looking pages again.

- Give a system of unknown hardware specs to a non-technical person at
a remote internet-accessible location with no OS installed. With the
help of that person as his hands, have him install the OS and
configure a development server for your application.

-- 
Sasha Pachev

Fast Running Blog.
http://fastrunningblog.com
Run. Blog. Improve. Repeat.


More information about the PLUG mailing list