Ayende @ Rahien

Hi!
My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 5,969 | Comments: 44,491

filter by tags archive

Quick FAILs in code questions


Sometimes it takes very little time to know that a candidate is going to be pretty horrible. As you can probably guess, the sort of questions we ask tend to be “find me this data in this sort of file”.

Probably the fastest indication is when they send me projects like this:

image

image

Now, it is possible that someone skilled will send us real projects like that, but the experience so far has been that this isn’t going to be the case. If you have someone sending a UI project, it usually indicates that they can’t think about it in any other way.

The code they send pretty much justify this concern. Some code snippets from those projects:

image

Yup, this is the kind of error handling I want to see. Just for fun, if there hasn’t been an error, this function would return a comma separated string of values.

Which make it just slightly worse than:

image

And then we have this:

image

I guess someone really like O(N**2) on 15 TB files.

And then there is this:

image

I guess we have different definitions on what configurable means.

And then there was this person:

image

Yes, they did send me code inside a PDF file. That was the only way that they could find to send code around, I’m guessing.


Comments

Bartosz Adamczewski

@Ayende, This is insane, I'm lucky to say that I have never ever had candidates doing this sort of things. Sure the problem set was different and some people pulled out extremely weird things but at least the had the dignity to say "well I don't know I guess I'm not the right pick".

So all in all I had more skilled people then clueless :)

Damien

I think the next file down in the first example is also sending me warning signs.

njy
njy

@Oren: regarding the PDF, well... at least it wasn't a PPT :D

Ollie

Does the quality of candidates have any relation to the renumeration you're offering?

Frank Quednau

What ever happened to JFHCI?

Honza Brestan

We once had a guy sending Java code (several classes) in one .docx. How do people come up with these? Needless to say the quality was not up to par :)

Augi

When reading your blog-posts, I sometimes feel like a fool. Now, I'm feeling like a boss :-)

Pierre-Alain Vigeant

I used to create MainForm.vb back when I was doing Winforms 10 years ago. Bring memories.

Chris Marisic

The last part, the pdf file thing. I have to point out that email filters can be highly aggressive at blocking anything that looks like software code. Many scanners even look inside zip files now at contents, sending zip files that are encrypted are another common thing intercepted. Code in the end, is text files, so delivering them in a text medium isn't that terrible.

Ayende Rahien

Ollie, We pay somewhat above market rate, so no.

Ayende Rahien

Chris, Yes, it is terrible. I can think of at least a dozen way to send in code. For example, a public github repository, sending them in a .notazipfilehonest extension, sharing via dropbox, google drive, etc.

Melmak

And, how much is the salary? In my opinion, it is good to know it. Thanks :)

Hmm
Hmm

Ayende how about doing some code review again? I loved your code review posts the best. I vote for this new 'reference app' - https://github.com/MarlabsInc/SocialGoal

Nikola Radosavljevic

Ok, I'll own up. What's wrong with MainForm naming convention? I've used it few times although I mostly used frmMain (following same convention for control names). Although I haven't done any WinForms development for few years. There's no denying, it's difficult to find good engineers. Candidates you've shown all seem like they just got into college or got out of a bad one. They're ready to cut as many corners as needed to have just one test case pass. There's no cheap way around it. Companies have to invest in employees and try to keep them when they realize their new skills can bring them more money.

nelson

The problem isn't with the MainForm - the problem is that the prompt didn't necessitate any UI elements: so why include them? A console application would be more appropriate as a simple driver, with the logic of the application being contained in a class library. Bonus points for including a test class library.

Ayende says it best with this line: "If you have someone sending a UI project, it usually indicates that they can’t think about it in any other way."

If a person is asked to write some simple logic, and the first thing they go to is a WinForm template, it indicates that they perhaps don't understand the separation of code and UI framework. The logic that they use to find data within a text file should not have any dependencies on the user interface. The code should reflect, and enforce, that.

Carsten Hansen

Maybe use paper and pencil instead. Thats the way I had to pass my exams :-)

You are forced to structure your programs.

I have a slight idea that once I had to embed my code in a Word document and comment it for passing an exam.

Dom Finn

We have the same problem, I talk to other Dev Leads in the area and they all face the same problem :-(

I thought a good way to filter these people was to have a 10 minute phone interview first. It does filter the bulk of fiends but some still manage to talk big and then produce this tripe.

I wonder whether some sort of automated code scanner that reads homework is in order. Something that filters out applications that contain common calamities?

Saurabh

In-fact why even a Console App? I would prefer to send code with unit tests, ab easy to understand proof of what all scenarios were concerned when the code was written.

tobi

Well, I see that on Stack Overflow every day. Unfortunately, they removed the close reason "Must demonstrate minimal understanding of the situation". I hit that all the time.

Nikola Radosavljevic

@nelson, thanks, then I see the problem. I didn't know what the task was for the interviewee, so assumed problem was naming convention. Although, it's not necessarily indicator of something wrong.

nelson

@Nikola: if the prompt asks for an application that reads from a specified file, I wouldn't hardcode the file path itself into it in any way. In addition, tests are not really an "application." Of course, this depends on the prompt. If the prompt asks for a method that has a particular signature, or a certain kind of API, then a unit test project only would be appropriate. But from what I understood from the few details of the prompt posted, it seemed like it needed to be an application that can read from any arbitrary file that is in a particular format.

nelson

Sorry, that was a reply at Saurabh, not Nikola. Haven't finished my coffee yet :p

Craig

If I'm whipping up a quick-and-dirty prototype I will often create a WinForms app. Why? Because it's easier than writing a bunch of command-line parsing code that allows me to tweak settings and variables as I run through different testing scenarios. Try not being so high-and-mighty arrogant folks.

Ayende Rahien

Craig, And would you send such quick & dirty code as the answer in an interview type situation? One where you have all the time in the world? Or would you clean it up before hand, knowing that this is what you are evaled on.

Paul

It's a shame you wrote this post in this manner rather than abstracting what you receive and trying to help people. Male sure you use the right project for the job, don't use bad error handling, know how to easily share solutions quickly because it might help you in interviews and definitely will help you day to day. This just comes across as "look at what I have to put up with" which I don't think you really meant.

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. Production postmortem (5):
    29 Jul 2015 - The evil licensing code
  2. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
  3. API Design (7):
    20 Jul 2015 - We’ll let the users sort it out
  4. What is new in RavenDB 3.5 (3):
    15 Jul 2015 - Exploring data in the dark
  5. The RavenDB Comic Strip (3):
    28 May 2015 - Part III – High availability & sleeping soundly
View all series

RECENT COMMENTS

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats