Some things just piss me off. But before I get to what pissed me off this time, let me set the scene.
We usually request from candidates applying for a job in Hibernating Rhinos to submit some piece of code that they wrote. They get additional points if their code is an Open Source project.
Some people have some… issues with the concept. The replies I got were:
- I don’t know if I can’t send you the code, I’ll have to ask my employer. (Which seems really silly thing to do, considering you want to get the code to show it to some other company that you want to hire you).
- Here is the code, but don’t tell anyone. (Those usually get deleted immediately after I send them a scathing reply about things like IP and how important it is to respect that).
- Here is my last course code. (Which is what actually triggered this post).
Here is the deal, if you aren’t coding for fun, you are not suitable for a developer position in Hibernating Rhinos. Just to give you some idea, currently we have the following pet projects that I am aware of:
- Jewish Sacred Books repository – display / commentary
- Jewish Sacred Books repository – search / organization (Note that the two are by two different people and are totally unrelated.)
- Music game app for Android, iOS and WP7
- Personal finance app
- Auto update library for .NET
- Various OSS projects
And probably other stuff that I am not aware of. (Just for the record, those are things that they are working on their own time, not company time. And not because I or anyone else told them).
Why is this relevant? Because I keep getting people who think submitting some random piece of code that they have from their latest university course is a good way to show their mad code skillz.
I mean, sure, that might do it, but consider carefully what sort of projects you are usually given as part of university courses. They are usually very small, focusing on just one aspect, and they are totally driven by whatever the crazy professor think is a valid coding standard. Usually, that is NOT a good candidate for sending a code to a job interview.
I am going to share just one line from a codebase that I recently got:
private void doSwap(ref Album io_Album1, ref Album io_Album2)
The code is in C#, in case you are wondering. And you can probably learn a lot about the state of the codebase from just this line of code. Among my chief complaints:
- Violating the .NET framework naming guidelines (method name).
- Violating the .NET framework naming guidelines (argument names).
- Swapping parameters, seriously?! What, are you writing your own sort routine? And yeah, the answer is yes.
When I pinged the author of the code, he replies that this was because of the course requirements. They had a strict polish notation guidelines, and io_ is for a input & output parameter.
They had other guidelines (you may not use foreach, for example) that explained some strangeness in the codebase.
But that isn’t really the point. I can understand crazy coding standards, what I can’t understand is why someone would submit something that would raise so many red flags so quickly as part of a job application process.
This is wasting everyone’s time. And that is quite annoying.