If you don’t have pet projects, I don’t think I want you
I am busy hiring people now, and it got me thinking a lot about the sort of things that I want from my developers. In particular, I was inundated in CVs, and I used the following standard reply to help me narrow things down.
Thank you for your CV. Do you have any projects that you wrote that I can review? Have you done any OSS work that I can look at?
The replies are fairly interesting. In particular, I had a somewhat unpleasant exchange with one respondent. In reply for my question, the reply was:
My employer doesn’t allow any sharing of code. I can find some old projects that I did a while ago and send them to you, I guess.
Obviously, I don’t want to read any code that belong to someone without that someone’s explicit authorization. Someone sending me their current company code is about as bad manner as someone setting up an invite for a job interview on their work calendar (the later actually happened today).
After getting the projects and looking them over a bit, I replied that I don’t think this would be the appropriate position for this respondent. I got the following reply:
Wait a minute…
Can I know why? I took the trouble to send you stuff that I have done, maybe not the highest quality and caliber, but what I could send right now. You didn’t even interview me.
How exactly did you reach the unequivocal conclusion that I am not a good fit for this job?
My response to that was:
Put simply, we are looking for a .NET developer and one of the most important things that we look for is passion. In general, we have found that people that care and are interested in what they are doing tend to do other stuff rather than just their work assignments.
In other words, they have their own pet projects, it can be a personal site, a project for a friend, or just some code written to get familiar with some technology.
When you tell me that your only projects outside of work are 5+ years old, that is a bad indication for us.
There is more, but it gets to the details and not really relevant for this discussion.
Let me try to preempt the nitpickers. Not having pet projects doesn’t mean that you are a bad developer, nor vice versa.
But I don’t really care about experience, and assuming that you already know the syntax and has some basic knowledge in the framework, we can use you. But the one thing that I learned you can’t give people is the passion for the field. And that is critical. Not only because it means that they are either already good or going to be good (it is pretty hard to be passionate about something that you sucks at), but because it means that they care.
And if they care, it means two very important things:
- The culture of the company is about caring for doing the appropriate thing.
- The end result is going to be as awesome as we can get.
Now, if you’ll excuse me, I am going to check out SignalR, because I don’t feel like doing any more RavenDB work today.
Comments
Thanks for the article, it's inspiring :) Ayende, can I ask you please for advice? How you manage your time, what is your recipe to be productive (I see you are working on several projects, investigate other projects related to db, write blog) and grow professionally? I agree with your opinion in the article and think about the ways to contribute to nHibernate (or probably to the projects around it). I am learning it and I really like it and db stuff in general.
You should also double check that the guy is not so passionated about its own pet project, that the project you'll give him will be considered as boring!
Ayende, in general I like your approach but it is not ideal. If developer has personal projects, there is a change he will be more interested in those projects than in his main job (like myself). It is like hiring person with high StackOverflow rating: he likely will be a good developer, but he will spend much of his time solving not your problems.
The applicant really say "Wait a minute..."? If so, how rude.
"Can I ask why?" That is a reasonable question.
"I took the trouble..." What trouble was it? Do you want the job or not?
Finally, does the applicant expect employers to interview every applicant. Have they not heard of a vetting process?
Alexander, If you hire a person with no Stackoverflow rating, it's likely that person will spend time on not solving problems at all. At least, one with high SO rating has some proof of her problem-solving skills.
I've been working on numerous pet projects for many years now, and they're accountable for a significant portion of my knowledge and skill set.
I don't even want to imagine what kind of developer I'd be, had I not done those projects.
@Hansi, no SO rating is another extreme
Hmmm.
I used to think almost exactly like this. I used the P word a lot. But I'm going to say this is unintentionally and indirectly a bit ageist. Let me explain...
In my 20s and 30s I had a large number of pet OSS projects (though there was no github then, so the source distribution, especially in the early 90s, was limited). As I've got older and had kids, that number has dropped (both drastically and quite necessarily). I'm still getting better as a developer, it's just that there are other demands on my time. And trust me when I say that as you hit 40, you notice if you have been at a keyboard a long time (and you feel physically disinclined from doing it in the evenings, too).
Programming (and having a large number of pet projects, which in my case means > 1 and probably even > 0) is not a healthy lifestyle and it gets much harder to stay fit and healthy as you age. Keyboard time has to go down (unless you want to die early!)
So I'd say what this says to me is "I want people who are at the keyboard as much as I am." What it also makes me think is "I don't think I'd want to work with you, no matter how good you and your colleagues are, because effectively this can discriminate based on how much time I can spend in front of a screen."
Passion is one thing, but I'll take continued competence and balance in preference.
People that do consulting work might not have "Pet Projects", but instead they'd have many different Real Projects, done as paid work for paying customers, that might not allow sharing the code (or even the fact that it was done).
These people would usually have the passion, will have demonstrated the ability to explore new tech and have it applied, and you will be missing them as they do not maintain some useless side project.
I think that only considering developers who have OSS projects risks forming a sort of unfair elitism amongst the community.
Many developers have to put so much work into their day job that they couldn't possibly fit in external projects. I'd deem many of these people very hard-working and passionate. In fact, I might prefer them over somebody who puts their pet projects first.
That being said - it is very useful to see a developers 'showcase' of work. I just think it's dangerous to dismiss applications purely on this basis.
My father was like this. He worked as an electronic engineer and when he came home he spent his time building circuit boards for fun. He was never out of work, and quite often head hunted because of his skills. But I never saw him. Now I can go 2-3 years without speaking to him. So when my son was born I made a decision:
Programming/development is my job and it stays in the office.
I'm passionate about my job and I love doing it. But if my employer wants me to develop and keep up to date, it is their responsibility to ensure I have the time (and they really should do if they want to stay relevant as a company).
My personal time is for the other things in life I'm passionate about. So I haven't had any pet projects for several years. When I was starting out, I learned a lot from them, but I think the payback/effort ratio isn't worth sacrificing time for now. Especially if it means not spending time with my son.
Do you want good, competent, happy developers? or a guru who will miss out on the best things in life?
@matt: I fully agree with your comment!
Dmitry, I am not really sure, I just do that. I usually think best when I am writing a blog post about the topic, so that helps. It just works for me
Patrick, That is a different problem to have, and not one that is particularly worrying. I can deal with people who are bored by their tasks. I can't deal with people who aren't excited
Alexander, The burden is then on me, to make sure that he is interested in what he is actually doing. There are many ways to actually manage that, it is what we call a Rich People Problem, I would like to have more of those.
Tim, It is a bit rude, but what did she have to lose? And different cultures have different metrics for rudeness.
Russell, Ageist ? Maybe, I haven't considered that angle. But at your 40s, you should have a wealth of projects under your belt, proven experience, etc. When I am looking at entry level programmers, what good metrics can I use? More than that, if you are at your 40s and still at an entry level position, I am pretty sure that I would require a lot more convincing to hire you.
Ken, If you are a consultant, you have a LOT of spike code, demo projects, etc. That is part of life. It is like saying that a photographer doesn't have a portfolio
David, I prefer OSS work, but I asked for any personal project that they have. If they don't have any, it is a bad sign. I get enough candidates that I need something to vet them by.
Matt, So because your father didn't have a way to balance things out, you are tilting in the complete opposite direction? Giving the company the responsibility to keep you up to date is an abjuration of your own responsibilities, I feel. Putting 2 - 3 hours a week on a personal project is hardly "never see your children" type of stuff.
Ayende,
Ok, it wasn't made clear you were looking for entry level. You're right about the wealth of projects - I haven't written a CV in some years. I don't have a Stack Overflow account either, @Hansi, but I was a regular contributor to Delphi Usenet groups years ago. It's not a lack of desire to contribute that stops me now, it's a lack of time.
And yes, I'd pretty much expect passion if someone was 23. All I'm saying is this: it's probably a good indicator (I know I've used it myself), but as Ken says, you'll miss some good devs (perhaps those who had children very early or preternaturally mature people who have a strong sense of work/life balance even at a relatively young age) this way.
Ayende, re: your comment to Matt - it's not possible for me to put in 2-3 hours a week on a personal project. If I enjoy it enough, it will consume me for much longer and cause family-related arguments (and backache!). It's simpler to avoid starting one unless it's an absolute need ;)
For entry/intermediate roles, pet projects are definitely a good thing to ask for. From personal experience when hiring, one case really stood out. I got a resume one day from a guy that had recently graduated from a programming course at a no-name community college. Prior to that he had spent some 6 years climbing the management ladder at a fast-food joint. On paper he had just over 1 year of exp. Nothing on there caught my eye except for the mention of pet projects and a URL. From his site I was able to download a couple samples. (This was back before CodeProject) The code was well structured, commented, and it built & ran without issues. That got his foot in the door for an interview and it was clear to see he had passion for software development.
Even at a more Sr. level pet projects can make or break a new role. One situation is when contracting for gov't roles where you're most likely not going to be working on cutting-edge stuff, but the money is good. Finding a new contract can be daunting in the age of .Net 4 when your last client was getting you maintaining .Net 2.0 projects. Having a portfolio of more modern, interesting projects can be a deal maker.
I don't disagree with wanting to find passionate developers, however I think this presumption that good developers always code for fun at home is not realistic. It sounds like Ayende you only want to hire people who are similar to yourself. The fact is, people achieve great things through various paths.
Good developers in many cases are often good at other things too. Leonardo da Vinci was a great painter, a fantastic engineer and supposedly an accomplished musician.
Sometimes these extra-curricular activities can take a lot of time.
Personally, if someone does not spend a lot of time coding at home, I would ask what they do spend their time doing. If they play in a band every weekend, or play football, or fix hotrods, there's a good chance they're skilled and passionate people in general. If they sit at home watching TV or playing WOW every night, maybe not so much.
That being said, a smart interviewee should be prepared with code to show.
Maybe some people are modest enough not to give the world another MVC framework or other irrelevant 'technology' that will be dead in a year?
Rafal I'm not interested in modest people
To be honest, with all due respect to Ayende, I'm on the fence with this. I see the "cool factor" of having pet projects and contributing to OSS and the like (basically, trying to be Ayende) but for many of us, software development is just the means to an end, and not the meaning for existence. I don't mind looking at new things in my spare time (less likely now, since I have yet to find a company that knows or cares and many resent the fact I always try to push SOLID, or ORMs, or good design), but I can't say I have pet projects because I don't have the time. After work I have other things that I do for my enjoyment that doesn't involve writing code.
Now granted, for Ayende's company he is welcome to hire whoever he sees fit, and I agree that having side projects is a sure sign of passion, and that seems to be what Ayende is looking for, but I can't help but think that he might be overlooking competent and passionate people who are just very busy outside of work and haven't spent the time to create extra things.
A great post. I do something very similar, but I don't go to the same extreme. Instead I just ask what interests them outside of work when it comes to coding. So rather than what pet projects they work on, it's what blogs do they read, where do they go to learn new things, etc. Also, much like Ayende, I don't really care about experience since so many .NET developers probably have been doing it wrong, I'd rather find a person straight out of college with passion.
So if anyone's curious, out of the 40 or so people I've interviewed over the past 2 months for both Sr. and Jr. .NET positions, I've found the following:
I can't speak for Israel, but in the US this is the highest paid "regular" job in the country, so I fully expect someone to at least spend a little time looking outside of the project they are working on to better themselves/expand their horizons.
@matt I fully agree with you too!
I have 2-3 pet project but I never do OSS. Never. Sorry.
@Steve I've found that many developers just don't care to improve. Management is usually ignorant and just wants things as fast as possible, and never take the time to go back and refactor or encourage clean code to be written in the first place, so you end up with a majority of developers who just know how to use DataSets and Stored Procs, and never bother to learn an ORM because either the code was written with DataSets and Sprocs or because it would take time away from churning out new features that management wants.
Could not agree with this approach more. I have used it for the last 10 years when filling spots and it is a 90% winner in help weed out those who will likely care about what they are doing and the others who are simply trying to earn a paycheck.
I think some of these comments are missing two key points. First, this is entry level and I agree with Ayende that someone at level should have some kind of side project to show off. Personally, I'm just above "entry level" and if I didn't have little projects (even if no one sees them) I wouldn't be advancing my skills. My day job doesn't provide me the time I need to learn to write the type of code I want to write. I also have 2 kids and a wife that works a schedule that is the opposite of mine, AND I have interests outside the realm of programming. However, I realize the importance of developing myself and keeping up with the tech so I make a conscious effort to spend a few hours a week on developing myself and writing code that no one else may ever see.
Which brings me to my second point, in his response to the candidate Ayende was even willing to take"...just some code written to get familiar with some technology...". Personally, I don't care what level you are at, if you don't have that, something is wrong. Hanselman said something similar in talk he gave a little while back. He opened VS and had a ton of garbage projects and said something to the effect of "if I'm interviewing you and your VS start page doesn't look like that, you're not getting hired." If nothing else, it goes to curiosity which is essential in bettering yourself in any field. If you're not curious enough to create some BS project in VS to try out some new framework or whatever, I think there is a problem.
Ayende: I haven't tilted in the opposite direction. As I qualified later in the post, I find that pet projects no longer have enough educational payback regards time invested. 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. If I'm struggling to understand something, I'll knock up some concept code. I've not ignored my responsibilities, I've just taken a different road to pet projects that provides me with a much better life balance and more bang for the buck.
If companies don't invest in their staff development I find that those companies tend to get filled with mediocre staff.
It's also rare that I have a desire to develop something that doesn't already have a reasonable project that already scratches my itches.
@Steve - Seriously? Man, that is sad.
My problem is that I have too many pet projects. In my extreme Asberger attitude I have usually anywhere from 10-30 "pet" projects, all of which quickly move to about 90% done then sit idle for a few months because I'm bored with them. The honeymoon is short so if they're not delivered within a week they sit on the back burner. Such is my life.
PS your openid login seems broken to me.
I think that there are two types of developers: Who is following by money (or they just work) and who is following by intresting projects. In most cases second kind of developers have something that they did in their free time: blog posts, articles, open source projects, etc... People who has pet projects in most cases like developing more than people who doesn't have pet projects.
@Jesse,
Yep, amazing. It's very easy to hide in a large .NET shop and to be honest, that's all there really is these days in the US.
Something I do a lot is when I see that a dev has only used Web Forms is ask them if they've heard of ASP.NET MVC. Most haven't, but even when they had heard of it and I ask them what they think, I mostly get something like "I heard it's pretty cool, but we don't use it at work so I haven't really looked at it".
I also tend to start with my abstract class v. interface question, if they can't answer it I end the interview.
Other popular things, resume has WCF, ask them what binding they used, they have no idea what a binding even is. So when I ask why WCF is even on their resume they respond with "I didn't actually DO the work, it's just in the application". Get stuff like that a lot.
Ayende, do you have family and kids? Do you read a lot of non-technical books? Do you have friends with interests outside of computers/software development? Do you do anything but working on software?
Whether it's an entry level or not - there should be a balance in someone's life. Interests other than work. Hobbies other than profession. And as people grow older and have other priorities in their lives they will spend less time on something related to work. And I totally agree with Matt - there is work and then there is family. Maybe you'll understand that one day too.
I agree mostly with this post, yes, a good programmer would have something done outside work, this could be studying, reading blogs, or blogging, or even having some Pet projects, or private freelancer projects. I'm just out of university and worked for only 2 yrs and I've learnt more outside my job than in it, I dare to say that I learnt more in the last 2 years by my own than at my university...
@Wayne M I see your point, here in Brazil is really hard to introduce companies to SOLID, TDD, ORM and lots of good practices... It's hard even to work with .Net 4.0 :P
@Steve Really? Sad numbers you've got... I also see a lot of people doing thing like you mentioned about WCF, they only 'use' as 'clients' the real work is done by someone else... The same with NHibernate, people 'use it' but doesn't even know how to map a one-to-many relationship through XML, or Fluent... In fact, the same with almost every framework people put on their resumes...
(Self-marketing mode on) In those topics you've mentioned I am pretty confident, if you're still searching for someone let me know :)
@Alex
Re: "Ayende, do you have family and kids? Do you read a lot of non-technical books? Do you have friends with interests outside of computers/software development? Do you do anything but working on software?"
First off, everyone in our field, even those with wives/husbands, kids and other hobbies has time for a few hours a week to do their own stuff/follow up on new things. I have a wife, a kid, two dogs and plenty of hobbies (even worked a second job for a while helping out a buddies start up), but I still keep up on what's going on in the world.
Karl Seguin said it best on twitter a few months ago when someone asked him how he has time for everything he does when he said (and I'm paraphrasing) "It's amazing how much more I can get done when I don't watch TV".
We all make decisions what to do with our time. Last night after getting my kid to bed I watched the Patriots/Dolphins football game, I chose to do that so that's fine. But I can't sit here today and complain to Ayende that I didn't have the time to do anything on my own, because it just rings hollow.
There are a few outlyers who really doing have a few hours a week to learn, but those people are few and far in between. More often than not, people choose to have different priorities, and that's fine, but Ayende doesn't want those people working for him. Sounds fair to me, it's his company after all.
Enthusiast, excitation, motivation whatever you call it, is not a static thing. Having a pet project is a big bonus on a CV, but it is not a definite proof of how a programmer will behave.
And, even worst, it *** might *** tend to advocate about poor social skills (why not drinking a beer with friends instead of spending nights on a pet project?). Note how I use the conditional here, but we all know how often it is a reality.
I've noticed that people who have side projects tend to worry about making their code maintainable more than people who do not have side projects.
I look at something written at work and it's crap. Not horrifying, just annoying to work with.
I look at something written by the people I hang out with on IRC and...well, from one person, it's guaranteed to be horribly convoluted in compiler-torturing ways but still readable; but from everyone else, it's awesome.
Some employers have their employees sign an agreement that everything they write (for work or in their personal time) is property of the company. I am in this situation, and while I have many pet projects, they tend to be work related due to this clause. As any pet project I have is property of my employer (legality of this clause aside) I cannot share them with another company.
I agree: http://blog.jdconley.com/2009/01/dont-hire-programmer-if-they-dont-code.html
You sound like a clueless employer. Excited about .NET? Pet projects? grow up
From what i've seen, passionate open-source developers have been more passionate about doing their pet projects during work time or using as much of their pet project or their peer's pet projects in their work project. Result has usually been rather mixed output.
Preface: I'm a senior AAA game developer who regularly works on personal projects.
I can only imagine the amount of hubris that is required to believe that human beings who focus every bit of their energy into their work and work-related skills should be the only ones who are worthy of being hired for your company.
Moreover, I know many excellent, creative and altogether superior engineers who bust their asses for work and leave no energy for personal projects, choosing instead to recharge their physical and emotional state with a healthy balance of familial and social interaction. Every single one of these people would fail the basic litmus test of this company.
That's not to say that personal projects aren't a good indicator of ability; but damn, they should not be the only indicator of capacity.
Your interviewees probably dodged a bullet. The sort of thinking in management that can so blithely discredit emotional balance likely is hand-in-hand with shoddy personnel management and time valuation.
Seriously man, you want to see commercial products that I've implemented? I can show you those all day long. But I don't own the source (and while I might be able to show you some code on my laptop, you emphatically cannot have a digital copy of something somebody else paid for). Open source bias is just another reductive strategy to let people avoid hard questions about judging somebody's character. There are no easy answers to "Do I want to work for this person?"
I worked inordinate hours on pet projects when I was a junior developer, because my position wasn't fullfilling and a poor match for my skills. The extra work was an outlet, it allowed me to grow my skills immensely, and I suspect it's common.
Now my workday is usually challenging enough and I value work-life balance more. Over time I've also noticed hyped technologies and fads come and go, so I'm more conservative in what I choose to immerse myself in; and the same goes into assessing the value of what I'm doing. I've grown up, personally and professionally. I still care deeply about the quality of my work.
Believe it or not but my free time starts at 11pm. That's when my wife and child are in bed. And I'm so tired I can't write HelloWorld.
And I really don't know what you expect to write and in what amount of time if you spend 2-3 hours a week on a project?
If you seriously like the work you do, you can be passionate about it and have no need for side projects for fulfillment.
If the author's employees all have side projects going right now, then he must be offering them crappy work to do.
Your attitude is a serious mistake, in my opinion. You will be missing out on productive members of your team that also happen to have a life outside work.
Also, "...if you are at your 40s and still at an entry level position, I am pretty sure that I would require a lot more convincing to hire you" is a very ageist and possibly illegal criterion for hiring.
I totally agree that your attitude here is a complete mistake. I was a developer for a government research lab for about 2 years and it was part of the employment contract that I was not allowed to develop pet project code, run my own website, or do any other sort of "publically noticeable" code development outside of work. If I was in that job and had tried to interview with you, and been turned down for "lacking passion", I would have immediately dismissed you as a pretty pathetic employer and definitely felt that I dodged a bullet by not getting an interview. Many other places which are less restrictive than a government lab still nonetheless have pretty high peer pressure about not doing this kind of thing. Company's don't want other company's knowing how smart their programmers are, except through their commercial products. I think it's totally reasonable for a programmer to (a) not actually have private pet projects and still be very passionate about their job or (b) have pet projects but simply not wish to share them when job searching due to possible repercussions at their current employer.
Would someone please explain to me why programming is one of those areas of work where there is a significant body of opinion stating that you should demonstrate your commitment by doing a whole lot of the same sort of thing outside of your paid employ? Granted, we are talking about an entry level position here, and having a couple of pet projects to show ability are definitely a good idea, but beyond that? If your paid employ isn't giving you sufficient time to do [at least some] experimenting, scratch an itch, generally improve at what your are doing for them, then they aren't a very good employer.
Would you expect an accountant to do other people's books in their spare time or your bank manager to say "I'm sorry, but the bank won't lend you any money; however I'm prepared to lend you some myself as a pet project"? I think not. Artists possibly, but we also expect them to be starving in a garret somewhere. Politicians definitely, but (at least here in the UK) we complain about those who seemingly have never done anything else.
I have quite a bit of spare time outside work but one thing I definitely don't want to do is program, at least not the kind of programming that I'd be prepared to show to anyone - raytracing and lilypond macros don't tend to get mentioned in a professional environ, nor would I expect them to be. My other pet projects are entirely non-computer based but need analytical/debugging skills: food curing, baking, brewing, architecture, historical geography. I used to program a lot in my spare time when I wasn't getting paid to do so, now I don't. It's not a lack of passion, it's that the computer controlling aspect is mostly sated by my day job - a mixed diet is far better for you!
"the most important things that we look for is passion."
http://www.youtube.com/watch?v=Bz2-49q6DOI David Mitchell says it best. Seriously.
There are a lot of reasons why people don't do projects outside of work and it has no correlation to their skills. If you want to hire people whose life is programming, fine, just say that.
This type of resume filtering is frequently used in the games industry. There are tons of people out there that love video games but that doesn't cut it in the industry. The easiest way to detect passion for MAKING games when they do it on the side with their free time. You just have to be careful when you bring in someone with pet projects that you understand who they are and what they enjoy working on. If you can't find a way to merge their passion for the pet project and the actual day to day job, then you're either going to lose them in <1 year or they'll spend more time on their side stuff than work.
Shit Google Reader, please ! How did this arrogant d-bag ever made it to my recommended items?
A pet project? How about making sure your slaves have actual lives outside of work which should provide you with reasonable assurance on them not turning out to be sociopaths?
Is there a limitation to using the Global Comments RSS feed if a lot of comments are posted at once? It didn't contain the first six comments from this thread.
Also, is there a limit on the number of comments that are pushed into the per-topic RSS feed? It looks like it only contains the last 30 comments on the topic.
I can see both sides of this. Like many, before I had a wife and kids, I used to come home from a full day of coding at my "real" job and stay up until 3am, working on my pet projects, dreaming of making it big with my own stuff. I loved being in that zone, and before kids, my wife accommodated me. It helped that I was young enough that I could go without the sleep. But when the kids came, and as I got older, I had to give that up, and along with it, my dreams of building my own killer app. Flash forward a few years, and now that my kids are older I'm trying to find time here and there to get back to working on some pet projects. I can't stay up until 3am, but I try to find a few contiguous hours every week.
For those upset with Ayende, have you ever seen This Old House, or The New Yankee Workshop with Norm Abraham on PBS in the USA? Ayende isn't looking for just any good carpenter, he's looking for a Norm. He doesn't want a good carpenter who knocks off at 5pm and goes home and watches Netflix. He's looking for a Norm, who knocks off at 5pm, goes home and finds a little time to head out to his own workshop and and work on his own projects because he's had them in the back of his mind all day and can't wait to work on them.
That's Ayende's yardstick for passion, for a tinkerer, somebody that will have his or her own ideas beyond the day-to-day work-related stuff. He feels that such a person will stay up with his or her profession, learn new things and techniques because he wants to, and not wait for his employer to tell him to do it.
There are extremes: the geek who doesn't leave his basement on one end, and the programmer who feels programming is work and come quitting time, the last thing he wants to do is write any code. But you can fall somewhere along that spectrum toward the geek side such that you have pet projects and do indeed have some work/life balance. If that's you, Ayende is interested, but if it isn't, don't be upset. Everyone makes their own choices.
The side project thing is not so good. This can be a nice indicator of people that love computer science, not necessarily that will love your project...
Basically when looking someone with a pet project you want them to stop working on it and concentrate on the actual work of your company.
I know one guy, he doesn't have pet project. He is relatively young but master his work more than many veteran. You can ask him any work, it will be well done, fast, and efficiantly. In fact he is brilliant and he don't mind working hard and doing many hours is needed. When he don't know something, he learn insanely fast and you can expect better result from him than from many veteran.
But when he go home, he doesn't care about work anymore. He has no child, but he go to ski in winter, go to beach in summer.
On the oposite, I know one guy. He is passionnate about computer science. He have done many pet project. But he don't work for you, he work for himself. He don't hesitate to rewrite part of application code just for the opportunity to better understand the concept. That nice, but this is on work hours. So yes he grow, but he doesn't play in team, and he doesn't help that much. It is about doing what he like, not what the company need.
So please stop making generalities. We are all different. What you really need is somebody that get the job done. No more, no less. And how they get thing done really differ from one person to another.
If I was asked to send code of a pet project, I would say screw you loser. Because I got better things to do in life than just write some code after work to prove that I am passionate about technology and learning. I think the industry is getting corroded with managers like you who would then probably squeeze out every bit until the developer gets a divorce.
If you would ask me to write a code to prove my skill, i would happily do it, but nothing more than that.
People have different hobbies, lifestyle, passion and no one should ever judge their commitment by what they prefer to do after work.
1) I am passionate about my job, which is why I spend all my coding-time (upwards of 60 hours a week) writing code for my work. 2) Any code I write on my own is owned by my company. So by your definition of pet-project I tautologically don't have any. 3) I spend my non-coding time reading business, finance, and tech news and software engineering, programming, finance and business textbooks. There's a sort of recursive structure to success as a software engineer: bread and butter is programming and computer science, which is a fraction of what goes into good software development, then software engineering, but then true success takes a business and liberal arts slant. You need to be able to engage with psychology to design a good product that people like and use and be aware of where the industry is going both technically and economically to stay ahead of it.
I'm single, go out with friends about once a week and maintain some discipline with working out. All in all my life is pretty close to fully work saturated, engaging in activities that are bettering myself as a developer far beyond what tinkering can do (and oh do I tinker at the office). Honestly, at this point, do I sound like a bad candidate? It sounds like you're inadvertently looking for a code monkey, maybe a software developer from the 80s or 90s, but as a community we've moved beyond that, because successful companies don't hire code monkeys, they hire software developers who could just as easily be a business-side project manager. and straddle the line.
And yes, we're hiring.
Well obviously this post got linked somewhere relatively popular because the last 10 people obviously have no idea who Ayende is ("the author", "who'd want to work for this loser", etc.)
Maybe those last 10 or so people don't understand how horrible applicants are in the .NET industry, and for entry level positions, developers need something to differentiate themselves from one another. Maybe they don't understand that expecting someone who will make six figures to give two sh!ts about their profession.
Here's the thing about .NET, if you are looking for a job and don't like Ayende's criteria, move onto Enterprise Company X and spend the next 10 years dragging and dropping Telerik controls onto Web Forms and you'll make the exact same money that Ayende would pay you (and probably get better benefits), but you'll hate your job, that is unless you love WYSIWYG.
On the other hand if you love to code, and are passionate about it and want to learn, you actually want to work for a guy like Ayende, and on the products he's building (a .NET Document database with full linq support, sure a lot better than building random company's new sales portal). People who work on pet projects aren't "slaves' as one of you put it, they work on pet projects because they love to code and generally want to learn new things. You want to learn Backbone.js? Good luck getting your current job to let you do it since it's entirely unproven tech, so you play around with it yourself, throw the code in github and write a blog post or two, is that really that hard?
And because we're beating a dead horse here:
Why is it that you people think that developers, who make more than anyone on that list outside of doctors (in most countries anyway), shouldn't be expected to do the same?
I think Steve is right. Clearly some of the people who came across this post don't frequent this blog. I especially liked it when someone called him a manager that tries to squeeze every bit of code out of his developers...uh...hmm...because, you know, Ayende is just some manager douchebag that couldn't code his way out of a paperbag. Where's your OSS project Ayende? LOL!!!
I think it's interesting that people think it's so insane to want to hire someone who works at development in their free time and to use that as a determining factor in the hiring process. I can understand people who simply can't do it. I get that, but if you just won't then I don't get you. What if we were talking about athletes? If you managed a professional team, would you want the guy who just shows up to play when he's getting paid, or the guy who lives and breathes it? Think of the top athletes in any sport. Do you think they go home and say, "Well that's that. No baseball for me until practice," or whatever? No way. Now think of the developers you admire the most (and if you can't think of any well, you probably don't have pet projects either), what do they do? They write articles, give talks, contribute to OSS projects. Why would you not want to be that? Why would you not want to hire that?
'passion' is an over-strong word most of the times it's thrown around, it's wanky and pretentious. Some advertiser: "We're passionate about diabetes care". Faaahk, no, you're not. Shut up. No one except a born-to-die-young artist can be passionate about anything for more than 30 minutes.
So, if you have any taste, stop grabbing onto and throwing around the cool word du jour, because you lack the ability to get your meaning across /yourself/. Say 'interest' or 'drive' or 'curiosity' or something instead.
@Steve - High-five, man. 100% agree with you on every one of your comments!
This approach seems to immediately discount people like myself who's "pet" projects are all work related. This method is not suitable on its own as a first-round applicant filter.
Hey Ayede. Can I see some of your pet projects?
@Alam - really? I mean really? I hope this is a joke...
@Steve - Well said. I personally think that if you aren't learning... your dying in this industry. It is like any other craft... you have to work at it to get better.
@ all of those who took a job and singed a contract stating that all code written outside of work is property of the company... i'm sorry.
I also wonder how a job interview would work in that scenario...
[Interviewer] "Could you write some code on the whiteboard for us?" [You] "Um... no. You see... I have this contract..." [Interviewer] "We'll call you... Next!"
@Jesse - Would you hire the baseball player based on the spare time hit-abouts or, well, baseball games? Good luck if it's the former!
As Jeff Atwood posted some years ago, "the very act of commenting on an article about software development automatically means you're not a vocational eighty-percenter," where a 'vocational eighty-percenter' in this case is someone who drag-drops controls onto a form, then goes home and drinks themselves stupid in front of some televised sporting event (or is that just in Australia?). [ http://www.codinghorror.com/blog/2007/11/mort-elvis-einstein-and-you.html ]
If you noticed this blog, you're passionate enough about programming that you don't need to be offended. You should be more offended that people who don't care enough to read this are getting jobs that pay just as well as yours.
While personal projects are a good idea, I personally think that if you're looking for passion in a developer, you're looking for the wrong thing. Here's why:
Passion is not a substitute for competence. You can have passionate developers who still do stupid things e.g. Pokemon exception handling. Having said that, there is a correlation.
Programming is a means to an end, not an end in itself. People who get too passionate about programming tend to forget this, and end up with nothing in their github accounts other than vim scripts and abandoned attempts at Yet Another IOC Container. If you want to look for personal projects, look for ones aimed at non-developers: that shows you're dealing with someone who at least has some grip on reality.
You know what? I'm not interested in working for you. 'Passion' is simply a code word in the I.T. industry for being stupid enough to put in 60 hour or higher work weeks without consideration.
@Gary Wheeler,
Apparently you haven't been reading, all the people posting in the last day who obviously have no idea who Ayende is have been saying they don't have time for their own projects, one guy said he regularly works 60 hrs a week and then ends with the fact that his company is hiring like it's a good thing.
Where I work we have a no overtime policy that we do everything we can to adhere too, but at the same time we encourage people to work on OSS projects even on company time. Being passionate about something doesn't mean working 60 hrs a week on it. But at the same time, with benefits included if I'm going to be paying a dev 150K a year, they better be keeping up with what's going on in the industry.
Ayende, you come off as a bit of a prick. You say you want someone who has a passion for the field, and yes, I have a passion for the field, and I've started various pet projects, but never finished them. You wanna know why??
My passion for the work I do on a daily basis, overtook my passion for the various pet projects, hence instead of spending time after hours on pet projects, I'd rather make improvements on the projects that put food on the table, a roof over my head, and a nice retirement fund the day I decide to put my keyboard away, and take up a surfboard instead.
You're approach is very short-sighted and judging by the rest of the responses I've read thus far, everyone agrees.
Alex, I am married, I read a LOT of non technical books, typically > 10 per month, sometimes twice that I got two dogs and I usually go home and spend large amount of time watching TV I passed the line between too much work a few time, and it wasn't pretty, but I am pretty sure that most times I am able to put good distinction between the two. So sorry, even given all of that, I don't buy that
@Richard
Re- "Would you hire the baseball player based on the spare time hit-abouts or, well, baseball games? Good luck if it's the former!"
Chances are a baseball player who doesn't work on his skills outside game time isn't going to be in the pros anyway.
The only professional athlete that I can think of that was top of his game and considered "lazy" was Shaq. He cared more about being a movie star and making rap albums to working on his game, but he was physically so dominant it really didn't matter. But when he did dedicate himself during that three year stretch with the Lakers, you saw him fulfill most of his potential and he was unstoppable.
Elite athletes spend the off season working on their game, spend their downtime studying tape and finding ways to improve themselves. Why do you think they talk about work ethic as one of the most important attributes in a player?
The truth of the matter is this, if you're not working on your "game" in this industry at least a few hours a week (on average of course), then you are falling behind. For most .NET devs, that's okay, they don't care they enjoy dragging and dropping controls and putting all the code in the code behind of a Web Form, but I can tell you this, I'm not going to pay that dev to work for me, because I might as well just get a college intern to do that work for me at 1/4 of the price.
If you don't care about the craft, look somewhere else for a job. The fact that anyone thinks that is an unreasonable expectation (especially in this case where its an entry level position) is beyond me...but explains why .NET is in such a horrible position that it's in today.
Patrcik, Note that this is a negative requirement, if you dint have that, I don't want you If you do have that, doesn't say that I'll have you That just gives you a foot in the door
Festivuser, If you are working for 15 - 20 years and still at n entry level position, that speaks a lot of your abilities, regardless of your actual age
I used to have pet projects then I found it was taking time out of interacting with real life and real people. My social skills were never brilliant but were going down the pan.
A typical week on my last contract
Mon-Fri: Rise, dress, eat, get onto tram, get to office, wake up. Daily scrum. Mark off completed tasks. Email. Code till lunch: unless my environment had developed a problem overnight. Lunch (20 minutes) Coding till time for the daily conference call with a bunch of clueless idiots in the USA who should never be allowed near a keyboard. Another couple of hours coding, then leave. Working away from home so find a cafe and eat then sit in a bar unwinding for an hour. Note ideas bubbling up. Fix the ones seem good. or might solve today's problems. Note ideas for an article about yesterday's problems. Back to apartment. Check personal mail. Skype home. Maybe write the article ready for publishing. Bath ( Do real developers take baths?) Tea. sleep
On Wed and/or Thurs: Play Capoeira.
Sat: Sleep late. Rise. Check email. Publish articles if any are ready. Brunch, Skype Home, shopping, cafe, bar, flat read on tech stuff, Read general stuff
Sun: Sleep late, Rise, check email, Brunch, Skype home. Fix tech problem at home end. Grab camera, go out, play tram roulette to see where I end up.
I want challenge, so in the code arena I am looking at new languages from time to time. No ideas for projects but project euler has some good ideas. I am trying to learn Scratch beyond just animation. However a lot of the time I am looking at other things since coding has largely become routine, whatever the language and most projects are the same.
Give me an unsolved and important problem and I will hang on like a bulldog.
Otherwise I am more interested in Maths, Physics, and the hard problem of trying to understand humans.
Nice idea :)
I have a family but can usually squeeze 4 hours or so in a week into my pet projects. AND have time to be a scout leader. I got my current job because of my pet projects :)
Don't (currently) know any .NET, and not looking for a new position as love my current one, but totally agree - pet projects show that an engineer loves what they do.
Russel Garner hit the nail on the head in his reply above, essentially in my opinion all you have done is create an indirect and hopefully unintentional age discrimination on your hiring practices.
@ayende -- If you think that the hiring process can be boiled down to one overriding factor (without which you aren't even going to interview), I don't think I want you.
FWIW, I have a number of passions in my life (and more than one involve computers, but not coding). They include playing a violin, teaching children how to play a violin, teaching the blind how to use computers, teaching people how to safely shoot and carry a handgun, Internet marketing, maintaining my Lions Club's website, and maintaining blogs on handguns, diet and nutrition, tinnitus, and music. And yes, I manage to keep a 40hr/wk job, and do it well.
It is unfortunate that you would not hire me as it sounds to me like you have a great attitude toward work and employees. I haven't had a pet development project in a few years since I put them aside to devote more of my time to volunteering. I am now the chair of two community groups and volunteer in yet another. I find being passionate for people to be very rewarding and could bring a very different skill-set into an organization. I still very much enjoy design, development and the challenges they bring, but I think widen my scope of interest has made me a better person all around.
How about learning the difference between later and latter?
For what it is worth, I agree 100% about the necessity of proof of 'pet projects' as an indicator to both enthusiasm and capability. I speak from the point of view of an older person though, something that seems to have struck a negative chord.
If anyone objects, they are not forced to become my employee, for FSM sake! I'll let other companies take the dross.
@Ayende Rahien - You dick!
Good one! you could hire me, because im doing 3 projects for 3 friends at the moment for free!! haha
@Rob Hawkey
Re- "[E]ssentially in my opinion all you have done is create an indirect and hopefully unintentional age discrimination on your hiring practices."
How so? If someone has 15 years experience in the industry, how come they are applying for a junior entry level position? Doesn't that raise a tremendous red flag for you? I know the economy is rough right now, but not for IT. Even with near 10% unemployment in the US I'm hiring like crazy.
On the other than, If the developer is new to the industry (say they hit 40, decide that they hate being a salesman and want to get into programming) why wouldn't they want to do something to differentiate themselves?
I agree with the sentiments above. Passion is a personality trait. To assume that people must follow the passion in which you desire is short sighted and I'm afraid may cause you to miss out on great opportunities. You can assume that an opportunity missed was, "to be missed or for the better," but realize that someone like myself who has so little time because of a recent passion, that pet projects are impossible to maintain.
Passion in the field is never lost, but it can be traded. I think you should realize that and keep an open mind. The respondents above are a mixture of people who have no passion for their work but do it to make money and those that burned out from pet projects and now work on other passions. I'm of the latter. If you didn't accept me because of that I see that as a detriment to your company; however, I could assure you it's unlikely I'd apply at any place in which you work in the first place. I would not want to work at a place that replaces innovation with zealotry.
We all have the tendency to hire people that are as much clones of ourselves as possible. However, it is worth to think outside of the box and intentionally hire people how are different. In fact, I think we cannot afford not to. I once attended a course that discussed interaction with people according to a model suggested by psychologist Ichak Adizes. Adizes defines 4 categories of people: 1. Entrepreneurs (invent and create things) 2. Productive people (motivated by desire to get things done) 3. Administrators (need order and well defined work process. Invent them when needed) 4. (social) Integrators
The instructor mentions that he thinks most startups fail because founders are typically EP (Entrepreneurs-Productive) types which hire more EP types and never bother to get the right balance of people with the qualities needed for the org to survive in the long run.
You can also call this attitude: arrogance of power. It could be acceptable to recruit members for a hacker club.
This is one where I am definitely in the same camp as Ayende. I have always used various indicators to try and guage employee passion. For a long time it was technical books and magazines. I don't want to hire people who have no interest in expanding their knowledge unless their employer pays for it. I look for people who are passionate enough about software development that they look for ways to improve on their own. I think the idea of asking about pet projects is a great indicator and one that I will certainly add to my hiring checklist.
I also don't buy the ageism thing. At 46 I still have lots of time for development and family and personal hobbies outside of programming. The reality is that my overwhelming passion is for software development and it shows in how I allocate my free-time that is available for hobbies.
Who cares about what Ayende says, anyway I wouldn't be interested to work with such a prick
There is healthy passion for ones work and un-healthy. My apologies but the author sounds like the un-healthy version. I had the following thoughts while reading this article.
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. Or you can be a beacon of positive light in the world, reaping the benefits of loyalty, adminration and TRUE respect. No one respects a selfish bully sir, no matter how good your code is.
Now let me judge you by your outside project... "Thank you for your resume sir. Here at blahCode, we emphasize passion as shown by outside projects. Your main outside project is a (nice little) blog. We feel someone claming to be a super duper coder, like yourself, should exhibit more advanced outside programming interests. Sorry but ANYONE can write a blog."
So you're this super coder aaaannnnnndddddd your outside project is bitching on a blog. You hipocrit. You would not hire yourself. A blog? For someone of your (supposed) talent? YOU HAVE NO PASSION
I worked with a guy once who had so much passion for his job he had every line of his code memorized, no bs, we tested him all the time. But he couldn't hit the toilet when he urinated. YOU'D LOVE HIM HE HAS PASSION!!!
Your PASSION is nothing more than high school locker room adolescent bravado. Your an arrogant prick and you only respect those more arrogant or powerful than yourself. Grow up you child.
Some of the best code and creative code i've ever seen came from a very nice, quiet nerdy guy who didn't need a high five everytime he instantiated a class. You miss out on a lot of good employees because you want them to fit your mold. Give me a quiet genius who turns out great code and causes no problems over your high fiveing, chest butting adolescent mind.
The author is narcissistic and would make life miserable. Ask why the author has this blog? If he is superior, why does he need the inferior to acknowledge his superiority? .... the truly superior do not.
It's just as well that I'm not asking you for work, Ayende, since we have fundamentally different attitudes towards software development. For you, it appears to be a vocation from $DEITY. For me, it's a skilled trade that I chose as my day job when I realized that I needed to write. Do I put in effort after hours to keep up with my trade and be a better programmer? Yes. Do I code when I'm not getting paid? Sometimes, but never for the sake of a prospective employer.
Great, but as with any vetting process, you have false positives and false negatives.
Currently I'm finishing a math/stats degree, 3 more programming books have just arrived from amazon, I also have 3 young children, and I have a life outside of work too.
Unless I start taking speed, and not bothering to sleep, I'd be pretty stuck for time to have a pet project.
It's hard to decide who's worth interviewing, and who's not. I'd suggest that you are assigning a very high weight to one single factor.
First off, I find it funny the people who don't know who Ayende is and seem to think that he's a non programming manager with little sense. Although admittedly I didn't know who he was before the episode of Herding Code that he was on. Then again I didn't know about RavenDB prior to that either.
Anyway, it seems that the responses come down a couple of different ways: 1) They work for a company that will not let them work on something else. 2) They don't have the time. 3) I laugh at open source and think it's dumb.
If it's number 3, I don't think Ayende's company would be a good fit for you considering. Number 1 is a potential issue but even when I was working for a company that owned anything that I produced, I was still creating throw away apps when I was learning new frameworks, etc. (On my last day I gave them all to him on a CD and said "Congratulations, you're the owner of some useless code" and his response was "How is that different from any of the other code you've given me?". Good times). And number 2, I just don't understand. I do a lot of pet projects. In fact I just merged a bunch of the code from about 10 of them into one ultra, mega utility library... On top of that I'm married, hang out with friends, work out a couple times a week, and go to sleep around 10 each night. But generally speaking I usually have a couple of hours during the week that I can do something.
Pet projects don't have to be large or even, necessarily, good. Someone earlier said it's a useless waste of time to create yet another MVC framework. No it's not. If that developer learned something from the experience then it's quite valuable. If you have a half finished IoC framework, then perhaps you have a bit more understanding for how Ninject works. The one guy who mentioned raytracing. If someone came into an interview with that code, I would actually be rather impressed. Maybe you just automated a home server to backup your music files using a number of scripting files. Show me the scripting files. All of those things are valuable learning tools or at the very least show that you're thinking about ways to make your life easier.
I have a number of friends (who would be at the junior level which is what he's looking for) who just refuse to create anything if they're not being paid. I keep trying to get them to do something, but they just have no interest. From my experience, their code doesn't really improve. It stays about the same, mediocre level. It's not bad, but it's not great. All I can say is that if I were to be honest, I wouldn't hire any of them.
Double face-palm
I think the people who missed out were lucky.
LOL @Rod Johnson. I shouldn't laugh, but seriously look at the guy's Github account: https://github.com/ayende
His blog is not even remotely his most impressive project.
Also @David Tolan, one of the coolest things my dad did when I was growing up is teaching me to program. We used to build simple games together. If someone came in for an interview and said that was their side project (teaching their kid), that to me would be a pretty cool pet project. Just a thought.
As a developer and manager with more than 20 years of experience I found that after reading your article I determined that you would actually be the wrong employer for me.
All this b.s. about passion and pet projects is ridiculous. Great developers need rest, family time, and other outside interests rather than sitting in front of a computer most of the day. Sounds like you're a robot looking for like-minded followers.
This is ridiculous. Before I got married you would be right. Now that I am married my free time goes towards my family and NOT ignoring my wife so I can be a workaholic.
What you are looking for, dear sir, is a workaholic. Sure you will get good results from them but it shows that you as the employeer don't care about your employees. Maybe that is ok for your company, but if you don't care about your employees then why should they care about you?
For the paycheck?
The people you weeded out should be weeded out. If you would have responded to me like you did to others I would say to myself, "Good riddens."
Are you one of those employeers that measure performance through lines of code? I bet you are.
@Rod Someone needs to make a [+1 dick] button for pricks like you. I hope you don't have to go job hunting anytime soon.
To the comments about SO rating being a hiring qualification:
Why do I want someone whose time is worth so little and who has so little billable volume presently that they can dedicate a large amount of time to giving away free work to people who have a huge track record of never giving anything back?
My employer makes us sign a Code of Conduct that stiffles pet projects, they see anything that we do (on or off the job) as their property. I can actually get fired for having a pet project. I write systems for a fortune 100 company which keeps them from having to spend millions of dollars on access management applications.
Are you saying that I would not be considered for a job with you just because my company would fire me for having one?
Something tells me that if you have a full time "pet project" and a full time career, one or the other is suffering. Chances are, if the developer has a "passion" for said "pet project," I can almost assuredly tell you which one is suffering.
So you would hire the developer who is going to RAD your code to get it out of the way, so he can see to his pet project? Great plan, and hopefully your company can benefit from his pet project, because that's where the bulk of his innovation is going to be invested.
I hope you micromanage, because if you don't, it's going to be your time and your dime that's going to be used on his project.
Your scenario of picking out passion is great, but it is chocked full of dangerous holes. Passion can be seen by the expression and eagerness to learn of the potential hire, not by how many things he plays with while "supposedly" attending to his full time job. When I see something new I can use and bend to my will, I get genuinely excited about. That's the measure of passion.
If you can't read people for what they are, and can't evaluate on anything outside of pet projects, perhaps you shouldn't be in charge of hiring. A great developer is not built on his code or endeavors, but on the foundation of his passion to progress.
When you want to hire a programmer you should make sure that s/he understands where the position fits in the bigger picture of software development: can the programmer read requirements / specifications? What is his/her experience in writing clean code for testing / reviewing / maintenance? Does the programmer has experience with software quality practices? Mr Ayende addresses none of these concerns. Sorry, not a professional, just a hacker. There are playgrounds for theses games. Final question: How the existence of a pet project contribute to the development a "good" software application?
"What? You were too busy stressing over trying to find a job and providing for your family to work on a side project?"
I work minimum 10 hours a day and when im not working im working on side projects and even I think this is a little weird. Almost everyone else i know puts in 8 hours and calls it quits, but they are great people to work with.
Also if you are always working even if its a side project you do get fatigued faster. You need to disconnect sometimes and do something else.
In my opinion people that have lots of other interests make better and more versatile and creative programmers because they have lifeexperience and views that enable them to look at a problem from more angles. I also think that communication- and team- skills are better from people that "live" more (not that coding is not living, but when people expose themselves to lots of different situations they grow more) Also people that have a more "Active" lifestyle are healthier and produce better codequality.
You've got a point but many of the best programmers I've been in contact with do not do any projects outside of work. An important question however is why they don't. It could be a conscious choice like many suggested here or it could be that they are actually doing many other things.
Just my experience.
I can't get over the indignation of some. "How dare you ask me if I code in my spare time!" To those people, let me ask, do you have any hobbies? Are you saying you have no free time whatsoever and that all you do is work, go home, eat and sleep? Because that is all that pet projects are: hobbies. Some people garden, some people collect stamps, some people do crafts, some people play video games, some people crochet, some people build model railroads. I code and build my own personal little apps as a hobby. Like everyone else with a hobby, I a) manage to find a little time for my hobby in my busy life and b) don't get paid for my hobby, but I do it anyway because it's what I like to do. Hmmm, you might even say that I have a passion for my hobby, and that's why I do it.
I have many pet projects but luckily I do not need to change job.
But even I needed, and I did not have pet projects that would not be the problem because, basically, I would never work with someone like you.
I seem to exist in this weird zone of junior and ... I dunno... since the some of 'must knows' rattled off about 15 comments from the top are still things I either don't use directly or have to verify what I know. o_O I'm sure part of it comes from the fact I'm the sole developer where I work.
The point at hand though- I have a wife and two kids and I still find my pet projects to be a neccessity. I learned to program to make games, while my end goal is design+story, I don't think i'd ever stop doing code. Also my pet projects don't mean I don't give a crap about my work during the day either...and both sides feed each other.
I like the Doctor+ example someone had, you'd expect most professions other than the most basic to read up on new techniques.
@Kenneth Kinnison There's a big difference between boning up on new techniques and researching, and coding for the OS community.
Your doctor being a prime example:
A. A doctor studying his medical books at home. B. A doctor dissecting his cat and giving neighbors free hysterectomies in his basement to further his techniques.
Man, what an asshole. This just seems like a "test" designed to make your hiring process easier. I suggest you develop some passion for your job and start interviewing people properly.
Paul.
The bottom line is: If you want to hire a hacker, go to the OS community. If you want to hire a "professional" developer, hire someone who is passionate about learning their trade, and is always hungry for more insight and methods that could benefit your business model and be assimilated into your ecosystem.
I'm not saying there's anything wrong with being a hacker. I've participated in many a hacks in my side development community, but that is NOT where good developers are born, nor is it proof of your "skills" (or even team skills, as often time hackers will communicate lightly between themselves, but with more lulz thrown in that you would not find in a professional environment).
I just think it's funny the folks who don't understand what it's like to literally not have any free-time, or not enough to work on anything meaningful. You either don't have children or you are a terrible parent, and there are quite a few of those. If your kids are older you may have some free time, but with young kids I certainly don't have enough to be working on a project of my own.
Before kids I used to have fun with pet projects, e-commerce site of my own, etc so the drive is there. These days when I do have some time to myself, mostly while I'm on my elliptical, I read programming books or websites on my Kindle.
But if you think that folks talking about family(kids) sucking up their free-time is BS or poor time management then I will tell you that you are quite simply wrong. Two ore more children can easily eat up enough contiguous free time that it is next to impossible to do anything meaningful in any of those small periods of time you may get during a day.
I will say this though, being married didn't eat all my free-time, and neither did 1 kid, but after 2 watch out...
Well, first off, I totally agree with the idea of working on pet projects to make sure you are abreast with latest tools of the trade. Just like someone said you have to work on your craft to get better at it. It's like evolution, the species that can't evolve fast enough become extinct. And the key to do it is to have good time management, I do work on pet projects but i am not always able to manage my time effectively. I also code at work which i love. Secondly, apparently people who think .NET is all about drag and drop have not heard about things like WCF RIA services, LINQ, SILVERLIGHT etc which anyone can tell are not at all drag drop. These people probably have some sort of unfounded predisposition against .net and the last they used was probably .NET 1.1 or may be just VB. It doesn't really matter what technology u use its what u do with it that matters, I don't know how many times this must have been repeated by scores of bloggers, programmers and technologists but some people just have a thick skull. Enjoy your antediluvian crap!
Amazing, I wonder what would happen if Ayende posted the same post in a Ruby, Java or Python community what the reaction would be?
Everyone I know who does Ruby is active in OSS, but apparently 75% of the .NET people reading this blog are "too busy", yet they have time to read all the comments on this blog and could post on it, so they're not to busy for that.
Don't ever change .NET community, you're perfect the way you are.
@Terry
"The bottom line is: If you want to hire a hacker, go to the OS community."
Come on now, really? So someone working on OSS, a project that is open to scrutiny from their peers is a "hacker", but yet someone buried deep in an "enterprise" shop where their version of testing is "that's QA's job" is a better fit?
Stay classy .NET community.
@Steve "Everyone I know who does Ruby is active in OSS, but apparently 75% of the .NET people reading this blog are "too busy", yet they have time to read all the comments on this blog and could post on it, so they're not to busy for that."
LOL...nice, although I think you need to recognize that these comments are coming in for most during work hours. This is a completely different time period and speaks to a completely different problem that many programmers have :)
And I know everyone is taking shots back and fourth between OSS/Microsoft, etc and is getting everyone's feather's ruffled. However, do you really think it makes a difference what language you write in? I have 10 years PHP experience and 2 years .NET...doesn't make a bit of difference to me. I promise if I started writing in Python/Java/Ruby it wouldn't make a difference either, at least not enough of a difference to matter. It's the programmer...and that's all there is to it.
@Steve
The reason why many people are reading and commenting on this blog is because its link is mentioned on a professional mailing list! There might be other reasons though ...
@Steve Would it better to hire an Android hacker, or a corporate developer for a corporate position? You tell me? I personally think hackers are geniuses in their own right, but that does not make them suited (without grooming) in a corporate atmosphere.
Like I said, there's nothing wrong with doing hacking, and it takes a lot of patience, a ton of time, and yes, it's all open to public scrutiny (which is mostly QQ about how unreadable/unmanageable the code actually is). Forget commenting and documentation, because if you're intelligent enough to read the crap, you don't need the comments anyhow.
And yes, a corporation uses QA to analyze their code instead of the WWW peers, and rightfully so. Microsoft and Apple wouldn't have a cash flow if they opened their code to the world, now would they?
And as far as internal testing is concerned, not that it is always strictly adhered to, have you heard of unit testing? Last I heard, that was a standard?
Are you just babbling because the point is a Microsoft language, or do you actually have a point? If you hate Microsoft and the community of practices, why are you even here?
@crob
Re- "However, do you really think it makes a difference what language you write in?"
Short answer, yes.
Long answer, definitely. Ask anyone doing Ruby what testing framework they use and you'll get a variety of answers, Test Unit, Mini Test and RSpec just to name a few, ask the same question to a .NET developer and they say "Unit Testing Framework?"
Why do you think there is the mass exodus of former Alt.NET type .NET devs to Ruby?
A mass exodus to Ruby in corporations (AFAIK, non-existant)? Or a mass exodus in the OS world? The reason for the latter is simply due to cost. If you have no capital, minimizing overhead is priority 1.
I almost died when I read @Rod Johnson's "..Your main outside project is a (nice little) blog..." Really? Speechless.
@Terry,
Sorry, you are all over the map, but I'll try and figure out what you are trying to say:
"Would it better to hire an Android hacker, or a corporate developer for a corporate position? You tell me?"
I have no idea what that even means, is it for a .NET position? Then no, likely I wouldn't want to hire someone who does OSS Android projects. But if I worked for a company that was trying to put out a mobile app I sure might.
We're talking .NET here anyway, so if someone contributed heavily to the MVC Contrib project, wouldn't you think that'd be a huge bonus?
"And yes, a corporation uses QA to analyze their code instead of the WWW peers, and rightfully so. Microsoft and Apple wouldn't have a cash flow if they opened their code to the world, now would they?"
Ayende's product, the one that he makes his money on, is Open Source. So...yeah, even if that wasn't the case, what does that have to do with what I said? The fact that in many cases OSS projects are better written than private projects, for the very reason I mentioned. Anyone can read the code, criticize it and (in some cases anyway) update it.
"And as far as internal testing is concerned, not that it is always strictly adhered to, have you heard of unit testing? Last I heard, that was a standard?"
Again, I have no idea what you're on about here. Unit testing isn't standard in .NET, but it is pretty much anywhere else. Ditto for using and contributing to OSS projects. It's only in the .NET world where this is this inherent fear/disdain for OSS (coming right from the horses mouth with Balmer). The rest of the world's ecosystems embrace it, .NET goes in the other direction with expensive, half implemented tools that are a shadow of their OSS counterparts (i.e. EF, MSTest, Coded UI, etc., etc.)
"If you hate Microsoft and the community of practices, why are you even here?"
I am here for this very reason, Ayende doesn't do things the Microsoft way, he does it his way which just happens to correspond closer to the way other ecosystems tend to operate. If look at my comments, you'll see that I am clearly supporting Ayende on this issue because I feel the same way. I don't go as far as he does, but I spend an awful lot of time in interviews going over things not on people's resume. The last thing I want to do is fill a position on my team with someone who doesn't take it upon themselves to continue to learn. To learn about new technologies, to learn about what's coming up next. And before you complain about not having time, I don't allow my people to work overtime because I don't want them to be burnt out. I don't care if they read blogs at their desk, or work from home, because all I care about is results. So all you people complaining that you already work 60hrs a week, maybe THAT is the problem, not that Ayende wants you to spend 3 hrs a week playing around with a pet project.
Here's a challenge for everyone disagreeing with Ayende and calling him a jerk, log all the hours you watch TV this week and get back to me.
@Steve.
I've used nUnit with .NET but software packages do not make the programmer. I think you know that's a bit of a silly answer. Don't be a languageist! (Think racist)
Challenge accepted... You asked the wrong question (1-3 hours), but I do log about 10-20 hours per week into side ventures. That, however, definitely shouldn't be the basis as to why a corporation should hire me (it's never even been in any of my resumes). What I do on my spare time is on me, and should not even ethically be asked of my employer.
@Terry,
"A mass exodus to Ruby in corporations (AFAIK, non-existant)? Or a mass exodus in the OS world? The reason for the latter is simply due to cost. If you have no capital, minimizing overhead is priority "
I mean the people that actually drive the .NET ecosystem forward, people who care about good design and development. Think of what ALT.NET was four years ago, you know, before most of them left to do Ruby.
Karl Seguin made a great point on twitter yesterday in that he doesn't need to go find Ruby people to follow since almost every .NET person he knows has switched over.
@crob
"I've used nUnit with .NET but software packages do not make the programmer. I think you know that's a bit of a silly answer. Don't be a languageist! (Think racist)"
How many of your peers can say the same thing? I'm the head technical architect for a very large software company, and part of my job is interviewing new candidates, so I know of what I speak of. The large, large majority of people I interview for what we call "senior" positions have never written a Unit Test, and in most cases have never head of NUnit, xUnit, let alone MSTest which is part of Visual Studio.
That is unheard of in other ecosystems. I'm not a languageist, nor am I a self-loathing .NET developer because I think C# as an actual language is fantastic. It's the overall environment in the .NET ecosystems that is completely broken, and 99% of the blame goes to Redmond.
And to completely beat this horse to death, I think in another ecosystem, you would get an overwhelming agreement with Ayende instead of this over the top disdain, especially considering the contributions he makes to .NET with his OSS work.
@Steve
You may be right there, Steve, but charity isn't in my line of work, nor is disclosing my personal habits and free time allocation to my employer as I feel that is unprofessional and unethical to even ask.
To beat that dead horse even further into the ground. My work life and my real life don't mix. I am not married to my job, nor should my hobbies and life surround my job, or even be expected. I do some freelancing on my own time, but that is of no business to my potential employer. If they want to divulge into my professional life, I'll be an open book. If they feel that part of the interview involves digging into what I do with my spare time, then I'm sitting on the wrong end of the interview desk.
Terry,
Then don't apply to work somewhere like Ayende's company, it's as simple as that. Do you know how 37signals hires people? They get people to send them a link to their github account, they don't even ask for a resume.
The fact that so many people are throwing a fit over this is crazy.
You publish an article to a professional mailing where corporate America is reading about how their personal life should be on trial when applying for a job, and what kind of response was expected, Steve?
It's bait.
This is a very interesting post and it certainly has a lot of good comments on both sides of the fence. As far as I am concerned I get up early, read the trade information (CodeProject and SmashingMagazine), go to work, and come home or go out with friends, read a novel a week and even catch some football. In 2005 I was tired of the speed and amount of work required to do something right or at least maintainable. So I went on a quest to create a better architecture complete with the various pieces of software that really worked well. This has kept me busy as a pet project. What I found was that each quarter I had implemented some pattern that helped a lot to reduce my time to make maintainable software. This of course gives me more time for my pet project and so forth.
Now I do agree that my kids are grown, however, I still spend a lot of time with my family and even grandchildren. Yeah I am an old developer, but now I find myself a young architect. Yes, when I had children I read every morning before my wife and kids rose from the bed. Every Saturday for about 3 hours I work on my pet project or I read something new and interesting that might apply to what I do.
the benefits that I have gained include more money for the work I do, more acceptance with other programmers, better mentoring of junior programmers and in general a very satisfying feeling of being a craftsman.
I do not think that this requirement is so onerous and in fact illustrates what "thinking out of the box" can accomplish.
I wish you all well and hope that you will someday feel the way I do about my craft.
it sounds good in theory,but it excludes people coming from a job that encourages pet projects. i often have pet projects at my current place of employment, i often work on things that interest me at work (even though i know that work done on the clock belongs to the company and i likely can't take it with me if for some unknown reason i should find myself no longer working here) i tend to spend most of my time at home sleeping or doing other things while doing the things i love at work. my last project at home is over 2 years old. my computer at home is over 8 i believe.
I have to say that I cannot believe these people saying that say have no time to think about stuff in their spare time, I really enjoyed the article, and the (constructive) comments.
@the people who are claiming that their kids take up all their time right now... would you consider changing industry from IT to something else while you have young children? if not then you wouldn't be considered a junior, and therefore wouldn't judged against the same criteria (correct me if i'm wrong on that one.
I'm currently a QA manager for a small firm in the UK, and I'm actively looking for people for the team at the moment. It's slim pickings for junior technical QA staff, but I've just had to get rid of someone and deal with the extra workload as he didn't want to help himself be better at his job by learning in his own time. it wasn't the fact that he didn't do it, it was the fact that he was a junior who should be trying to learn and further his career but wasn't. In the this industry, if you stand still your dead (think that's a quote out of a film, but I like it), so if you are only willing to learn what your company currently does, then I don't want you.
i've recently interviewed 2 people for the position and hired one if them. the reason that one got the job and the other didn't is that he is interested in Security testing, he's not a developer, but in his spare time he maintains a brain dump type site of different security risks, etc. That got him through the door as a person who had been working in a call centre with no development track record, then he proved himself through the testing I put them through
now, if i'm hiring a senior member of the time, the criteria is more around the stuff they know already, and what experience they can bring to the team, not their "passion".
in summary, I think what we're saying here is that pet projects does for a junior position what lots of relevant experience does for a senior position.
</rantover>
p.s I do everything that my staff do at the moment, so i'm not a non programming, work shy manager as someone mentioned...
Terry
"You publish an article to a professional mailing where corporate America is reading about how their personal life should be on trial when applying for a job, and what kind of response was expected, Steve?"
Me? I didn't do anything. Ayende might have done, who knows, but that has nothing to do with me. But I do know that in other ecosystems, people either wouldn't care, or would support this idea. But with .NET, it's suddenly "personal life on trial"?
Jesus, he's just saying that if you don't have code to show me, how am I supposed to judge if you are any good? There's a reason Github is so popular, and there's a reason why 100s of thousands of developers showcase their code there (including Ayende). Stackoverflow just added Jobs 2.0 which links your resume directly to your github account as well. In a few years, this will be second nature to .NET developers.
This isn't an invasion of privacy, this isn't questioning how you want to spend your own time, this is simply saying "I am about to pay you six figures to work for me, can you show me some samples of the code you've worked on?"
Maybe the failure rate for IT projects in "corporate America" wouldn't be so atrocious if they cared more about the quality of their developers.
I seriously don't get a lot of the comments here. I work a full time job where I'm on call 6 months out of the year. I have a wife and three kids. I hang out with my friends and read a lot. Yet I still find a few hours a week here and there to work on some things I find interesting. And I dare anyone to say I'm a bad parent because of it.
Ayende wasn't asking for a full blown MVC reimplementation. He was asking for some recent code that is representative of the candidate's desire to learn. Stuff that would give the general idea that they are trying new technologies, not just reading about them.
And to those arguing against OSS, he didn't ask for that either. He asked for pet projects. That could be a single solution sitting on your hard drive that has never seen the light of day.
@Steve "It's the overall environment in the .NET ecosystems that is completely broken, and 99% of the blame goes to Redmond."
I agree the environment is broken, but if some of the cool stuff below is any indication I think they may be on the right track, which will lead to better developers with open minds, but it does take time. * jQuery integration in VS 2010 (plus contribute heavily to jQuery with platform neutral code) * native MSSQL driver for PHP * FastCGI for IIS * Phalanger : PHP language compiler for .NET * Codeplex * ASP.NET MVC
In the mean time I have to say this. There are diamonds in the rough, believe me, I have made my living off of being a great developer in environments where there are few and there are definitely others that do the same. It is your job to find the right developer for the position. I've learned through experience that biases towards one technology or another with never help you, likely will hinder you, and may end up making you look very foolish one day.
Stating that the only way to show passion is to do coding as a hobby on your personal time, specifically to the OS community, is asking one to divulge into their personal life, and not only divulging into their personal life, but demanding that their personal life contain it in order to be considered for hiring purposes.
I f I am going to be paid six figures to work for someone, I'll whip something up to prove my worth if my experience doesn't fit the bill (not that I'll be shopping for a new job in the near or distant future). I've been tested before in an interview, not by using jargon, but being requested to create an application of simple functionality post-interview. That's brilliant, in my opinion. While I agree with the idea of needing to look under the hood before purchasing, the phrasing of "you have no passion if you're not devoting your life to OS on your spare time" is complete crap. The fact that other communities think that should be the norm is disturbing.
To put into perspective, today I read that a man a few years older than I with a family in my business passed on (and I'm "relatively" young).
This just drives home the fact that I'm not guaranteed another day on this earth, and I'll be damned if I let the business world drive what I do on my personal time. Maybe that's just me. If you all are happy with that attitude, good on you. If there are entire communities driven to devoting their entire lives and hobby time to developing software, noble of them, but don't come about here with your high and mighty, superior than thou attitude telling those of us that have family's and lives what we should or should not be doing with our spare time.
I'd rather spend mine enjoying my family.
@steve And "you" is figurative.
@Harry Steinhilber I don't think you interpreted the article as I did. I interpreted it that he wants to see "pet projects". Projects you wrote at home on your own time, not work, not partially work/partially your time. I understood it to mean a project you wrote on your own.
There is a difference here. I can show any employer "recent code that is representative of the candidate's desire to learn. Stuff that would give the general idea that they are trying new technologies, not just reading about them. "
However at the moment, all this code would be from my current employer, not a pet project.
@crob,
All good points, things are definitely getting better with Microsoft, but it's still not great. Try doing TDD with MSTest for a day and you'll see what I mean. :)
I also agree that there are very good .NET devs out there as well, but they are a very small minority. When I do find one I make sure they are paid well, treated right and don't get burnt out because I can't afford to lose them.
There could be another reason the person doesn't have any code to share. Perhaps they are passionate but have been sucked down a tube of no time for their projects for a long time. I spent two years in this situation for my last employer. Quite simply I didn't have time to keep up with learning new stuff, writing the code that was needed yesterday, and taking care of my family's emotional needs.
Now some people are considering a project to be something showing that one wants to learn. Perhaps they are right, I took it to mean some project that you work on at a regular interval.
Do I have passion? I think so. I think that is the reason I was willing to give my employer what I did for as long as I did. Eventually I decided I had to leave so that I could have more time. Time to actually devote to a pet project. Time to actually learn how to use the free MonoTouch license that I scored.
We have recently been handed new contracts. These contracts include statements the give our current workplace potential ownership over anything we do during and as part of your employment period. This is becoming common place in Australia. Recently one staff members was chastised for posting a solution to an issue with a silverlight control on a forum. This was a tech solution, not a "business" solution in anyway so has no effect as far as competition is concerned. Anything done by us outside of work hours is generally "owned" by a family member or spouse to avoid direct conflict with contracts. We are essentially discouraged from achieving outside of the workplace. If we were to provide insight into a pet project, whether or not its competition to our workplace or not, we can be exposed to legal action.
Crob, That is not a piece of code that I would like to see. a) It belongs to your employer, there is a high likelihood that I am not allowed (legally speaking) to look at it. b) It doesn't really test the sort of things that I am looking at
@agenda yeah and that's how I interpreted your article I was just pointing out to Harry the difference
Passion for development isn't just about having pet projects, nor having passion developing software for a living requires having it in your spare time.
I've also made a few interviews out there, I always like to ask if the candidates have a passion for this world and are also interested in it outside of job time, but basing my selection criteria just on it seems totally unfair and even wrong, as I've known people that completely ignore software development in their spare time, their code is not the greatest at all, but they add a lot of value to the company.
Also, I have a kid, have to take care for a lot of things in my daily life, have to travel by car more than 815 kms quite often, I have to dedicate to work more than 9 hours and a half (because of getting there), go to the gymn, etc, etc. Yet I'm able read up to more than 50 programming blog articles a lot of days, and I'm trying to constantly improve and learn new things, I even manage to have some small pet projects or make several experiments (although not big ones, and some of them are a mess because I want to just quickly prototype something with some visual results), I like learning new things, even if sometimes it is overwhelming, but sincerely, I'm not sure I want most people to have this sort of life.
I just wanted to say that @Steve, I could not agree more with your comments here. You saved me a lot of typing, so thanks. You also sound like someone who is+ great to work for/with so keep it up!
I agree with this article EXCEPT that in some cases it could rule out perfectly good candidates. For example, I just came out of a job where I was not allowed to do pet projects. Any code I did on weekends that I would ever want to show anyone had to be cleared by management, and once quality assured it would need to be branded and absorbed into the company. I still wrote a lot, but all of it would still technically count as the companies work, not mine. Another example is that the job I had before that required such long hours that the 4 hours a night that I didn't have to be at my computer, I was eating and sleeping. I did eventually quit when I had had enough, but came out with nothing to show for it.
If you want to hire people, apart from those good hiring practices, I recommend you to:
Here is a link to a more decent interview: http://www.codeproject.com/KB/interviews/Interview-John-Simmons.aspx This can help Mr Ayende to stay in business by recruiting professional developers.
@crob - A quote directly from Ayende's post, emphasis mine:
So a pet project can be a simple solution you used to just learn how a new technology works. That to me is what code representative of a desire to learn is. I have dozens of such projects on my home computer, and a few on github. Almost none of them actually 100% complete.
@Sean Gough
I was probably a bit more flippant that I should have been in some cases, but some of the responses here were flat out staggering. That, or amazing trolls (if that is the case, kudos to them for being just realistic enough to suck people in).
It was good to see Scott Hanselman respond to Ayende's follow up completely agreeing with him. As I mentioned before, now that the likes of Stackoverflow Jobs 2.0 are attaching Github directly to your resume, I think this is the way of the future, and I as a hiring manager for a software company can't wait for that to happen.
I also don't buy the "I can't legally do pet projects" argument, but that's another issue entirely. :)
I think people who passionate in coding will find spare time to work on pet projects. Each of us might have a pet project but finding time to execute it, is the biggest challenge.
In my experience working on personal projects 1. Give more freedom 2. Experiment different frameworks or different way of implementation 3. Learn new things that I may not get in official work. 4. It also helped me to implement stuffs I learnt in my personal projects into official projects
And a lot more...
I agreed with Ayende's intention. He is not just looking for developers, instead looking for developer who's passionate in coding.
I also do a pet project and it helped me to perform experiments on Design principles, Patterns and TDD. In office, as being a junior one, it is not possible for me to apply all of the good things in the code, but at home, time isn't the matter and I can learn and apply all of the best practices i get from the world class mentors like Bob Martin, Martin Fowler, Kent Beck etc persons.
A passionate developer code more than he watches movie at home. It is my observation. :)
I feel for the applicant. I really hope you put in the job description that you were looking for someone with passion. Otherwise, you're kind of a jerk.
@ steve
You said:
It was good to see Scott Hanselman respond to Ayende's follow up completely agreeing with him. As I mentioned before, now that the likes of Stackoverflow Jobs 2.0 are attaching Github directly to your resume, I think this is the way of the future, and I as a hiring manager for a software company can't wait for that to happen.
I also don't buy the "I can't legally do pet projects" argument, but that's another issue entirely. :)
Sometimes I just don't know how to react to these types of assumptions. Some folks live to code.. this I can accept.. but it is NO measure of quality. I've met some folks that spend a lot of time coding that weren't so good, and some that have non programming hobbies that would blow your mind coding wise. I was both a principle architect and a group manager at Oracle for 11 years, Unisys before that, and now work for a smaller company as an architect. Your attitude may find you some good folks.. but don't discount work experience and a mind interested in more than technology.
The biggest issue I've had with developers has not been tech related.. its domain related. Getting most developers interested in the user community that is using their software is the biggest single thing that helps quality and a passion for excellence. When you care about the poor souls that have to use what you write, you go the extra mile.
Gimme 1 of those guys vs. 10 of the work at home types and I'll build great products.
@Ayende: Anybody with the passion, skills, zest and OSS / pet projects you're looking for already have everything at their disposal to do independent consulting or open up their own software shop. Why would they want to work for someone else? Your expectation is unrealistic and I think you really need to give people a more feasible approach to prove themselves. Maybe have them write an algorithm or engine of some sorts as part of the vetting process...? You'll be able to gather a lot from their coding skills and passion if they pull off some awesome piece of code!
BTW, I spent 3 full days working for an employer with nearly the same expectations as you have and it was the worst 3 days in my career. The reason why I'm saying this you might ask? Because what always have been a joy for me e.g. code at work and home (at my own pace) have now become a full-time job except I wouldn't get remuneration for the after-hours effort. Additionally, I was expected to maintain that high level of efficiency regardless of personal circumstances or other priorities. That particular employer (and you) basically expected its employees to shelf their lives until further notice... That is very unhealthy for both the employee and the employer!
I'm not a fan of personal pet projects. I can understand that they are good to expand your knowledge and skills, but too often have I seen employees and co-workers spend their work time on pet projects. Either researching or coding something that should only be done after work. My pet projects tend to be work related. If I have free time at work, either because I'm in-between projects or doing admin support and everything is done I spend my work time on projects to improve my work and make it easier. Very often these projects grow to become actual company projects or something that can be sold to clients. At home I prefer to relax, but if I'm thinking about work or development (coding) it will be about my work pet projects. So if asked to provide code I won't be able to provide any. All my pet projects are now actual projects or specific to my work environment.
It seems that most of the bitchy, snide negative comments are coming from self-admitted wage-slaves, and most of the positive observations arise from those who are ultimately responsible for the hiring of productive programmers. I know in which which basket I'd place my wager as to reliability of results!
I can discern immediately from the lack of maturity of some of the petulant responses as to whom I would definitely NOT employ. I want those with an adult outlook, not those who have barely graduated from the kindergarten school of assumed privilege.
For those who have bitterly complained about this article, why don't you try establishing your own company, engaging those programmers who share your inflated sense of unearned privilege, and see how that pans out? If you make it last more than (say) ten years, then I shall fulsomely apologise. Until then, you remind me of little more than whiny infants.
Some managers will tel you: "You are doing it wrong. Let me give you some tips on how to conduct an interview". Interesting enough, the only question that Larry Page asked his former Marketing Director was: "Tell me something I don't know".
Some software developers will tell you: "40 hours a week is more than enough".
But, people who truly excel at what they do (think of Nikola Tesla, Joseph John Thomson, Max Planck, Paul Dirac, Albert Szent-Gyorgyi, Konstantin Novoselov, Giacconi, Gerd Binnig, etc, etc) will tell you: "The more you put into it, the more you get out of it."
This shows that different people have different passions and motivations.
Some people put more into software development because they are investing in getting more out of work (e.g. money or achievement). Others put more into living, because they want to get more out of life (e.g. health or a good experience). This not only applies to work, but also school, marriage, friendships, kids, community, etc.
For me everything boils down to one simple interview question: "How much you've put into it?".
People getting all antsy at Ayende need to remember this: Job interviews are a two way street folks.
If Ayende doesn't want you to work for him, you probably won't like working for him either.
His job interviewing is to find a good fit for his organization.
Working for Ayende isn't going to be popping popcorn at the movie theatre. Your standard entry level person who has only done the bare minimum to satisfy their educational requirements isn't qualified. Period. It shouldn't be a shock.
If you want a job in the top 5% or 1% in your field, you need to show up as a top 1% candidate. If you've got nothing to prove your worth, how can you expect Ayende to spend his time talking to you?
Another thing to realize in life is that it's ok to be in that bottom 95%. You've got spectacular company. Great folks. Funny. You're gonna write some awesome code in your career if you keep at it. (You'll probably write some shitty code too... hopefully you realize that and keep trending upwards. lol.) Is it a RavenDB? Probably not. But that's ok.
People get so offended to not be in the top 1%. If that's not you, it's best to just accept and move on. It doesn't negate your opportunity to be a person of value. We've all got roles to fill. Be a user of RavenDB instead of a developer of it. Etc. Your passion may be to not be in the 1%... at least in software development. That's cool.
Meanwhile, if it is software development, why aren't you eating and drinking and sleeping it?
1 hour a day. 1 hour. I have three kids. I have a wife. I'm involved with my community (outside development). etc etc etc. 1 hour. 1 hour is really not that much. Especially consider that you can spend 30 minutes of that running or eating lunch or whatever but seriously considering your problem. You come back. A lot can happen in 30 minutes when you're primed to act. 365 hours... 9 weeks of full-time coding. Some good things can happen in 9 weeks. Even 4 weeks!
Cheers folks. m.
Yes! I have been saying exactly this for so many years! There are so many people in our field but so many of them lack passion. Every time I interview interns I am amazed at how few of them do any programming outside of class.
At the University of Waterloo there is a C# course that I guess all CS students need to take in 1st year. So of course C# is listed on their résumé. This makes hiring tricky because ALL OF THEM have it listed on their résumé. How many of them do anything with it until they have to? About 1 in 500 I would estimate.
Even those who put HTML or web development on their résumé don't do anything outside of class assignments. Nothing? Not even a page for your mosque or a school club or your DVD collection, or... no.
I want to (and have) scream, "Why are you in this programme? You have no passion for it!"
Sometimes, if the it's not a programming job and I just need someone smart and willing I'll just ask, "What are you passionate about?" Sometimes I get blank looks, sometimes they think it's a trick and make up something about being passionate about programming, but usually... nothing.
"You must be passionate about something!? Music? Bollywood movies? Running? Anything!?"
So why do I demand this? This is a very competitive business. There are many self-acclaimed programmers and many programmers with top grades and university degrees, but the hires that you want are the ones that can't wait to come to work and will enjoy their jobs for a lifetime.
Someone above asked, "Why don't we ask the same of accountants?" WE CAN! The controller at my previous workplace is very passionate about accounting. She offers to do lunch-and-learns about taxes, volunteers in the community with her skills, is involved with the local CGA association in mentoring, and continually upgrades her skills.
It is NOT fair to demand that staff work more than 40 hours, or whatever is the standard at the company, but if they want to because they love their work, great. REWARD THEM!
I think I'm a little late to the party, but I read the original post and some of the responses and was a little surprised at how angry some people appear to be. It seems as though the good faith original post was perceived by some as segmenting the developer population into two camps: good/develops in spare time and bad/doesn't develop in spare time. That is, I read into some responses by those who evidently don't code in their spare time as either defensive or counter-offensive ("oh yeah, well, I do X instead of code and think you'd be a bad employer!")
But the thing is, reading resumes and interviewing is necessarily a reductive activity. No one doing this has the time to get to know you personally and get to know whether working at the soup kitchen provides you with the respite and social skills you need to be a better programmer or not. Interviewing is about snap judgments. Sometimes you won't get the best candidate, but I would argue that heuristics like the one in the blog post are more about avoiding the worst candidate than finding the best one. And further, it seems to me like a good heuristic, given that it is pretty unlikely that the worst candidates would program in their spare time. It may be that the best candidate also doesn't, due to a busy social life or whatever else, but as a risk/reward proposition, it doesn't matter too much.
As an applicant for a job or contract faced with that question and assuming that I didn't have pet projects (I do), I'd try to think of a way to answer the question in terms of what I did have in lieu of pet projects. I might say something like "Truthfully, I don't have a lot of times to write code on the side because I've found that I struggle in social situations and am doing X, Y, and Z in order to be a better rounded employee" or "Given that I have a wife and children and the attendant demands that accompany that, I tend to pour spare time into my work rather than personal projects since I'm no longer able to put in 60 hour weeks."
Now, it may not work in this particular case, but those types or responses are more likely to get your foot back in the door. But even if they don't, why get worked up? I've certainly had interviews in the past where I didn't think the questions were informative ones, and I made a note of this and moved on. There's no "good enough" or "not good enough" in a mutual value transaction like a job interview -- only "good mutual fit or not." If someone asks you and judges you based on something that you don't find valid, the answer is "not good mutual fit". There are other fish in the sea on both sides.
Passion for a pet project does not translate into passion for your paid work. Pet projects are what you want to do, work is what you are required to do.
Comment preview