If you don’t have pet projects, I don’t think I want you
I am busy hiring people now, and it got me thinking a lot about the sort of things that I want from my developers. In particular, I was inundated in CVs, and I used the following standard reply to help me narrow things down.
Thank you for your CV. Do you have any projects that you wrote that I can review? Have you done any OSS work that I can look at?
The replies are fairly interesting. In particular, I had a somewhat unpleasant exchange with one respondent. In reply for my question, the reply was:
My employer doesn’t allow any sharing of code. I can find some old projects that I did a while ago and send them to you, I guess.
Obviously, I don’t want to read any code that belong to someone without that someone’s explicit authorization. Someone sending me their current company code is about as bad manner as someone setting up an invite for a job interview on their work calendar (the later actually happened today).
After getting the projects and looking them over a bit, I replied that I don’t think this would be the appropriate position for this respondent. I got the following reply:
Wait a minute…
Can I know why? I took the trouble to send you stuff that I have done, maybe not the highest quality and caliber, but what I could send right now. You didn’t even interview me.
How exactly did you reach the unequivocal conclusion that I am not a good fit for this job?
My response to that was:
Put simply, we are looking for a .NET developer and one of the most important things that we look for is passion. In general, we have found that people that care and are interested in what they are doing tend to do other stuff rather than just their work assignments.
In other words, they have their own pet projects, it can be a personal site, a project for a friend, or just some code written to get familiar with some technology.
When you tell me that your only projects outside of work are 5+ years old, that is a bad indication for us.
There is more, but it gets to the details and not really relevant for this discussion.
Let me try to preempt the nitpickers. Not having pet projects doesn’t mean that you are a bad developer, nor vice versa.
But I don’t really care about experience, and assuming that you already know the syntax and has some basic knowledge in the framework, we can use you. But the one thing that I learned you can’t give people is the passion for the field. And that is critical. Not only because it means that they are either already good or going to be good (it is pretty hard to be passionate about something that you sucks at), but because it means that they care.
And if they care, it means two very important things:
- The culture of the company is about caring for doing the appropriate thing.
- The end result is going to be as awesome as we can get.
Now, if you’ll excuse me, I am going to check out SignalR, because I don’t feel like doing any more RavenDB work today.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Alexandru Repede replied on Wed, 2011/09/14 - 8:03am
Nicolas Frankel replied on Wed, 2011/09/14 - 8:34am
Also, as development team lead, a bunch of passionate developers are sometimes too much for a single person to handle. They may not share your vision and each pull in his prefered direction.
On the contrary, a developer who is professional but doesn't work at home may require more support but he'll probably go the way I tell him.
Since I've had both kind in my teams, I know which I prefer.
Stan Dyck replied on Wed, 2011/09/14 - 9:36am
I think you probably did the right thing by not hiring that guy. I think he may have a bit of a point though. Some employer agreements stipulate that *any* code you write in or outside of work can be claimed by them. I think this is horrible but it does happen. Under those circumstances, I would be very hesitant to hand over a personal project to a stranger (even to get a job). I might also want to hide my participation in an OSS project for the same reasons. I am very passionate about my personal projects, but they *are* personal.
I think a good compromise is to have the candidate describe one of their personal projects. In my experience, those sorts of exchanges will really show you if the person is passionate or not. If you have to shut them up after 5 minutes, you're on the right track.
kartbart replied on Wed, 2011/09/14 - 10:06am
You may be opening yourself up to legal issues here. Does every person who is passionate necessarily have the time to spare for personal projects outside of work hours? Are family obligations and other interests not of value? Looks like you are going to limit yourself to hiring nerds who do nothing else than code. There are some of us who are passionate about coding but have other interests to. This of course may be news to you.
Sounds to me like you are making up for your poor interviewing process by positing a criteria in the hopes of looking cool and classy.
Jon Martin Solaas replied on Wed, 2011/09/14 - 3:17pm
Sony Arouje replied on Thu, 2011/09/15 - 5:04am
In my experience working on personal projects
1. Give more freedom
2. Experiment different frameworks or different way of implementation
3. Learn new things that we may not get in official work.
4. It also helped me to implement stuffs I learnt in my personal projects into official projects
I agreed with Author's intention. He is not just looking for developers, instead looking for developer who's passionate in coding.
Jeremy replied on Thu, 2011/09/15 - 8:16am
Matthias Huttar replied on Thu, 2011/09/15 - 8:28am
Bo Harris replied on Thu, 2011/09/15 - 1:21pm
This article reminds me of the old joke about the manager lost in the hot-air balloon who stops and asks for directions and then criticizes the guy who gives him directions. Moral of the story - he was a manager who always blames his employees for the companies problems.
Instead of blaming the candidate for not having outside projects why are you not prepared to conduct an interview that doesn't require the candidate to bring source from a pet project. Btw, how would you even know that the code they bring in is truly their code? There are a myriad of exercises and tests you could do to assess the candidates proficiency.
One of the best interviews I ever went on the manager gave me a take home exercise that I had to return a working solution to him within 24 hours (actually he did stipulate that the solution didn't have to be working-he just wanted to get a good idea on how I would architect a solution). I was very impressed with that approach and he was impressed with my solution and I got the job. I thought this was a great approach as it gave me an opportunity to really showcase what I could do. And allowed me to do it outside of the interview process where there was no one looking over my shoulder (which I hate!).
In over 15 years of programming I have interviewed more candidates than I'll ever be able to remember. And the one thing that stands out about those experiences is not the candidates but the experience I gained on how to properly conduct an interview. I sucked in the beginning but got better over time as I begin to review the results of my interviews. As with anything, attaining perfection is a process of refinement.
Which means doing plenty of post-mortems and identifying what went right, wrong, id'ing the causes and future solutions. That my friend is a sign of a good employer and/or manager. A manager/employer with a "my way is the right way" attitude is a pain in the ass to work for and you probably did the guy a favor as in your effort to be the next Joel Spolsky you basically come off as someone who he (nor I) would never want to work for.
As the old saying goes, you get out of it what you put into it. So let me ask you, how much thought have you put into how to properly conduct an interview? From this article it doesn't seem like very much. Here are some tips:
1)identify what level of candidate you are looking for
2)create a list of questions geared toward that level
3)create a programming exercise that can be accomplished in 24 hours that will showcase the skills you are looking for
4)study the resume
5)conduct a phone interview
6)hold a technical in-person interview
7)give the candidate the take-home exercise
8)score the exercise on clarity, effectiveness, conciseness and maintainability
9)stop being an a**hole
Adrian Engler replied on Fri, 2011/09/16 - 4:04am
That someone who already works over 40 hours a week as a professional software developer, in addition also works on pet projects at home can mean different things. It could mean passion, but it also could mean that this person is dissatisfied at work or that his or her interests are not very diverse. People can be passionate about developing software and follow this passion at work, while they follow other passions in their free time.
It might be that for some position you have a certain type of person in mind and that someone who works on pet projects better fits your idea of a person you want to hire.
But obviously, the idea that only people who have their personal pet projects are passionate about developing software is just as wrong as the idea that those who don't have their pet projects are bad programmers.
Of course, it is true that it is really helpful to look at code someone has written to get an idea about this person as a software developer. When I applied for my current job, I was also asked to show something I had programmed. The wish to see a candidate's code is completely understandable, it just should be understood that there may be good reasons why people who work full-time as software developers often do not have recent code they can show (students generally should have such code).
Jeremy replied on Fri, 2011/09/16 - 6:21am
Software Developers will tell you: "40 hours a week is more than enough".
People who excel at what they do (Nikola Tesla, Joseph John Thomson, Max Planck, Paul Dirac, Albert Szent-Gyorgyi, Konstantin Novoselov, Andre Geim, Charles K. Kao, Makoto Kobayashi, Roy J. Glauber, Riccardo Giacconi, Gerd Binnig, etc, etc) will tell you: "The more you put into it, the more you get out of it."
This shows that different people have different passions and motivations.
Some people put more into Software Development because they are investing in getting more out of work (e.g. money or achievement). Others put more into living, because they want to get more out of life (e.g. health or a good experience). This not only applies to work, but also school, marriage, friendships, kids, community, etc.
So for me everything boils down to one simple interview question: "Show me how much you've put into it".
David Lee replied on Fri, 2011/09/16 - 9:50am
@Jeremy
Extremely well said.
Ray Hulha replied on Fri, 2011/09/16 - 12:07pm
I have so many pet projects I finally wrote my own source forge:
http://raysforge.net
Of course raysforge is hosted at raysforge as well :-)
http://raysforge.net/viewProject.xhtml?fn=Raysforge
I just love to code...
Lund Wolfe replied on Sat, 2011/09/17 - 1:20am
If the candidate is satisfied to do programming they don't like at their current employer and compensate for it on their off-time with pet projects, this is a bad sign. You want someone who does their best work for all their paying employers, including you.