If you have a family, I don't want you.
If you have enough energy to do your work but not enough energy that after work you can work some more, I don't want you.
What is it that makes employers so enamored of people with 'pet projects'? Are they easier to take advantage of? Do they work long hours without expecting compensation? Does not having dependents mean that it's easier to pressure then in to working harder?
Really, having or not having pet projects (and I have plenty, don't worry) shouldn't matter even a little bit a the hiring time. You judge people on their ability as good as you can and what they do in their free time is simply none of your business.
So, if you ask me about my 'pet projects' I don't want you.
I have old pet projects from times when my work at previous jobs was interesting but not all-consuming. The work I do for my current employer is so interesting and fun to me in so many ways that when I have spare coding time on non-work-hours, I'm still working on these work projects. My work projects are my pet projects.
Granted, someone like me is less likely to be in the market in the first place because I love my job, but if I suddenly were in the market (there are many very hypothetical reasons this could happen -- company runs out of runway, company is acquired by company that shifts focus in ways I don't care for, etc, etc) a filter like this would cut me out for all the wrong reasons.
Having said all of that, I think people hiring employees do need to employ some arbitrary filters that could potentially filter out stellar employees as a side effect, and I don't think that's a horrible thing.. it probably helps more often than not and is thus worth the rare corner case situations where it ends in a tragic mistake.
If I'm in the market looking for another job I have more than enough contacts with people I've worked with in the past that such arbitrary filters are a non-factor for me, so the take away is that if you're a great developer, develop contacts and then you don't have to worry about things like this.
Looking at projects like Ruby on Rails, Node.js and others like it where the creator created for work reason.
Or look at Linus, his side project was Git. It was something he needed for work.
What type of work does this person enjoy, are they building libraries for developers or products for end users, A lot of time people will open source their side projects, you get insight into their working practices, how clean their code is, do they test, do they get caught up in details and not the end product.
Sometimes people pets projects are working on a large open source project, for employers I believe that is the jackpot, you have their communication with users and peers, the output of their work and the thought processes that go along with it.
Employing people is not about giving every developer in the world an equal opportunity for a job, its about finding the best people for your team in a minimum amount of effort
If the answer is 'no' you'd have to ask a lot of follow up questions, some of those may be illegal, to decide whether or not having pet projects is even a possibility for the applicant.
> What type of work does this person enjoy, are they building libraries for developers or products for end users, A lot of time people will open source their side projects, you get insight into their working practices, how clean their code is, do they test, do they get caught up in details and not the end product.
Yes, that may be true. But having pet projects is not a pre-requisite for employment anywhere.
If you can not assert the ability of your applicants during an interview by asking them job related questions then maybe you should let someone else do the hiring?
> Sometimes people pets projects are working on a large open source project, for employers I believe that is the jackpot, you have their communication with users and peers, the output of their work and the thought processes that go along with it.
That is absolutely the wrong reason to go for this particular applicant because that is simply none of your business. You get what you pay for, the time they spend on the jobsite and the output they generate during that time. You have zero title to 'their communications with users and peers' and so on, and if you lay any claim to those then you're a very bad company to work for (yes, I know there are companies that do just that).
> Employing people is not about giving every developer in the world an equal opportunity for a job, its about finding the best people for your team in a minimum amount of effort
Surprise. Employing people is all about fairness and treating your applicants - and your employers - with dignity. What they do or do not do during their time off is none of your business.
The reason I would not want to work for a company like that is because I would doubt the long term viability of a company that sticks their nose in places where it does not belong.
Typically this is indicative of a 'we hire people like us' mentality. You will likely find that places like that employ just stereotypical copies of the person that runs the place instead of being representative of the workforce in general.
"Sometimes people pets projects are working on a large open source project, for employers I believe that is the jackpot, you have full insight into how they communicate with users and peers, what work they produce and insight into the thought processes that go along with it."
I used to ask this question, but now I've generalized it to asking if someone has any hobbies. I find passion in any area to a good indicator of the type of people I want to hire.
I think this is far better than "pet projects". Some people would rather socialize, read literature, play music, play or watch sports, work on cars/home improvement, paint, travel, camp, write, get involved in politics, read the news, or any number of things! Rest and relaxation are particularly helpful to mental health. Even playing video games, watching movies (with a certain amount of moderation), or doing things that are more classically endorphin-releasing "fun" than programming contribute to a well-balanced individual.
I'd rather hire someone with a sense of balance in their life.
Further, its also discriminatory against people with families, or other hobbies, or against people who don't want to do the same thing that they did 40-50 hours during the week on the weekends too.
I'm not saying that parenting isn't time consuming but it's not as good an excuse when it's so obvious that your lack of time for more programming is also caused by much less noble activities than parenting.
Of course people are going to watch some TV with their families, or play an hour of games to unwind a little, or go watch some sports game with their buddies, or spend god knows how many hours practicing their musical instruments. This is what keeps people sane, productive, balanced, and happy.
Having other hobbies after work is generally a good sign that the person is mature, and has good perspective on life.
As for having a life, let me tell you I have a 6 months old who spent 1.5 months of his life in the hospital, a wife, I'm CTO and co-founder of startup for which I code about 60 hours a week. On top of that, I have time to help my my wife with her business (my previous company), I have fulfilled time with my family, take the weekends off and have time for personal hobbies and pet projects. I sleep enough and sleep well and I'm happy and balanced.
A lot of the most involved and active people in the tech community in Montreal that I know personally have startups, children and time for their family. I'll tell you they're the most awesome, bright, funny and balanced people I ever met.
One thing that makes it possible for me is a 10 minutes walk commute. The other biggest factor is having priorities straight on how I want to balance my life. Is it easy? No. Do I always have the energy and passion to go forward? Yes. Seeing my son smile when I wake him up each morning helps a lot.
You don't have to be young, without a family and responsibilities to have the passion and energy to be able to do things you care about for yourself outside your work. Even if you work more than 40 hours a week...
Another thing: some pet projects or hobbies can take only a few hours a week or a month. So not having enough time is not a valid argument in my opinion.
Seriously, there is a lot of judgement in that sentence.
"Having a life", having a family is a matter of choice. I can choose not to have a family and work on my pet projects. I choose how I spend my time. If I sacrifice relationships in favor of pet projects, does that make me a lesser person? could it possibly make me a better software developer?
Is it really unreasonable to imagine that there are many talented software developers in the "lifeless" set of people with pet projects? Perhaps the author is of the opinion that the set of people with pet projects have higher ratio of talent compared to the full set. That is not to say that there are not passionate talented people without pet projects.
Of course you are free to make your choices any way you see fit and if you choose work over personal relationships that does not make you a lesser person.
So you can have your pet projects and another person could have their family (or both, or none!) and I think the only thing that should matter during the job interview is what they intend to do during their shifts and whether or not they are capable of doing that to the best of their abilities. Your free time is yours, not your employers and is non of your employers business.
A person who invest their free time in relationships or sports will probably get better at those things than a person who only invests in pet projects, but why shouldn't the person investing in pet projects get better at his/her activity?
I think it's unfair to say that the employer should ignore all skills achieved your in spare time because other people choose to spend their time differently.
Is that really so unreasonable? I have a 1 year old daughter, and I'll be the first to admit that she'll take priority over any work project at any time. Looking around the office, the people without kids tend to work longer hours, to more unpaid overtime and take less days off. Is it really so unreasonable for an employer to want to those sorts of people.
Pet projects are a good proxy for determining whether a developer can actually, you know, develop. Much better than asking trivial algorithm questions or getting someone to figure out a puzzle. They're also good fodder for interviews:
* "Why did you go with this architecture/data structure/library instead of Y?"
* "What's the next step in your roadmap?"
* "Why would I use this?" / "Why did you start it?" / "What's different about this and project Y?".
My fallback is to get them to provide a code sample "that they're proud of", which is not quite as good, but still indicative that they're still thinking about their craft. Hiring based purely on an in-person interview and a CV is incredibly risky - I've seen people who can talk a pretty good line, but write really obnoxious, poorly structured code.
Perhaps think of it this way: A critical part of any developer's job is figuring out what tech is coming in the next couple of years, or which is available now and not being used, pushing the envelope of what's possible. Hence why the OP says "When you tell me that your only projects outside of work are 5+ years old, that is a bad indication..."
Lots of knee-jerk defensiveness on this thread.
- The first thing I think when I read "this is bullshit" is "fuck you, you are bullshit". You start by obliterating any chance for a constructive interaction
- You are not actually engaging the arguments of the person you respond to. It seems you didn't get past his first three lines.
- Not only does it seem like you didn't read the arguments, it also seems you cannot think of valid reasons why a decent programmer would not have pet projects. Otherwise your response would have been less vitriolic.
- You are complaining about being downvoted ... by repeating the offensive assertion that probably got you downvoted in the first place and then poisoning the well by asserting that anyone that disagrees is engaging in 'knee-jerk defensiveness'. That's the second time I thought "fuck you", without even having considered what you actually wrote.
Here's another response. This time I've quoted what I'm replying to, to save you any more confusion:
> Really, having or not having pet projects ... shouldn't matter [at] hiring time. You judge people on their ability as good as you can and what they do in their free time is simply none of your business.
So, my choice is between a) someone who likes programming enough to have a personal project - code that you can see and ask questions about - and b) someone who claims to have been too busy raising a family or having a life to have done anything else but work, can't show you any code because it's either "none of your business", or so much of a drag that they can't bring themselves to do it outside of work hours.
It's a no-brainer who I'm going to pick, and it's nothing to do with exploiting him.
I think it's actually quite easy to 'care' without having a driving passion that forces you to give your life over to programming. In fact, I did it for a number of years. I did all my programming at work, and all my relaxing at home. And I was happy, and loved both.
Testing for 1 thing because you want something related is a big mistake. You can easily have both false positives and false negatives. And since you're testing for the wrong thing, you won't know until it's too late. If you ever do.
How much passion is there in the .NET scene anyway? It's very business oriented, I'd expect developers to be more sort of corporate and better at time reporting. It's not like you have to be a hipster to churn out spreadsheet automation scripts.
I hate hiring people and putting a price tag on them, it's a cruel world but not every job interview has to be like American Idol if you know what I mean. Of course he should try to find people that care but that doesn't mean that the people that care has to write excellent code, or that they have to write tons of open source code. They just need to deliver at work.
At the same time let's assume, for the sake of the argument, that having side coding project is the best predictor whether someone can "deliver at work". If that's the case then it's perfectly rational for an employer to look for people who do that.
Is it the case? I certainly think that when I look at someone's non trivial code, I can better tell whether he's a competent programmer than from reading a one page resume or even an hour long interview.
Important note: it's not the existence of the code that is important but an existence of good code.
I'd have certain doubts of someone who does produce lots of open-source code, insofar as that could be construed as they don't think highly enough of their own code to sell it.
(As I write I'm waiting for GCC to rebuild due to the need to fix a bug therein. That such a bug exists at this late date in a product so widely used as a foundational tool does not inspire confidence in OSS. I find such flaws tend not to occur in "closed" software, where someone is paid to polish the corners that nobody wants to.)
Also, people who do volunteer work are obviously unqualified.
I find such flaws tend not to occur in "closed" software, where someone is paid to polish the corners that nobody wants to.
"A" bug in gcc proves that open source stinks? Have you used IE6?
You also don't have to be a hipster to contribute to open source or be passionate about your craft. What makes you think he's looking for a hipster?
I'd expect that the average .NET developer is a lot less likely to be sharing code on github than the average rails developer though.
An applicant needs to be judged "fairly". More precisely, a false negative is unacceptable. This is especially critical when he's just above the "hiring bar".
An employer crumbles over CVs, and needs to judge fast. False positives are unacceptable. False negatives are no big deal. This is especially not critical when the applicant is just above the "hiring bar". There are others.
Hiring processes aren't designed to be fair to the applicants. They are designed to work for the employers. It's like a spam filter, except with tolerance reversed: no spam in, some ham out is cool. My gut tell me that it definitely sucks, but my brain fails to come up with a solution.
At my last job, I found myself working on several different extracurricular projects at once. I kind of realized that this meant it was time to leave (and do my own startup).
If I found someone who was supremely happy with his job, I would expect that any extra time would be spent at work, either making the product better or developing something else related to that company's business.
With that said, there is nothing wrong with working on a pet project, just that it can indicate something bad rather than something good.
But some positions do require that Olympic athlete mindset. For other positions it's a detriment.
Basically the message is "Sure work on your own projects and we will decide it's no longer in our best interest in employing you." and "If you do a side project and publish it or let it out in any way, we may decide its no longer in our best interest to employ you." I have heard stories of course but only have first hand knowledge of one person with whom Google decided to fire because they did some open source work they didn't like.
When I asked an employment attorney about these sorts of things his advice was that I could probably sue them and win but it was simpler and less expensive to just quit if I really wanted to work on other stuff.
Wow. That's quite a statement, I'm pretty sure there would be quite a few people that would like to see a bit more on that. Both from the perspective of having google as a future employer as well as to make sure you didn't make it up, it's quite a statement.
That, or publish the code under a pseudonym.
This is often referenced when a question like this comes up.
In my hiring I'd have more alarm bells ringing for someone who spends the majority of their awake time coding vs someone who loves it but also loves doing other things.
I'm selfishly in support of preferring to hire people who show a strong out-of-hours dedication and passion for their work but it's not a realistic expectation for a regular job ad. Instead, hit GitHub, hit mailing lists, find the top blogs on the topics you're hiring for, and approach the people who pop up and seem to know what they're talking about.
You might have to let people work remotely, pay them more, or come up with other ways to pique their interest, but if you really want 24/7 passionate programmers, you can get them, with enough resources.
It's amazing how few employers do this, even those who do have the resources. Grab the top talent in your areas and find them by their byproducts. Why Google/MSFT/etc aren't trying to scrape up every seriously prolific developer on GitHub at $250k+ a year or whatever is beyond me.
If you have young children, your chance of being able to do this sort of after hours programming can be near zero if you're doing all the parenting you should if you and your spouse both work.
Especially if you get in trouble for it at work (I know I've been places where you had to do 4-10 hours of paperwork to do it even).
you don't care about experience? so someone who writes ultra-high-performance code for a trading firm is worth less to you than someone who writes a 50-line rails app that lets you use the fabled "pomodoro technique"? good luck finding great developers with that attitude. but hey, at least they'll have "passion", right? because all salaried coding is generic and mindless, and anybody doing it is a drone with no skills or ambition.
* They don't have life, and are usually not the most pleasant people to work with, let alone communicate with non-programmers.
* For some reason cannot find a job that involves the passion/knowledge/skill they put into their pet project. The job market for programmers being what it is, that's a major red flag.
* They have a passion for programming, but aren't good enough to hack it in a professional environment. Often not so much a skills but discipline or team player issue, but yes, you can have a passion for something you are not particularly good at! Millions of amateur-[enter activity here] do it every day!
Having or not having a pet project is an good angle for an interview, but not a meaningful qualification in itself.
I design and build web software during the day, then at night and on the weekends I work on my own iOS and Mac apps. I've been offered full-time iOS & Mac design/development jobs but I don't take them for a few reasons, most importantly that I really like my current "real" job and the hardcore web work keeps my skills sharp.
So I'm not the first category because I'm married and do have a life outside work, I'm not the second one because I can easily find a different full-time job but choose to stay in the position I have, and the third just isn't applicable.
I don't really have a position on the pet-projects-as-interview-question topic, but just thought I'd put in my two cents.
I have a lot of passion for programming and I hack it quite well in a professional environment, thank you very much. My passion requires that I fiddle about with personal projects so I can test out new languages, frameworks, styles, libraries, paradigms, etc. without any business concerns in the least. If there is a place where I could get paid well to just hack on whatever the hell seems fun at the moment, I'd definitely make a concerted effort to work there--I don't think it exists.
When you're older and if you have children, PLEASE PLEASE spend the appropriate time being a GOOD parent. It seems like the world is more work focused than ever and parents are not spending as much time with their kids as they should. We want good programmers, but we NEED good parents even more. Our future will eventually rely on the next generation of adults and not just good software..
Employment is a two-way street.
If the employer isn't happy with your work, for whatever reason, they can fire you.
If you're not happy with your employer, for whatever reason, you can quit.
If an employer is making unreasonable demands on your time, you quit. And to be clear: there is no universal of what's reasonable, so I'm talking about your personal standard.
Employment is a risk for both parties. You risk that the job will be boring, or demanding more time than you're willing to give but you're not the only one taking the risk. Employer risks that you'll be unable to do the work or slack off etc.
For the employer, it means what? They now have payroll that's significantly lighter, and true, they're down a person, but realistically that just means they have to pressure their other employees to pick up the slack while they find someone new, and those programmers, not wanting to lose their jobs, probably do it.
Now, of course the important thing as a programmer is to have an attitude like yours, which mitigates the downsides of leaving a job. But not everyone has that attitude.
There are two interesting things you can learn about people this way, one is where their passions lay and the other is what their time management skills are like. Someone who works feverishly on 20 things and gets nothing done, or folks who consistently pop out one or two things a month, month after month, in their 'spare' time.
Interestingly a bias that perhaps the OP recognizes shows up in this blarticle (what do you call one entry in a blog anyway). What if the candidate sent a picture of a 6 piece mahogany dining room set (because they spent all their spare time wood working) or an MP3 of their latest composition ? Its not OSS, its not 'tech' per se, but its an outlet for their creative drive.
I think this point is not stressed enough whenever this subject comes up. A person who spends all his free time reading CS research papers and experimenting with different solutions to problems he encounters in his field is not passionate by this standard if he doesn't have a pet _project_ to show at the interview.
I'd treat that at least as well as a pet project, and possibly more so.
Think of a carpenter that claimed to be amazing at producing furniture, but had none to show you. Would you trust them on how well he could BS you in an interview? It's not about passion or dedication. If you, producer of code, can show me code you've produce, I'm taking a much lower risk on hiring you. And fortunately, there are enough people around with code to show that rejecting others is a pretty easy filtering decision to make.
To keep with your metaphor, ask the carpenter to make you a cabinet door.
Again, I agree with others here... if you're passionate about the startup you're working at (and you should be), that is your side project. I distrust people who work at startups that have side projects.
Better still, however, is collaboration with open source projects--you can see individual communication between people as well as the developer's ability to enter a foreign codebase and be productive, (hopefully) without introducing bugs due to ill-advised changes without understanding what's being changed.
(We don't look at side projects or open source at my current employer. I wish we did.)
It's hit or miss, but a Great Deal of Robin Hanson's blog is about social signalling and the biases inherent thereof.
Worthwhile effort, that.
At the moment the stuff I enjoyed writing the most I also got paid for. Does that indicate a lack of 'passion'?
Obviously 40 year olds are going to have less side projects, and obviously there are devs out there that treat development as a job, not a passion. I know a very good python dev that fits that description.
But seriously, no free time for side projects? Really? Absolutely no time?
It takes 30 mins to whip up something sorta kinda neat. That's an episode of Entourage. Give me a break with all this kids talk, eight year olds go to bed early, and teenagers don't need all that much attention every single day. Sure, help 'em with homework, etc. But lets face some facts, there are plenty of unpaid OSS developers that happen to be parents and they don't whine about not having enough time.
Any of these personal situations can eat into your "personal" time considerably. Add up 2 or more, and your remaining personal time is what you carve out of your sleep hours.
I'm lucky that I don't have to work two jobs like of the less fortunate, and I don't fall into all (or even most) of the categories above, but I don't watch TV and I don't have a github page.
Secondly, none of my pet projects are OSS. I have a lot of pet projects, some in their infant stages, some pretty far along. And they are not for public viewing, but for my pleasure, which is why they are not OSS. [edit: and some are a collaboration with other people who would prefer that code stays closed]
Thirdly, is there such a thing as a passionate .NET programmer!? (half-joking)
Blog author is definitely the one. He is one of the core NHibernate committers, prolific blogger with a lot of very interesting posts, developed Rhino Mocks mocking library, created RavenDB http://www.ravendb.net/ and did a lot of other neat things. So yes, there is such a thing.
My thoughts on spare-time projects in relation to other professions: http://news.ycombinator.com/item?id=2664358
can't think of a better reason for having pet projects.
simply put, you are thinking it wrong.
Other than that, I'm finishing my Master's in my 'free time'.