Pet Projects and Hiring Decisions
Wow! The last time I had a post that roused that sort of reaction, I was talking about politics and religion. Let us see if I can clarify my thinking and also answer many of the people who commented on the previous post.
One of the core values that I look for when getting new people is their passion for the profession. Put simply, I think about what I do as a hobby that I actually get paid for, and I am looking for people who have the same mentality as I do. There are many ways to actually check for that. We recently made an offer to a candidate simply because her eyes lighted up when she spoke about how she build games to teach kids how to learn Math.
There were a lot of fairly common issues with my approach.
Indignation – how dare you expect me to put my own personal time into something that looks like work. That also came with a lot of explanation about family, kids and references to me being a slave driver bastard.
Put simply, if you can’t be bothered to improve your own skills, I don’t want you.
Hibernating Rhinos absolutely believes that you need to invest in your developers, and I strongly believe that we are doing that. It starts from basic policies like if you want a tech book, we’ll buy it for you. Sending developers to courses and conferences, sitting down with people and making sure that they are thinking about their career properly. And a whole lot of other things aside.
Personally, my goal is to keep everyone who works for us right now for at least 5 years, and hopefully longer. And I think that the best way of doing that is to ensure that developers are appreciated, they have a place to grow in professionally and are having to deal with fun, complex and interesting problems for significant parts of their time at work. This does not remove any obligations on your part to maintain your own skills.
In the same sense that I would expect a football player to be playing on a regular basis even in the off session, in the same sense that I wouldn’t visit a doctor who doesn’t spend time getting updated on what is changing in his field, in the same sense that I wouldn’t trust a book critic that doesn’t read for fun – I don’t believe that you can abjurate your own responsibility to keeping yourself aware of what is actually going on out there.
And I am sorry, I don’t care if you read a blog or two or ten. If you want to actually learn new stuff in development, you actually have to sit down and write some code. Anything that isn’t code isn’t really meaningful in our profession. And it is far too easy to talk the talk without being able to walk the walk. My company have absolutely no intention of doing anything with Node.js in the future, I still wrote some code in Node.js, just to be able to see how it feels like to actually do that. I still spend time writing code that is never going to reach production or be in any way useful, just for me to see if I can do something.
If you are a developer, your output is code, and that is what prospective employees will look for. From my perspective, it is like hiring a photographer without looking at any of their pictures. Like getting a cook without tasting anything that he made.
And yes, it is your professional responsibility to make sure that you are hirable. That means that you keep your skills up to date and that you have something to show to someone that will give them some idea about what you are doing.
Time – I can’t find none.
There are 168 hours in a week, if you can put 4 – 6 hours a week to hone your own skills, to try things, to just explore… well, that probably indicate something about your priorities. I would like to hire people who think about what they do as a hobby. I usually work 8 – 10 hours days, 5 – 6 days a week. I am married, we’ve got two dogs, I usually read / watch TV for at least 1 – 3 hours a day.
I have been at the Work Work Work Work All The Time Work Work Work And Some More Work parade. I got the T Shirt, I got the scary Burn Out Episode. I fully understand that working all the time is a Bad Idea. It is Bad Idea for you, it is Bad Idea for the company. This isn’t what I am talking about here.
Think about the children – I have kids, I can’t spend any time out of work doing this.
That one showed up a lot, actually. I am thinking about the children. I think it is absolutely irresponsible for someone with kids not to make damn sure that he is hirable. I am not talking about spending 8 hours at the office, 8 hours doing pet projects and 1.5 minutes with your children (while you got some code compiling). And updating your skills and maintaining a portfolio of projects is something that I think is certainly part of that.
I read professionally, but I don’t code - this is a variation on all of the other excuses, basically. Here is a direct quote: “I often find that well written blog entry/article will provide more education that can be picked up in a few minutes reading than several hours coding. And I can do that in my lunch break.”
That is nice, I also like to read a lot of Science Fiction, but I am a terrible writer. If you don’t actually practice, you aren’t any good. Sure, reading will teach you the high level concepts, but it doesn’t teach you how to apply them. You can read about WCF all day long, but it doesn’t teach you how to handle binding errors. Actually doing things will teach you that. You need actual practice to become good at something. In theory, there is no difference between reality and theory, and all of that.
I legally can’t - You signed a contract that said that you can’t do any pet projects, or that all of your work is owned by the company.
I sure do hope that you are well compensated for that, because it is going to make it harder for you to get hired.
You have a life – therefor you can’t spend time on pet projects.
So do I, I managed. If you can’t, I probably don’t want you.
Wrong this to do - I shouldn’t want someone who is on Stack Overflow all the time, or will spend work time on pet projects.
This is usually from someone who think that the only thing that I care about is lines of code committed. If someone is on Stack Overflow a lot, or reading a lot of blogs, or writing a lot of blogs. That is awesome, as long as they manages to complete their tasks I a reasonable amount of time. I routinely write blog posts during work. It helps me think, it clarify my thinking, and it usually gets me a lot of feedback on my ideas. That is a net benefit for me and for the company.
Some people hit a problem and may spin on that for hours, and VS will be the active window for all of that time. That isn’t a good thing! Others will go and answer totally unrelated questions on Stack Overflow while they are thinking on the problem, they come back to VS and resolve the problem in 2 minutes. As long as they manage to do the work, I don’t really care. In fact, having them in Stack Overflow probably means that answers about our products will be answered faster.
As for working on their own personal projects during work. The only thing that you need to do is somehow tie it to actual work. For example, that pet project may be converted to be a sample application for our products. Or it can be a library that we will use, or any of a number of options that you can use to make sure things interesting.
You should note as well that I am speaking here from our requirements from the candidate, not from what I consider to be our responsibilities toward our employees, I’ll talk about those in another post in more detail.
Then there was this guy, who actively offended me.
The author is a selfish ego maniac who only cares about himself. As an employer, you can choose to consume a resource (employee), get all you can out of it, then discard it. Doing so adds to the evil and bad in the world.
This is spoken like someone who never actually had to recruit someone, or actually pay to recruit someone. It costs a freaking boatload of money and take a freaking huge amount of time to actually find someone that you want to hire. Treating employees as disposable resources is about as stupid as you can get, because we aren’t talking about getting someone that can flip burgers at minimum wage here.
We are talking about 3 – 6 months training period just to get to the point where you can get good results out of a new guy. We are talking about 1 – 3 months of actually looking for the right person before that. I consider employees to be a valuable resource, something that I actively need to encourage, protect and grow. Absolutely the last thing that I want is to try to have a chain of disposable same-as-the-last-one developers in my company.
I have kicked people out of the office with instructions to go home and rest, because I would like to have them available tomorrow and the next day and month and year. Doing anything else is short sighted, morally repugnant and stupid.
Comments
"Put simply, if you can’t be bothered to improve your own skills, I don’t want you"
This sounds like whining to me. I improve my coding skills when I am at work not when I am at home. For example, I am currently a grad student and my per projects at home are all about computational complexity theory and philosophy of math. I develop all day; I work on large scale Python projects for scientific computing and I am always interested in learning more. That's why I leave all the developing at work. I am passionate about too many things to focus only on coding and if a future employer wanted me to be so single-minded that my non-work time is taken up with work-related skill-building, I would under no circumstances work for them. You could not pay me enough money to stop studying philosophy and A.I. in my spare time.
Also, this is all ignorant of the real economics of jobs. What if your passion is that mathematical theory of origami folding (like several math professors I know who write research papers on this). The only job that could satiate your passion and make you feel like your job was a hobby and you're lucky to get paid would be some sort of elite tenured professorship... and simple pigeon-hole principle says that you shouldn't count on that.
Of course it is ideal if employees like their jobs and are happy and passionate. But if you only want people who are single minded and have only one passion and can't arrange their time how they choose, then jesus, I mean, what kind of business are you running? That sounds like the Borg to me. No thanks. I'd rather work at, oh, say, anywhere else where the expectations are not retarded.
Also, it's pretty common for it to be a legal issue. That's really common with finance firms and government labs. Finance firms do pay well but government labs do not. Employers restricting your ability to disseminate code has nothing to do with pay; it's pretty standard in some domains. And no one worries that it will affect their ability to get a different job later, because almost no employers are going to expect them to be single minded about coding.
In fact, when I interviewed for an algorithm developer job with Lincoln Laboratory, they talked to me at length about my non-coding interests, other creative endeavors, even what kinds of books I liked to read. Like Socrates said, "the unexamined life is not worth living" and if you work as a coder and then spend significant time developing pet software projects, welp, sorry, but your life's going by unexamined.
Lots of straw man arguments here, which I'm sure will be answered with more straw man arguments from the other side. Does anyone really think this will be resolved?
Both sides have elements of truth, but ultimately it's Ayende's company, and he's hiring people to work at his company. As long as he's operating within the law (no gender/racial/religious discrimination and the like), who really cares?
@ayende I really appreciate that there are companies like yours out there that know what they want in an employee. Too many companies hire blindly.
@ems how are you going learn a technology that you are not using at work? I also got a bunch of questions like that but I had many demands like: Being able to work on my pet project. Being able to work from home etc. Without this I wouldn't have taken the jobs.
Do you just accept the pay the hiring company is offering or do you ask for a certain amount? Why don't you do the same with all of the contract? Personally I wouldn't take just any job...
Hey guys... calm down!
No one forces you to work for Hibernating Rhinos! You can go back to your XYZ-software-experts-company, fire up VS2005 and add cool new features to your VB.NET WinForms application. That's ok.
It would be awesome to work for Hibernating Rhinos!
I spend enough time at home reading professional, learning new technologies and coding. And I always think how I could apply it to my current work (also when it fully unrelated). My home code it’s a small POCs based on my work's domain. It's not organized like a project. It is testers. I don’t have a useless pet project. You can't learn from it about my skills.
I couldn't agree more with you Ayende!
Having pet projects is all about PASSION for what you do. For me, pet projects have always been a way of doing things I want to learn, without waiting for customers to pay for it. I get an idea, I implement it. Simple as that.
Some pet projects never takes of, others keep growing. One of the projects I've been working on for a couple of years now has about 50 000 unique visitors per day.
The things I've learned about scalability, seo, trolls and social marketing on these pet projects makes my customer projects a lot better. It maks be a better employee. And I too has both a wife and two kids which I spend a lot of time with.
// Johan
starts popcorn
Maybe the way to diffuse controversy is to explain this is how you plan to find a small number of developers to work for you- not to determine who is employable generally. Whatever critera you have, there will be error simply because you're human. If you accidentally let a good candidate go, they will be able to find another job. If you accidentally hire a bad candidate, thats a very expensive mistake. Hiring criteria should be over-selective generally, and getting it right is hard.
@ems When I read your comment I get the feeling that you actually didn't read Ayende's post fully, but just came here to rant. And you certainly seem to fail to understand the fact, that in small companies, hiring new people is not only about their qualifications but also about the chemistry between the employer and the employee, not to mention the chemistry between the new guys and the rest of the team. If you cannot share the passion for code it makes for a poor starting point for an employment
I'm a developer myself and I love coding. I spend a lot of time coding on pet projects when the kids are put to bed and the wife is watching tv. I'm passionate about it and simply love the fact that I am lucky enough to get paid for doing, what I see as my hobby.
@ems Do you really believe that if a person considers his/her job as a hobby and therefor continue "working" after the real work is done, that that person is one-sided just because of that?
What I instead would consider to be single minded is a developer who does not care about other technologies that what he/she is using at work.
My point being, really, is that I totally understand Ayende's point of view, I wouldn't hire a person who doesn't have pet projects either.
As the person doing the hiring you are by definition doing it when you don't have enough time or you wouldn't be doing it in the first place. The first time time you do a hiring round you have probably left it to late because you underestimated the time it will take, and for permanent staff it takes ages.
The sad fact is that there are a lot of very poor developers out there. And anything that can be done to filter the list of applicants will make recruitment faster and easier.
At least @ayende is being open about the criteria, its not something like your CV is ugly or something stupid.
The place that I work for at the moment has coding tests for applicants and it makes a massive difference, but you still have comments from applicants along the lines of "I'm not solving your problems for you", err sorry.
@Mads Chemistry between the employer and the employee can be achieved if a face to face talk and not by visiting companies web site or looking at a pet project code.
@Stan When did I or anyone talk about company websites ? And AFAIK no one have said anything about looking at the actual pet project code. The quality of that code isn't really the subject here ?
@ayende I 100% agree with you, I'm sick of working with guys who just come in to work to cash a paycheck and expect that everything will be provided for them.
Do I spend 10-15 mins at work to read a blog post and try something out if it interests me, yep. Do I mull over work problems at home while I'm watching TV, absolutely.
I too work 8-10 hours a day, spend at least a few hours a week investigating new development techniques and approaches, find time for family, friends, sport, cars, and travel.
Unfortunately I think we're in the minority but I guess that's an investment in our future.
It's your company: hire who you want and let the whiners whine.
Ayende, I think the problem with your post was the use of the word "passion." It's a word that's been over-used and over-hyped and it's very much become a cliché these days. To me, it also has connotations of people spending so much time writing code, tinkering with new libraries and tools, reinventing wheels, and blogging about it, that they never get out to get any ideas for real-world applications to code in the first place. I've said in a couple of places recently that programming is a means to an end and not an end in itself, and if you're too passionate about programming, it's all too easy to get carried away and lose sight of this fact.
What you're asking for in reality is "professionalism" and a "portfolio."
Every employer has his own perception of hiring requirements.
There is always more than a single way to reach to the same result.
Searching for Mini-Me clones to hire, will lead to a very dull and boring working enviroment.
Diversification, produce great results and widens the horizons.
For many people growing a garden , or getting theri hands dirty painting, or playing the saxophone, or care about their pet animal could make them a lot productive.
Programming is not about technical skils only.
I think what matters is the context and kind of programming work. When the usual scope of work revolves around maintenance/minor enhancement to a standard product (like most offshored work ) for the next couple of years, there is no need for passionate/geek programmers. In fact, geeks get pretty bored and irritated two days down the line with this kind of work and quit very early.
For programming that involves cutting edge technologies, application of theoretical computer science etc, there definitely is a need to find that enthusiast who is coding and researching in the back of his mind too rather than just 9-5. Hobby projects are definitely a pointer to the persons interests as such. If my work involves hard core programming, I would rather include 'hobby projects' as a cut-off criteria.
Just getting that stuff somehow working is the 1st programmer's target, while the second programmer is the one that writes that beautiful-code.
-Nitin
@Mads You talk about chemistry between employer and the employee. I'll try to explain what I mean in another words. Employer can't get a feel of chemistry with candidate just because he liked a quality of his pet project code. The same for the candidate. He cant say that he like future boss just because he visited company web site and it looks cool. They should to meet and talk face to face. The real subject here is a code presence or its absence. If you don't have pet project you are not hired, at least by Ayende. And yes, it's Ayendes company and he may hire whoever he wants :) As for me its not a criterion.
Thanks for this clarification Ayende - you certainly have good reason to see pet projects as a considerable indicator of a developer's passion.
I still have one thing niggling at me, my pet projects are generally small and trivial. They're developed with single goals in mind; to familiarise me with a technology or programming approach. In fact, my paid employment has, so far, always stimulated me enough for me to say that the projects I am most proud of and excited about are the ones owned by my employer. I could tell you about these projects, hell I might even jump up and down on the table and try to rewrite it on a whiteboard, but I couldn't show you the code. Perhaps this is just the issue with being happy in a job - it doesn't encourage one to consider how to be in the best position when it's time to move on.
One reason I have no pet projects is everything seems to have been done before, and I have no ideas that seem interesting, so any coding I do outside work is research for an article I am thinking of writing.
I would be cautious about working for any client who wanted to see pet projects. Especially as I am investigating Visual Languages which are not.
I agree there are bad developers out there. I would NEVER hire anyone from the US teams I worked with on the last project, though one of the managers used to be a developer and I got the impression he had been a good developer. The European team was vastly superior in almost all ways, including common sense. On the other hand I would hire most of the people I worked with.
Great posts, both of them. I agree with you. I talked about this when I coined the term "5:01 developers." It's true, Pet Projects are important.
http://www.hanselman.com/blog/501DevelopersFamilyAndExcitementAboutTheCraft.aspx
Ayende, having had employees before and hired people, I completely understand what you are saying.
I made all the wrong decisions back when I ran a web agency and since have sworn off ever employing anyone again. If I had thought about stuff like this then I think I would have been if not rich, at least a lot better off now. I ended up feeling sorry for people and giving them a chance but charity does not work with capitalism.
Ignore the buggers, you are right on this one.
Ryan
This post is very valuable for current and future recruiters as well.
Maybe you should add that assessing the current skills of a candidate is usually very easy in my experience, but that it is much harder to find out where he will be in x years.
Ayende, this post reflects what I thought you meant anyway. Passion is... refactoring even your blog posts. The use of the P word handed a few commenters kazoos for the "Work Work Work Work All The Time Work Work Work And Some More Work parade" though and it was that that I wished to counter. Unfortunately for you, passion is the euphemism in vogue among the evil and bad for exactly that parade. It's a good job you didn't also use the F word - flexible ;)
I'm very lucky in that there's scope for structured play at work with the understanding that the company is only really bothered about code that's in or headed towards production, and my 2hrs on the bus every day gives me ample time to do the reading and reflection I need to keep my job-based skills reasonably up-to-date. Hence my Do Something Completely Different At Home clause. Hobbies help with honing the parts programming can't reach but needs.
Looks like all but one of my arguments (the legal one, and hey, we make our decisions) got through unscathed. I'll take that.
Stan, I get 100 cvs in a five hour period, and that inset unique. I'll do whTever I can to reduce the number of people I actually have to interview, because it is taking too long Having easy way to disquLifypeople is important, otherwise you waste lot of time
I agree with the post. 1. As already said, this is Ayende's company so he can hire whom he consider worthy of working there. I believe the employees can expect interesting and challenging tasks in return. 2. I also tend to think that people who spend some hours of their personal time a week on the professional growth and, particularly, on coding their pet projects are usually more competent than ones who don't. I.e.If I am interested to read SICP, I should spend my personal time and should also do exercises to master it. I believe it makes me better as a programmer, why can't I find some hrs a week to do it?
I truly agree with 'passion' thing, just to use myself as an example... Last year was great to me. - I played over 50 ps3 games - I had a part time job - I was on the ending of my grad course - I spent lots of time with my gf - I did over 4h/week of exercises, mainly boxing - I read LOTS of blogs and few books - I heard to some podcasts - I learned about 3 different technologies in 2 different languages - I applyed to some jobs overseas
Well, I enjoyed life. How that was possible? Because all of this were passions of mine. Coding is a passion, Playing games is a passion, my gf is a passion, my grad course was a passion, reading blogs is a passion, learning new things is a passion. Going to another country is still a desire... Exercising, well that's not really a passion :P But I needed...
When you're passionate about something (or really in need, or wishful) you will find time for it, but if you aren't you will only find excuses not to do it.
IF you want to find coders who are passionate, excited, happy with what they do, you're doing the right thing and setting up the right criterias to find one.
Wish you luck!
@Richard: However the counter to that "reading and reflection" is one thing Oren doesn't find as valuable, hence talk the talk, but not walk the walk. I don't know your situation, but if your looking for someone with experience with MVC and you get two candidates with ASP.Net WebForms and one guy has set up a couple small sites of his own using MVC because it was something he was interested in, and the other guy had read about it on MSDN and a couple blogs, which would you be leaning towards?
Really, I don't get how this rubs people the wrong way. Perhaps he's being a bit blunt, but at least he's honest and up-front about it. Put plainly if Employer X is looking for a person exhibiting aspect Y, and you don't, then it's not likely going to be the type of employer/culture you're going to be happy working at, now is it? I went through the same thing with a local company that as part of their selection criteria gave me a question about employing a math formula to generate a pattern of numbers. Their opinion was that strong math skills made good developers. My opinion differs, so I had a good laugh and got on with my life. (The role had nothing to do with encryption/security or anything like that.)
@Alexk Your pet projects don't need to be something new or innovative, it's just a reason to learn,For instance, You want to learn a new language but don't know what to do, so try to find something that exists somewhereelse and implement in in this lang.
Ex: I wanted to learn coffeescript, but didn't have any ideas for a 'real' project. So I decided to implement a xUnit Framework for it :) Probably there are few somewhere, but it's helping a lot in my learning of the language :D
@Ayende 100 CVs: people living in Israel or ready to move their on their own dime? Wow.
@ayende -- My objection was that you have come up with one issue that is your triage criterion for interviewing. If that's what you want to do, fine, but I would not want to work for you.
It is true that the downside of hiring a poor employee is much greater than the downside of passing up a good one, but if you are using a single triage criterion for interviewing, then you aren't likely to be making good hiring decisions.
People get too personal about this. Ayende's requirements did upset or worried lots of us professionals/geeks.. ;-)
"Think about the children" - hahahha
I'm surprised this is such a controversial topic, how do people expect small software development companies to operate? (Now if this became the standard thinking at your average bloated corporate IT shop I could see why there would be a mass panic)
"Put simply, I think about what I do as a hobby that I actually get paid for"
I am 53 years old and a partner in a small consulting firm. I still can't believe I get paid to do this, and paid well. I still get jazzed by all of the new technologies and products. Why? Because just like Ayende I turned my hobby into my profession. I love to learn, it keeps me from getting bored.
My wife gets a kick out of hearing my business partner and I on the phone talking about what we are working on. She says we sound like two little kids at Christmas. I take that as a compliment.
You just have to balance it out.
I think a lot of people are mistaking recruiting for skill and recruiting for culture.
Of course you can be a highly skilled dev and never have any side projects. You might even care deeply about your work. But it's unlikely that software is your passion.
I've worked in both environments (the "501" devs, and those with side projects) and in general people who develop outside of work are IMO a lot more passionate and more interesting to work with.
I have two young kids (3 and 5) who I drop off at school and almost always put to bed. I spend my entire weekend with the family or working around the house. I exercise regularly.
That still leaves me with a few hours a week to split between my hobbies. I usually hack at night while my wife's reading or watching TV. I'm sure most people put at least a couple of hours a week into their hobbies.
Cults, Whoever said that this is my only criteria? That is just a good way to get rid of a whole lot of people that Rent likely to be a good match for us
My definition of passion for your job would be to ask yourself: would I be doing the same thing even if I weren't getting paid?
I agree with you Ayende. It's what it takes to be in the big leagues.
Nice response Ayende. I agreed before, and agree still. I think @Stan had a good point about chemistry. He's not saying that someone who doesn't code outside work won't mesh, but the people that work for Ayende think like Ayende. So whether or not you have pet projects is some indication that you are like-minded and will have a better chance at meshing with the team. That doesn't mean you absolutely will, but you odds are better because your personalities (at least that one aspect) are similar.
@Steve Py,
I agree somewhat with that assertion of that company, but with an important distinction. It's more about the analysis capacity of a person, which is important in being a good developer. In math, to solve a problem you have a set of rules. Based on my experience helping other understanding math at school, in my opinion most people know how to apply the rules. However, analysing in which order to apply which rules is where they fail at.
Problem with their approach is that they concentrate on pattern recognition (if I am correct). And that they require people to remember alot of math stuff I don't use anymore.
@Uncle Little Scotty - That's a good way to put it as well, and I would venture to guess that people who say "Yes" probably have pet projects. :)
@Steve Py - as I stated, I'm very lucky in the amount of structured play I get to do while at work: that's learn the feature/technique/slightly aimless wandering bits of actual code. [Hopefully] that covers walking (or at least crawling). I'd never try to talk the talk without having done so. The reading and reflection is in addition to that and usually gets done on the commute - sometimes it takes quite a while to transfer to the play area, sometimes it never gets that far. New languages come under the "completely different" remit and thus get done at home (I didn't say computer stuff was banned there, just that there's a lot less than there used to be now that I get paid for some of it)
@chltx - I don't think for a minute that Ayende uses "one issue" to triage his hiring process. This is a criterion that must be met. And recruiters do that all the time. In most cases just reading the CVs can be extremely time consuming, and it simply is not possible to interview everyone that applies for a job. Especially if you receive 100's in a short timeframe (wow that's a lot).
You can't measure passion for the craft. You can only try. You try to do that with your own set of measurements, which is cool, it's your attempt to measure passion. However, what you fail to see is that whatever you measure is only your way of what passion looks like, which doesn't have to mean the same for another person.
I think it's more important to look at why you ask all these questions, why you want to see more than just 'show up for work'. My guess is that you want to avoid hiring 'the asshole' and only want to hire people who are so good you can simply hand them a briefly written job description and they create the most beautiful software you could ever imagine.
Stop dreaming, that's not gonna happen. You WILL hire an asshole eventually who will make Dilbert's Wally look like a work horse. You WONT likely hire the person you are looking for but you might come close.
What you overlook is one important thing, which I see lots of people overlook in this thread: being the employer/owner of a company isn't equal to working at a company. You (like me) started and own the products you sell, they are more or less your children, you are attached to them, because they're your creations. However you can't expect from an employee to have the same kind of commitment: your employee simply signed a contract which says: these are your obligations and these are ours. (in general: employee works and you pay him/her). That's what the employee is hired to do, nothing more. You might want to hire a person who does more than what s/he's in theory obligated to do, but do you do more for that person as well? As in, paying an extra bonus? Giving company shares because they excelled?
It's not a 1-way street, you know.
It's hard to hire people who meet your own criteria. I know, I'm in the same boat. That doesn't mean it's realistically and above all FAIR that you can demand the things you do. If you're so afraid of hiring a dumb-ass, a slacker, then don't hire a person, because you WILL hire a dumb-ass, a slacker eventually (grow beyond, I think it was, 8 people and you will hire him/her). One way to limit your risk is to use 6 month contracts: if the person sucks, you lost 6 months tops. Include an option to hire them longer in the contract, so when they are actually great, you can do that without problems.
But above all, drop the demands, you can't demand things, you can only ask. Politely.
I am curious about all the "I legally can't have pet project people", for one I really doubt that is the agreement they signed (it probably says anything developed on work computers during work hours is property of the company), and even if it did sign something so wide spread that they can't code anything, I imagine such a document isn't legally enforceable.
Ask yourself this, let's say you are building complex finacial services for the banking industry, do you really think your employer cares if you help your aunt setup her Facebook page, create a one page HTML page for your niece's school picnic or help your mom setup Shopify for her candle making business? According to the "I can't legally do pet project" crowd, they can't do any of that either. Hell, they can't help setup someone's computer because it would probably violate the agreement.
The reality is your employer only cares if you are building something that competes with their current product, and this is their defense against it.
Let's put it this way, you work in a ASP.NET Web Forms shop, but on your own you want to learn ASP.NET MVC. You download VS 2010 Express, the personal version of Test Driven.NET on your own computer and create a simple app. Work won't let you use ORMs? It's the perfect chance to throw in EF, NHibernate, Subsonic or whatever, so you create a simple 2 page app that pulls up the draft order of every NFL draft over the past 20 years and shows how many 1 round QBs have been a bust. Trust me, your employer does not care that you've done this, and they don't care if you put it up on github*.
This is the kind of thing Ayende is looking for.
Or an alternate version of @Uncle Little Scotty's question: What would you do to occupy your time if you won the lottery?
@Ayende, for what it's worth, I agree with you. I don't run my own company but I have been involved in interviewing/hiring and it is incredibly difficult. I think one of the most important attributes of a good developer is their ability / willingness to learn ... and as you point out it's difficult or impossible to learn programming except by doing.
At the same time, there are lots of employers expect you to work 10-hours days and be available for after-hours support the other 14 ... and who will lay you off rather than retrain you when the next wave of technology comes along. What's particularly interesting (to me) is that while most companies are no longer loyal to their employees, the still expect employees to be loyal to them. So it's easy to get bitter. I've been there; I went through a period where I didn't even want to think about technology after I left work. But ultimately that's counter-productive ... If you do work for one of those companies, shake the dust off your sandals and move on.
I'm not disagreeing with you, just saying I understand the bitterness. (For the record, I would love to work for Hibernating Rhinos, but I don't think I could persuade my family to move.)
@Daniel Lang, Lolz! +1
Frans, In generally, I agree. Except that so far we have managed to hire Good People. Eventually I am sure we will get the Bastard, but we can fire someone a lot quicker than 6 months in here. I think that I know how to create a good working env. And how to get people excited. We will see if I can get it working when we scale higher.
+1 I used to ask during interviews “How many server boxes you have at home? Describe how you have built them.” Today, I ask to show me your Web / Mobile apps you have developed yourself, for yourself (not as a job).
Steve, As someone who was in the military, and works closely still with people who do. They won't care, not one bit, for stuff that isn't either using classified data / algorithms. Stuff like what you talk about, never matter.
More interestingly, almost all such contracts include the ability to say "except by explicit written permission", which you should be able to obtain fairly easily
I agree with your post completely. However, I feel that in our industry and especially in the .NET space "not passionate" culture is everywhere. You can still find passionate people that may have never worked anywhere that nurtured that type of behavior. It's very contagious once you are and people that didn't have pet projects can end up being your most passionate employees.
I'm fairly certain that nothing I've said is something you haven't already considered though.
Good luck on finding your candidates!
I am living proof that to stay current and passionate about your profession you do not need to have a pet project. You seem to be making the incorrect assumption that (pet project) = (the only way to improve your skills). I make it happen even though my life is completely insane at the moment. However I love pet projects and am envious that you have the time to do them. I will get back there soon.
I don't think it's wrong for you to do this, but it leads me to believe that you may be the type of employer that would cause me to look over my shoulder when I'm in a tough spot. If your programmers have a difficult year or two and cannot maintain a pet project and cannot make it to any courses or conferences for a while should they be concerned? Even though they haven't lost their drive/passion/edge? I know I would feel that way after reading your articles. If one of your developers is in that position right now he may be circulating his resume as we speak :)
Incidentally, your football player and doctor examples are a bit off in my opinion. I don't have an off season, do you? As I understand doctors do EXACTLY what I'm currently doing. They read journals and exercise what they learned in their practice.
Funny, I just asked the question about hiring and open-source participation requirement 11 hours ago: http://twitter.com/#!/otisg/status/114175776852680704
"I wouldn’t visit a doctor who doesn’t spend time getting updated on what is changing in his field"
So do you expect a surgeon to practice on cadavers at home or is it good enough that he updates his skills while he's at work?
@k2dae
Yes, because having a dead body in the basement is exact same thing as throwing together a web app and putting it up on github. Glad you're here to point out things like that.
My sister is a doctor, and she is constantly reading up on new treatments, going to seminars/conferences, and just in general doing what she needs to do to stay current. She does this so when situations arise that may benefit from new treatments, she's already hit the ground running. I'd rather go to a doctor like that than one who doesn't.
For all of you that say he is wrong, let me say this. Whether or not you agree with him or not, you have no business judging him. The great thing about being an entrepreneur is that you get to choose the culture of your organization. Ayende believes that having passionate developers works for his organization, and he has worked out a set of criteria by which to select such developers. If you don't fit that description, then perhaps you're not a good fit for his company. It doesn't mean you're a bad developer, it just means that you don't fit the culture he wants. Deal with it. As a satisfied user of his products, I can say that it would appear that this strategy is working, so I see no reason to change it.
"Think about the children – I have kids, I can’t spend any time out of work doing this."
Now let me say that I went through this myself; my wife and I both worked while raising our two kids and to say it is tough is an understatement. But still...I often think about what it was like for the generations before us, who did not have the technology and labor saving devices that we have, and who also somehow managed to raise children.
I live in the midwest United States, and I often imagine a farming family on the prairie in the early 1800s. Father and eldest sons up at the crack of dawn, out into the fields, not to return home until after dark. Mother and daughters and youngest children slaving away at housework and cooking and tending to the animals for just as long. Repeat that day after day. Blazing hot summer followed by freezing winter. I don't think we can even comprehend it.
I don't imagine these parents had much time to tie themselves up in knots of angst regarding whether they were spending enough quality time with their children. And yet, these parents and subsequent generations of parents did such a successful job of parenting that they built this great county that we weenies today inherit. We truly stand on the shoulders of greatness.
Sure, we have problems today that they couldn't comprehend, but at the same time, they'd no doubt laugh and wish they had such problems. Life is so tough that you can't raise your kids and still find a little time to work on a pet project? We could all do with a little contemplation of our struggles vs the struggles of those that came before us.
@Steve - Actually Steve, it is YOU whose argument is off point. The requirement of creating pet projects in your basic is akin to a doctor practicing on dead bodies in his basement when he gets home.
A doctor studying is akin to what most of us developers do - study.
I guess the bottom line is Ayende can do whatever he wants in his hiring process. The massive negative response stems from it being published in a professional mailing.
...Which brings me to Todd: You are also wrong. We do have a business judging his statements. If it were simply his private practice that he believed in, then you'd be on point. As it stands, it was published in a massive professional mailing, therefore his words have potential reach and mean more than just stating a blanket opinion. It could affect entire organizations depending on who his words reach. The power of the written word is dangerous, and even more dangerous when it can reach millions at once.
So the community as a whole has FULL right to tear apart his statements and judge him by it. Hey, we're all OSS advocates here, right? You put your code out on Git, isn't open to scrutiny by the community? Think of this as the equivalent. It's both open, and passively passing judgment on developers in the community indirectly, so they aren't supposed to have an opinion on the matter? I'm American, so that's not in my make-up to think that way. Whether that's good or bad, I can't in good conscience agree with your opinion.
I'll give Ayende this, this further explanation is better than the original. I have "pet projects" at work I could take with me. Libraries I developed and use both at work and abroad. Sure, they may not be entire projects, but it shows to some extent my capabilities.
The interpretation of the original blog was that we should all be working on pet projects (i.e. dictating our hobbies). That we should be spending hours per week grooming said projects. That we should all be creating OSS stuff so the business world will "accept us."
Look, I have enough projects on my plate to add more to the plate. I support about a dozen websites, receive e-mails on each every week (read small side business for "fun money"). I also hold down a regular job, I am a single full-time dad, and I am about to go to work with / speed train from a bunch of Microsoft VIPs on projects that require massive NDAs. But I don't flaunt this to make an argument for hiring. I've been employed as a developer since 2002, never been fired, and never been let go of as a contractor for my side ventures. Maybe college students need OSS work to show they have experience, but in my opinion, my experience speaks for itself.
You wouldn't hire me? Great. But your original blanket statements of passion is only viewable through pet projects is complete monkeyshoot. That's where the negative reaction comes from.
If I'm tied to all this and still not considered passionate about my work, what do I need to do? Start working on Open Office, put my daughter in a boarding school, and live in a basement for the rest of my life in an attempt to seek approval from the OSS community and employers who think this way?
If that was the measure of my success by an employer, I would reciprocate on the pass of the potential offer.
Nobody offered - "I cannot do pet projects, I spend too much time reading Ayende's blog?"
@Terry, you don't have an innate right to get hired by Hibernating Rhinos.
Regardless of whether this is a noisy filter, it's fast, high entropy, and better than random. When dealing with a glut of resumes, it's useful. It's possibly horribly unfair -- but being fair isn't a legal requirement.
And for the "work won't allow me" people...my company's pretty bastardly about it, officially, but I alternate between getting permission (which can take over a month) and just ignoring it, and nobody's going to sue me over working on a compiler at night when my day job's an ad platform.
Thank you for the follow-up article.
I really didn't see the big fuss with what you were asking for. The gist of your message is that passion equates with output. Output with our industry is code.
I also appreciate your stance on finding the time. It is hard. Yet, we can all do better with time management. I will say that when you have children and you want an active part in their life, the time is even harder to find. With marriage, time is also needed to keep the relationship on track.
I'm at the point where I am realizing that, you are right, 3-4 hours a week adds up quite a lot. I have decided that for me, finding an hour or two between 9pm to 11pm during the week, will allow me to have some focus on this.
I am an avid reader of blogs, both technical and otherwise. I agree with you that it is just not the same as writing code.
We are all born with certain level of aptitude, and I have realized that I may never reach the same level of skill as yourself or many others I read about.
Thankfully, it is not necessary.
Working as a full time contractor on multi-million dollar projects over the past 6 years, I have realized that a little bit of extra effort goes a long way to stand apart. Your comment about staying employable completely resonates with as it is absolutely true.
@Chris Wright - That's still missing the point of what I was saying. The initial repercussions were not in specifically in regards to Hibernating Rhinos. It's not even that any of us truly disagree with the fact that he does this. In fact, I think it's his right to choose his team however he wants (within legal reason). The repercussion is due to the fact that it was posted on an internationally syndicated chain mail, stated opinions and convincing arguments of said opinions, and consequently, is in a potential spot to create influence because of this.
So, it's not anyone's innate right to be hired by anyone, but to counter the arguments and potential damage of international public assertions of accurately measuring ones passion in their field.
What if, by chance, a CTO of a major conglomeration, who never programmed in his life was handed an internationally syndicated letter stating that the only programmers who have passion are those that work on OSS or pet projects. Knowing that some executives often times specialize in buzz word fever and knee jerk mania, what do you think could potentially become the new standard for that corporation?
I know this is taking it a bit to an extreme, but you say that the statements made in the original blog should be met with no discord. That while Ayende has the right to express his opinions internationally about what he believes should be the judging mark of a passionate developer, while those of us in the development community have no right to recourse?
@Terry,
A doctor can't legally have a dead body in their basement. Kind of a big difference. How about we stop it with the doctor/dead body strawman and think practically.
I think we can all agree that we'd prefer to go to a doctor that we know spends at least some time after hours trying to improve. Right, can we at least get there?
Ayende is arguing that doing pet projects/playing around with code is a much better way to improve yourself than just reading MSDN. If you disagree with that and somehow think that reading is better than coding in this regard, that's also fine because that's your opinion. He happens to believe what he believes, he owns the company, therefore it's his decision with how important it is.
But I'll ask you this, whether you are reading or coding, it's still working improving yourself outside of work. So why not code rather than just read? You'd be hard pressed to find anyone who thinks that just reading about a subject is better than "doing" the subject. Doctors can't "do" their profession in their spare time, but developers can and should if they truly want to improve. If a developer has no interest in improving on their own, I'm not going to pay them six figures and great benefits to be a drag on my team. There are plenty of .NET shops out there that will take them, but like Ayende mentioned, I'd rather find out prior to hiring the that they don't care, it'll save everyone a lot of time and money.
@Steve... I didn't start the doctor thing, but fair enough. However, there is no difference in a doctor studying outside of his practice and a developer studying outside his practice. So the comparison was wrong to begin with and only further justified the counter argument.
The answer to the rest of your statement has already been answered by me specifically. See, the thing is, I do code outside of work, and I do further my career in more ways than just reading (even though, I think my outside work should not be dictated by my career choice).
I stated that here:
"Look, I have enough projects on my plate to add more to the plate. I support about a dozen websites, receive e-mails on each every week (read small side business for "fun money"). I also hold down a regular job, I am a single full-time dad, and I am about to go to work with / speed train from a bunch of Microsoft VIPs on projects that require massive NDAs. But I don't flaunt this to make an argument for hiring. "
Truth is, I probably do more on the side than most people with "pet projects," yet my projects as a whole both at my place of employment, and on my outside work, cannot be shared with the world by me as Open Source.
As far as Ayende having the right to choose his own people, I think I've already covered that a dozen times or so, and yet every response glosses over the point to bring it back again. The point is NOT about his personal hiring practices.
Terry, Then there is a good chance that that CTO's company would get a lot more done, I believe.
And would likely pass over every Microsoft, Apple, Government, and fortune 500 company employee. Truth is that people who are tied to the business world are tied to business rules. Often times this supersedes open source initiatives.
Hmmmm during my time working miscellaneous jobs(non computer related) during these past 2-5 years, I've designed 150+ web layouts, 20+ websites from scratch, 5 of them being mainly social media websites, and have refined my skills to the point where i now have my very own MVC framework that i'm still building up on, and real-time web solutions. So yeah....i think pet projects help show that you have a passion but more importantly, helps progression. I'd spend about 0-4 hours a day doing my hobby, and from that, I've learned so many different things. I'm currently 23 years old now, married, working 8-10 hours a day, and i still find time to do my passion. Work projects are never cool as home projects. From my hobbies, I've won multiple competitions, web awards, and I get to show off my work to anyone. I find excitement in turning ideas into real life. So I agree that "Pet Projects" play big roles in your willingness to purse something you like on your own.
Terry,
Really? Because I know a lot of Microsoft employees that contribute to open source outside of their official jobs. I work in a fortune 150 company, and I contribute to OSS projects as well as have several non-open source projects that I work on for myself. Google is a fortune 100 company and its employees contribute reams of code to the community, both on and off the clock. So your argument doesn't hold much water.
I actually think that both sides of this argument have got it completely wrong. Most countries (to be fair I dont know about Israel) have employment law whereby simply not hiring a candiate purely on the basis of not having "pet projects" would be illegal. Not hiring an older person because they were looking at a junior position would also be illegal and discriminatory (consider if this person was re-entering the workforce after taking time for some reason, or, as in my case, changed careers. I would have been stupid to think I would be hired in a senior position simply because of my age... still need to climb that ladder).
Don't get me wrong. I think that Ayende is a fantastic developer. However I think that is company policies and practices and his interpersonal skills are sorely lacking.
"Think about the children – I have kids, I can’t spend any time out of work doing this."
I have three children, cat, birds, sporting commitments and I still manage a few hours to maintain a few projects and run a blog.
Excellent post Ayende - you rock!!!
@Me, I don't know where you are getting your legal theories from, but they don't hold any waters. Not interviewing someone based on not having a portfolio to show? Are you seriously thinking that this is discrimination? As for having older people apply to a junior position, they would have to explain why, naturally, because it is something that isn't normal. If they have a good explanation, it would actually be preferable. I want to have people who are stable and interested in going in for the long haul. And life experience counts even if you don't have a lot of practical experience, if only because you can be a better communicator on the phone during a support call.
It's funny... in the amount of time some people have spent writing comments to this blog... they could have written a small "pet project"
I totally agree with You with both of your posts. My wife sometimes complains that she don't understands how can I come home and sit behind a computer for an extra hour and I respond her always: I love technology, I love development and learning new things, I started at 8 and now at 33 Im more trainned that my coworkers and the most important thing is that its not my modus vivendi, its not my work or my career only, its not my hobby, ITS MY PASSION.
I work for a financial software company, and our NDA's and contracts are very restrictive. How have I overcome that? Well, I just like to push things. For example, 2 of the newest products are simple PoC's that I assembled on my spare time and that I presented our CEO and the owners, and those 2 products have been doing really well on revenue because they started as PoC's so when they interested in them to evolve into products most of the work where done, just a little polish was required. They are satisfied with my job because they know that of all our staff Im the only one who is commited to learn a new technology in one night or that if someone else has a problem I will step in even when I dont master the topic. As we like to say here, Im wearing the companies shirt and Im in the best disposition to help our company grow and make our customers happy.
And even that I can't post code from those PoC's or participate in OSS I have tried to remedy that sharing knowledge, for example, I can't post our code for OptimizedNETTCPBinding with Binary Compression and transport encryption but I have been able to give hints or test code and share tidbits about it, even a simple hint or general description can help others.
Finally, how can I convince someone to hire me just by telling them what I have done without showing emotion, passion, commitment and interest.
When I was interviewed for my first job I had no experience, but my soon-to-be boss decided to hire me just because I tell him that I loved technology and that I was even prepared to work for free for a month after that he could review my work and decide to pay me and keep me or to toss me not paying anything. After that month I didnt just keep my job, I was payed, salary raised and repositioned to a newly created New Technologies Area just because he saw I could save our company money by serving them in a technology recon position (i was in charge of looking out for new tech, learn it, analyze benefits and then prepare training for our staff for adoption).
After reading more comments, Its sad to see to many people with a mindset of 'I develop for work'.
Software Development its a craft, and like any other craft it takes years of mastering, it requires passion, commitment, love and care.
If you develop software for a living, then you are just someone to happens to work developing software but might not even like it. If you live to develop software then you might be a slave of our economy that cant do anything else or you might be obssesed because someone told you that software developers where making a lot of cash and suddenly software development became the thing to study just to do well in life.
But if you love software development and happens to work at it, then you have the best work in the world because you are doing what you love and youre being paid for.
So, @ayende dont put much thought on this. You love what you do, you receive money for doing it, and if I was you needing a helping hand, I would also have someone who loves software development as much as I do. Then, work would be filled with smiles because everybody shares the same mindset, and no one is there just for working and be paid, they would be there because they share the same love.
I have to disagree with this post. From the employers perspective, it is great. Something for nothing. From the employees perspective, it is horrible. Nothing for something.
Frans has the right questions; do you pay people for their free time? Do you give them big bonuses? If not, it is just a scam like the growing trend of unpaid internships. The employer of course loves it, however as a professional, I value my time ands expect to get compensated for any activity that is a mandatory condition of employment.
Recognizing your own worth is the first step along the path of not getting screwed by an employer.
@Michael & Frans : What assumptions are you drawing from this post? This isn't about working for free, or having Hibernating Rhinos, or any employer directly benefit from your unpaid work. This is about providing something that Oren has seen as a good indicator that you have passion for software development, nothing more. Even his original post was "... I don't think I want you", not "I don't want you."
I'm sure if a junior developer submitted a resume that emphasised thier comitment and passion to the projects they worked on, along with other crafts or team-orientated they were involved in, and sounded genuinely interested in working with Hibernating Rhinos, they'd get an interview. The whole point I believe he's trying to make is how seeing code and how they approach problems. (Because they want to tackle the problem well, not because they just need to get something working to earn their paycheque.) IP issues generally mean people can't legally provide work-related code, but they can provide pet projects. Lately I've been providing candidates with a test project and a set of requirements to implement. (and hopefully unit test to prove their implementation meets those requirements) It really seperates out the nuggets from the slurry, and it takes about 2-3 hours to complete.
I think something that is missing from this article is a real explanation of what a 'pet project' really is.
I have dozens, if not thousands of 'projects' I have created over the years, and I am still considered a rookie. I have 17 years experience, a low paying job, and every single day I still run across a blog that makes me excited to open up my IDE and try out something new. Whether it is a new design philosophy, a new framework, a new library, not a single day that I am able to be at a PC goes by that I do not learn something.
Most of my 'pet projects' end up becoming trash. I have 15 hand-coded OCR programs, 25 different ways to render an image to the screen using C#, I literally have a DVD of over 900 different versions of the same program as it progressed over the course of 3 months and I was too stingy to use a SVN system.
A lot of people are taking this to say that we need to be feeding our income with supplemental software, but that is not the message I took away from it. What I got from it was "Do you love what you do? If you love it, it is not work. It is what you do because you want to do it. You just get paid for it when you are at work."
'pet projects' can be anything from throwing together a website for a friend to building a trivial little program for some beginner on stackoverflow to show them how to make a function of the language work like they are trying all the way to making a full github account just to contain some sacred repository of code that you want to share with the world.
You don't want people that will look at the newest version of the framework and say "oh no, we have to upgrade everything." (though that will always be at the back of everyone's mind when the exhaustion sets in). You want people that will look at the new framework and say "oh wow, I love this new feature. And this one, I know where I want to use that. Damn it when is this coming live!? I want it now!"
Stacey, That is wonderfully put
http://adamschepis.com/blog/2011/09/15/why-i-go-home-a-dads-manifesto/
@Harry Steinhilber And I work for a Fortune 75 on my daily job and a Fortune 40 on the side. The former STRICTLY requires all source to be signed over as its property, and the latter, requires strict NDAs and non-competes. Yes, some of these companies have Open Source olive branches, but that doesn't mean that you as an employee are privy to develop for them.
But none of that matters anyways. You spend 80%+ of your life at your work. Leave work to money making endeavors, leave your home to your family. If you have side work, you will be harassed and contacted during your off hours, anyways. Throw a OSS project in there, and your family will forget your name! O.o
WOW, I am agree with every single word! This kind of thing I am constantly trying to explain to my colleagues. Doesn't actually work. Sad. God, I wish I had a chance to work in your company.
Ayende, I've just looked at your github profile and I see that all your projects are work related (raven/nhybernate/misc rhino stuff or courses you teach on those subjects). So you show passion for what you do and related fields, but not much else. Now you are lucky enough to work on an OSS friendly environment and thus can show that work. Those who work for closed-source houses do not have that luxury.
So if someone was like you and they did have other projects and showed passion for their craft by doing related app development on their own time, they wouldn't be able to show it. So if you were working at such a place Ayende, and wanted to look for another job, you would fail miserably your own screening criteria.
Seems hypocritical.
Alexei, Really? I was doing NHibernate for years before I started giving courses on that. I was doing Rhino Mocks for years, and I didn't make a dime out of that. I have a LOT of projects that I started just for the sake of interest, from Rhino DSL to NMemcached.
The fact that later on I found them useful is irrelevant.
@"a developer dad's manifesto".
Your link actually proves my point. I will cite directly from the article.
"By doing this I’ve actually discovered that I can be more productive when I get away from the code for a while. I drive home, play with my daughter, eat dinner, bathe her, read her books, and put her to bed. All this time my brain is still spinning. My subconscious is still tossing problems around and searching for solutions."
That is exactly right. The subconscious. He likes his job. He does not shut it out and ignore it. He is ready for the next day, and handles his priorities responsibly.
I think a lot of the problem here stems from the fact that people are taking the term 'pet project' to mean 'actual pets'.
It won't die if you don't feed it. It doesn't have to be good, complete, compiled, functional, even intelligent.
It is your byproduct. It is the orange that a nurse plunges a needle into 50 times to practice an IV in medical school. It is the paper bullseye from the police firing range. It is the medical magazine that the doctor gets at home. It is the worn out, dust covered pencils in the artists bag that they only used 'that one time'. It is the personal accounting books of a CPA that they made compulsively out of habit. It is the notes scribbled in the side of a scientists notebook. The formulas that never got completed. The "I want to do this someday". The "yeah, my friends and I were talking about this in college".
It is our trash.
You guys are making pet projects all the time, you just don't see them that way because you don't care about them. And you shouldn't have to. You are programmers. That "ConsoleApplication1" through 23 in your Windows Recycle Bin that you never cleared out - each one maybe 15 lines long, where you saw an article and tried it. Maybe each one has a little NuGet packages config in it where you tried out a library for a few minutes. The painful ping in your right hand from right clicking two dozen times one day and clearing out the "Recent Projects" list in Visual Studio because it is cluttered with thirty samples that you downloaded just to see how Ninject worked with a particular framework.
You don't need to spend 2-3 hours a day, a week, or even a month. You need to only spend 2-3 MINUTES at a time, and that is what you are constantly doing. That Silverlight(1),(2), and (3).zip file you have because you kept impulsively downloading it, forgot you downloaded it, clicked it again after you got interrupted...
I think 'Pet Project' wasn't the exact term that Oren was going for. I think he is saying that he wants someone who will say "Ok, hang on a moment, let me see if I can find this typo" instead of"Sorry, it is 5:00 PM exactly, I am gone, even if you are the customer." Someone who will look down at their phone and casually tap on their RSS feeds, and will have at least 1 programmers blog that they check up on every few weeks.
These are not bulleted list criteria. There is not a checklist of them that an employer can go down and eliminate someone by. But they tell the story of who the person is when no one is watching. And that is who he wants to hire.
Agree with what you say as well. I do not want to work at a company where they will just hire anyone they can get. I took my current position because I knew it was important to them that I was passionate about software and continuous learning.
As a talented, experienced and above all passionate professional Software Engineer who has done nothing other than Software Engineering since graduating with a degree in Software Engineering (getting the point :)) 16 years ago, I am very disappointed with the narrow minded dogma in this article.
I have 0, yep 0 pet projects. That isn't because I am not interested, it is quite simply because I spend all my time working at the office, playing with my wife and children or reading about tech books. I also attend (and have spoken at) conferences.
But yep, 0 pet projects.
The flawed assumption is that there isn't a job which allows you to get the benefits you associate with pet projects. I would suggest you need to improve your professional offering so that pet projects aren't necessary.
Requiring passion is a good thing, mandating how that passion should be demonstrated is short sighted.
Not sure you have sold yourself in the best light here ;)
No Ayende, what's irrelevant is when you started your projects. If you did this all while working at Oracle and you did them to be used by Oracle (even if only just internally) all of them would've been closed source and if you wanted to look for another job, you would have nothing to show for yourself as far as pet projects go.
It's important to gauge applicant's coding ability, but you can't be correlating the lack of pet projects with lack of ability.
You do not practice what you preach.
@Alexei, Uh, who are you to tell him what he can, and cannot do? If Ayende hires duds with pet projects, or misses out on gems that have none, it's his company and mistake to make.
If you work at Oracle and you build pet projects at work on their $ then it's their IP. But all you have to do is ask your manager for permission to use a bit of code from the little side project at home, and unless they're a complete prick you'll typically get it. If you build pet projects at home on your time, and bring them into work then you need to read the terms of your contract, but typically you talk to them first and if they're intrested you grant them a license to use your software thus maintaining your IP. Provided though that it's something that is not directly tied to their IP or domain knowledge specific to the project you are working on. (Just because the tool runs on an Oracle DB does not mean it would qualify against their IP provided you had a license to develop against that DB.)
I've seen this nonsense about contracts where you sign away your IP when working at home on your own time, and unless it's a very specific type of role, it is either being misinterpreted by the employee (and possibly the employer) or it is most likely legally unenforceable. If you simply sign a contract without clarifying details like that, well then live and learn. When I see clauses like that which are too broad and read like it means anything I work on is their IP, I get it clarified in the contract. Applicable to their equipment or their $. If they insist, I walk away and wait a week to find a client that's more reasonable. Irrational demands like that are a good sign that you'd be looking at a crap job anyways. Usually the answer is that it was in the boiler plate their lawyer gave them, and they clear up that clause in the contract.
I like stacey's comments. At least this is what I think passion should be in our field. I also agree that pet projects are good indicator for showing candiate's potential, but they aren't single source.
But also I think that Ayende's "pet project criteria" isn't absolute truth, meaning that it's just one of his criterion (maybe with higher priority, depends). When there are many applicants, pet project requirement can filter out a lot of average programmers easily. But when there are some other candidates with different experience (exciting or otherwise not usual), I expect they dont get rejected automatically.
But it also depends whom Ayende is looking for, exactly. I'll bet his not looking for some military experienced guy with no public portfolio, that's not his field, currently. When you whine that you can not qualify because some of the criterion (you have no pet projects or you don't have the time), then I'm sorry you don't qualify, it's his company and there are plenty of other companies out there. And if you can show your other characteristics why you are the best for he job (meaning you can distinguish yourself from other candidates without pet projects), then do your best and good luck (no sarcasm).
I mean Ayende has it's own working culture and expectations, if candidate can't fill them, then it's bad luck, there's plenty of them who can. We all want to go to the moon but we can't...
Ayende I 100% agree with you!!! I just can't understand, how many people see what you're asking for as a bad thing, come on!!!
And I think that the "09:00 to 18:00 guy" is usually a bad choice. "If I don't learn it at job I don't learning at all" I cant see the passion in a guy like that....
By the way, what do you think about grades? They really matters or make a difference on a candidate?
@Steve Py: "What assumptions are you drawing from this post? This isn't about working for free, or having Hibernating Rhinos, or any employer directly benefit from your unpaid work. This is about providing something that Oren has seen as a good indicator that you have passion for software development, nothing more. Even his original post was "... I don't think I want you", not "I don't want you." "
I just asked a question whether compensation was granted for time spend on work-related matters in the employee's own time. I asked that because there's no word of it in the article, and because of that it illustrates the 1-way street thinking of employers (employees also often think it's a 1-way street: "I show up, so you pay me!" etc.)
I'm not against asking for passion for the craft, that would be stupid. What I wondered, and MIchael was spot on, is that if you ask the employee to spend time on work-related matters in their own time, you have to compensate them for that. It's the same as when the employee demands something from the employer without 'compensation' (doing something in return), as it's a 2-way street.
What annoyed me in the article was the air of the employer's narrow mindset: "you, the employee, have to be grateful to be allowed to even sit in that chair left alone getting payed for touching the keyboard" Over-exaggerated of course, but you get the point.
I didn't address 'owning the projects/company and working on the projects is different from being an employee working on them' for nothing: it's logical that the employer (in the role of owner of the projects) searches for a person who is as passionate about the project as he is, but it's a quest which will not succeed: the employee looks at the project from a different angle, and not acknowledging that is IMHO a big mistake. So big that I wouldn't want to work for an employer like that, simply because you'll never be good enough.
Frans, If they are working on work related stuff, they get paid. Where they are doing that is not really relevant. And you need to make sharp distinction between employees and _candidates_. I care a lot about employees, about candidates, I most care that I won't waste too much time over people who turn out to be duds.
Can't resist the temptation to comment on this.
What author has blogged about is essentially the core value of being IT professional and well known for years. For those who are surprised to find working in IT means 60 to 80 hours a week, I wonder if you joined this profession after 2008. That 60 to 80 hours of course include hours in evening and weekend outside office. How one can possibly sustain such a life unless as the author indicated, one must enjoy doing it.
Admittedly, this goes beyond hiring strategy or careen management. Passion is probably an understatement in all honest. Some replies described more precisely, it's an addict of finding better ways, technique to solve problems. if you don't find yourself interesting in searching problems so you can apply the newly acquired skills, technologies, then you don't belong to this league. Although more than often it is marketed otherwise so people outside IT feel you're rational, but truth is rational people who choose to work in IT for a careen or compensation reason will soon discover they probably made a mistake and there is more pain than gain.
Aye de Rahien's hiring point of view is a repercussion of a recent trend. While the future of IT careen as well as the entire technology related job market looks better than ever, we're in a year after 2008 and demands are more focused on elite type of professional. Only the best of hardcores will remain in the field and bar is getting higher as technologies have evolved to be smarter. The days one can pick a programming book from bookstore then self-claim a seasoned candidate only to talk through the corporate ladder to become one of "overhead" are soon to be over.
I've tried my best to understand what bothers me with this requirement. Well, fact of the matter is, that as a mother of two there's so much for me to fit in a day, with the juggle of work/home/motherhood commitments, that I hardly had 3 hours in the last week to watch a DVD that I've borrowed from the library, and hardly a moment to actually call the library and ask for renewal... (Think Linet from Desperate Housewives having time to do a "pet project" and you'll get the idea). What you're asking for is not my "spare time" (as I don't have any now) but something more substantial than that: initiative. You're asking for someone with the initiative to do something without specific user requirements - and frankly, even ten years ago, when the market was tough (like it is in the US today) , and I didn't have kids, I'd rather go to uni to freshen up my skills then do a pet project. That's me. So while asking for pet project on the ground of "I want someone with initiative" is a valid point, the other points are not.
I sympathise with you somewhat! Firstly, I can see what you're attempting to do with your "pet project" interview technique, and I also immediately expected the response you got in result.
I have to agree that it still sounds like whenever you look for a developer you're just looking for another you! People are different, don't expect all person to spend 4 - 6 hours a week on a pet project (which ends up being pretty much another full day of working) like you do. Some of the developers I've found the hardest and most frustrating people to work with kept very up to date blogs, had more than 1 open source/pet projects, and were extremely passionate about coding. They were also the most argumentative and stubborn minded people I've worked with! On the other side, some of the best and most passionate developers I've worked with never wrote a line in a blog or ever worked on a personal project.
My point really is some people live and breath code. Others need to take time away from it outside of work. Both can be equally as passionate as each other and can produce amazing products/projects results. I know you say you need some way to weed out the good from bad, but (in my opinion) what you're doing is a bit counterproductive. I could almost guarantee that the same % of excellent and passionate candidates exist in the list you rule out when compared to what you choose as your "best candidates because you have a pet project".
On saying that, we all have our methods. You could argue against mine, and I could argue against yours. Neither is wrong, and we should just employ the techniques that work for us.
Comments count on this post is awesome. So i did not read all of them, excuse me if my comment is a kind of "alrerady-said". Ayende, your company is not like all others, but most of all applicants are the same...your (rigth) expectections should be clear to find the right target, or you will have to sort out these tons of CVs. In (pure) theory, the ideal add (expressing requirement at the right levefl) will bring you only a single CV: the right one! But that's not real life. You have to balance putting expectation too high and getting no candidate, or too low and getting too much CVs. This is where getting a good HR could help sorting out CVs. Getting right people and processes can help you to solve this very difficult pb. Check where you have pain and then reduce it. It will never solve your pb, but make it easier to address.
Let me start by saying that I work for a shop that has similar principles as Ayende. We must see passion in our candidates for us to feel they are valuable.
But to look for one manifestation of passion, is to blind yourself to each candidates unique background. There are many ways to show passion towards your profession.
For example, I am 27 years old, and have been programming for 13 of them. To those who know me, my passion is obvious. And I have had zero pet projects since my career began.
My work ethic forces me to read blogs mostly outside of hours, leaving little time to create pet projects. It's ironic that my work ethic would count against me in a hiring process.
Despite Ayende's post, I have trouble believing that if Ayende and I were at opposite ends of a table talking about my passion, that he would fail to see it in me.
If you are wondering whether I agree or disagree with his process, its a yes and no. He will get good results, as it's very over selective. He will just burn through more candidates, and spend money doing so. But maybe one day half his workforce will band together and just create their own startup, when one of the pet projects take off.
I think what Ayende is doing is sensible. Why would I want to hire someone who could possible be a geek/passionate/dedicated fellow etc when I already have lot many fellows in the queue who can readily show me their outside-office cool pet projects ?
As a filter criteria (hasPetProjects), it makes perfect sense. I might rethink on this filter criteria only if there aren't too many folks after the filter.
End of the day, this is all business :)
I like Ayende's thinking; I don't work on pet projects every week but I have at least a 2-3 OSS I keep on the backburner and 1-2 active projects (active meaning monthly/weekly activity). Sometimes I don't feel like coding after work where I've spent coding... other times, I code for a week straight at least 10 hours. Depends on my motivation level and if any new video games have been released :)
Anyway, I think it's a pretty good process and is probably one I'd follow if I were hiring. Points about passion that isn't just tied to pet projects is a good thing to remember, too, as some people are passionate but may not channel that into side projects. Still, I feel like even tinkering with sandbox projects is typical for passionate people but I guess I can't speak for everyone. I know I have a bunch of 1-2 hour sandbox projects in my "Fun" folder at work just to try shiny things out!
Cool article!
I've found it very tough to find a company that values technology, learning and even developers like me. I've hopped around several jobs for 8 years now and still haven't found such a company. I only read about them... I doubt they exist. :p
I've worked at many places where they suck the life out of you. Not interested in learning and they decrease morale. I used to have pet projects but find it difficult to get excited anymore after working for companies and people who have no passion.
Thank you Ayende for reminding me why I started coding in the first place!
Comment preview