Just a few days back I came to know about this website called CodeEval. It actually started when I saw a message on LinkedIn regarding a challenge on CodeEval. I registered and started working on the problems. Without much effort I am currently on the front page of the leader board. But the reason why I wanted to write about it is different. First, I am not really looking for a job. Well, not a developer job. Many of my friends tell me that their managers are useless or don’t understand the technology etc. I am an exception to it because I do spend a lot of time on technology and even writing programs for fun, but my main day job is a senior management role responsible for developing large enterprise app with a team of several engineers and managers (first and second level). But that’s also not the reason why I wanted to write about this post.
Having interviewed several candidates over the last decade, I have seen people with different levels of skills. I am fine with recruiting fresh candidates as long as they have the right mindset and the willingness to learn. But many times I encountered people who claim to have passed certification exams, or have extensive experience in the last few years on their previous job and so on but when I ask a question in those subjects they are supposed to know well, I don’t see the desired level of experience.
There are also those “architect” type people who live in a different dimension without regards to the practicality or the performance characteristics of their solutions. The resumes of these people are filled with a lot of jargon but when you start
asking very basic and simple questions, things fall apart.
So what is the best way to recruit good developers? Some friends said that having an open source project is good on a resume. And guess what? There are so much crap of open source projects that is probably piling up because of desire for everyone to beef up their resume. Don’t get me wrong, I am not criticizing the open source as a whole. I am talking about people just starting a me too open source project just to get it on the resume.
So what other options exist? Well, I think the best place to find good developers is from websites like Project Euler. However, since Project Euler is a non-profit website and purely for the purpose of intellectual curiosity, a website like CodeEval that brings in some of that spirit for recruitment is a good starting step.
Now, to be fair to all the developers, I also want to reflect upon some of the hiring practices. Talking to friends it appears sometimes the people interviewing are a) confused with their own problem b) know the solution in one way and don’t try to understand the other way the candidate is trying to explain c) think that knowing a few class names in java or some basic algorithms or their order is very important (in reality, these are things that can easily be looked up when needed, what’s required is to be able to study a problem and use the www open book to read the desired material and derive the solution).
One good thing about CodeEval is that companies can sponsor challenges and people who solved a problem can then apply. The problems are classified as Easy, Moderate and Hard. Not sure how they they arrive at the classification. Over a period of time, with more sponsored challenges, this website can become a good set of problems that anyone can start practicing. I often hear among friends and colleagues that it’s been so long since they last interviewed and so need to brush up. These websites are a good way to do that.
I do have some problems with CodeEval. Mainly it’s user interface. I think it’s a bit clunky but usable. A few things I would like to see are (mostly based on my experience with Project Euler)
1) Update the leaderboard more frequently (1 hr for Project Euler)
2) List all problems together rather than by level of difficulty. Let people sort them in a single list
3) Private forum for each problem for developers to discuss
4) When I solve a sponsored problem I see “Last applied on 2011-08-25 ….” But I haven’t applied! I just solved it, I didn’t click the button to apply. So, this is a bit confusing
5) Need explanation on “CE Score”. Is the criteria purely being able to solve all the test cases of a problem or is credit given to speed which may depend on language used.
6) Some privacy settings around public profile
7) Don’t update the “Viewed x times” for public profile if it’s visited by the developer him/herself. Since that’s the only way to know the “CE Score”, developers will be visiting their own public profiles.
I just want to say that all the above are minor issues that can easily be fixed. I think CodeEval is in the right direction overall and hope to see more participation from developers and companies alike. It’s another way to get rid of some technical recruiters who just match the job description and keywords on resumes.