Ayende Rahien is working for Hibernating Rhinos LTD, a Israeli based company producing developer productivity tools for OLTP applications such as NHibernate Profiler (nhprof.com), Linq to SQL Profiler(l2sprof.com), Entity Framework Profiler (efprof.com) and more. Ayende is a DZone MVB and is not an employee of DZone and has posted 479 posts at DZone. You can read more from them at their website. View Full User Profile

If you don’t have pet projects, I don’t think I want you

09.13.2011
| 6980 views |
  • submit to reddit

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.

References
Published at DZone with permission of Ayende Rahien, author and DZone MVB. (source)

(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

i think your limiting your search area too much. there are alternatives to your questions, like 'what was the last book you read or are currently reading' and 'what was your last important contribution to your current workplace' and even 'what are your interests'. some programmers might have passions expressed elsewhere but pet projects. experience is not my goal, for example, as a programmer. it is an important thing to get, for sure, but i like writing 'clean code' - or at least as cleanest as possible - and i can do that at work; while i use my free time to read on the theory behind 'my interest' just sayin

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

More passion for pet projects means less passion for you.

Sony Arouje replied on Thu, 2011/09/15 - 5:04am

I think people who passionate in coding will find spare time to work on pet projects. Each of us might have a pet project but finding time to execute it, is the biggest challenge.

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

Excellent post and that's how Sillicon Valley works. You hire smart, passionate people. Lousy managers have no ambition, no passion. They don't understand this and they just don't care. That's why not everyone is like Steve Jobs, and every company is like Apple. Only 10% of the people will truly understand this post, and those are the people you need to hire.

 

Matthias Huttar replied on Thu, 2011/09/15 - 8:28am

I entirely disagree. While spending hours over hours working on pet projects during university, I've actually came to realize that there is something else besides sourcecode. Life is not (and should not be) just about sitting in front of a computer for hours and hours. There are other things in life aswell - like OMG: sports ;) ). Think about it this way: If an employee actually enjoys the project he's working on professionally (and actually sees this as his passion), don't you think, spending 40 hours+ a week with your #1 hobby is not enough. If so, isn't it a bad sign that these guys actually code at home aswell just to work on a project, they care about? Imagine, you're really passionate in card games. Do you spend 40 hours a month playing them?

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

Managers will tel you: "You are doing it wrong. Let me give you some tips on how to conduct an interview". Interesting enough, the only question that Larry Page asked his former Marketing Director was: "Tell me something I don't know".

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

I don't see how pet projects gives you any useful information about the candidate. Lots of OSS software, like most software, is very poor quality. You hire for enthusiasm and ability. You should easily be able to tell from the interview whether they are happy and passionate about software development. Ability is harder to judge. You do want to see some code but you should give a take-home test to assess the skills you need.

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.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.