Programming Outside of Business Hours
github.com
github.com
The difference is subtle, but the title suggests that it is the one whereas actually it is the other.
Think about it, if you actually did what the title says then you'd be open to legal action almost immediately.
Imagine an employer that would not hire a bookkeeper because they're not busy with bookkeeping in their free time.
I understand what the author is trying to say but the title is not really appropriate, the author has filtered out such applicants before the interview phase, so he does not hire them as a consequence of that.
The law is in my opinion totally just and I'm saying that as a former employer.
I completely agree but I think the argument is that, all things being equal, someone that will do things related to their job in their free time will be better at the job and more likely to get better and better.
I can certainly see why someone would want to use it as a hiring factor but, like you said, once employed, it's none of their business.
As an employer, the bonus is that usually salary is based on /paid/ experience... so even though the two people in the example above have a /huge/ difference in actual time spent programming, as an employer, their starting wage is going to be pretty similar.
So, twice as much experience, for the same money? hell yes I'll choose the hobbyist. and as far as I can tell, there is no law against that. (though, I'm on pretty shaky ground if I require extra work after I hire you. See the semi-annual Electronic Arts lawsuits.)
That was the exact question the OP posted, the title is 'No, I Wouldn't Hire a Programmer That Has No Interest in Programming Outside of Business Hours', and framed like that it is illegal.
The way you frame it it is legal, relevant work experience, whether gathered inside or outside of work time before the employment commences is a good thing to pick up on that passion.
But given two applicants, one that has 20 years of experience during work time and none that he cares to report about during the interview outside of work time and one that has 10, 5 years working in his spare time and 5 years during employment which one would you pick ?
The latter has 'passion' according to the OP, the former is a clockwatcher.
The one that has completed projects on his own. If neither one of them could demonstrate such a thing, the one that seemed more intelligent.
Also, the difference between 10 years and 20 years of experience, I think, is less than the difference between, say, 5 years and 10 years... I think the wage curve would imply most people agree with me here. In the case of someone with 2.5 years of personal experience and 2.5 years of professional experience, vs. 5 years of professional experience, if all else were equal (which is to say, either neither has completed a project they can show me, or they both have, and they seem about as smart, and they are willing to work for the same wage) it's pretty much a toss-up in my mind. If the guy with 5 years work seems more professional, I might go with him, just 'cause I lack professionalism, and it can be really useful sometimes.
But, the thing is, it's usually not equal. the guy with 2.5 years paid experience and 2.5 years hobby experience, in my experience, is likely to work for only slightly more than someone with only 2.5 years of professional experience.
So, given the choice between hiring the person with 5 years paid experience at market rate for a person with 5 years paid experience, and the person with 2.5 years paid experience and 2.5 years hobby experience at the market rate for someone with 2.5 years of experience, I'll easily take the latter. (at least in my experience, pay goes up /fast/ in the early parts of your career.)
Why? I really don't believe that's true, at least in the US. This says nothing about requiring that they program outside of business hours. As long as they aren't putting any sort of demands on their non-work time, I don't see the problem in using someone's passion as a factor in hiring. There's only a problem if they place some demands on non-work time or fire you for it.
> [...] which one would you pick ?
Depends on the job. If constant learning of new tech is integral to the job, I might go for less experience. (Again, this doesn't imply not paying them for their time.)
So if I want to hire MMA fighters for a programming job (or give them bonus points, at least), I can do so. If someone doesn't want to hire me because I'm a former academic or because I stickfight, they also can.
[1] You can also get into trouble if systematic hiring criteria have a "disparate impact" on a protected class. I.e., if you hire based on an intelligence test, and a non-asian minority group or sexual majority group statistically does less well on the test, you can also be sued.
You'd be implicitly selecting against gender, which is illegal.
There are girls active in MMA but it's not like it's 50/50.
But it isn't the non-job relatedness of MMA that's the problem, it's the fact that the criteria harms a politically favored group.
You'd have to make sure that your pre-selection has a perfect representative split over all the minorities that could come after you in order to be able to get away with it if you made it public what your criteria were.
Good luck doing that, personally I believe that such trying to outsmart the system is something that will come back to haunt you.
Just take raganwalds post here, if someone felt they were passed over for an interview it would immediately be actionable, that is, it wouldn't be thrown out of court and so it could cost a pile of money even if in the end it turned out to be without merit. That blog posting, now seen by a few thousand people and cached in any number of places would suddenly be admissible evidence, and it would take a pretty good lawyer to negate the effect of that one silly document.
Ontario is particularly weird in that respect, I've got first hand knowledge of a pretty strange employer/employee lawsuit there that dragged on for years through appeals (in that case for wrongful termination but no less bizarre).
Best to not give cause in a climate like that.
Also, I rarely talk about specific criteria that I am currently using to filter people. This is because some people treat getting interviews as a game, and employ "SEO" to get interviews:
http://weblog.raganwald.com/2008/03/games-people-play.html
The least broken heuristics are the ones nobody knows you're using, IMO.
Where did I go wrong?
I never suggested that my practices are some sort of universal heuristic for every organization to use, nor did I suggest that other means of finding people were incorrect, or that other typs of people would not perform adequately or even better than the people I get to know.
I wouldn't call the post academic at all, but I would say that discussion about lawsuits is academic. FWIW, I try to avoid discrimination because it conflicts with my values, not because of the possibility of legal trouble. I'm a member of a visible minority myself, so I'm keenly interested in avoiding bias even if it is by accident.
And woe to you if you do not hire a female programmer that thinks she's more qualified for the job you posted than the guy you ended up hiring, especially if at first glance they're both equally qualified and the rest of your team is guys.
It's a lot like driving: good drivers are fanatic about it. They are always itching to go for a drive and push their cars. If you wanted to hire a star driver, would you want want to hire someone passionate or someone who learned it on the job and gets by?
If you want your programmers to continue to be educated for the work that they do and for new technologies applicable to that work then you can provide them with courses during work time. If they do such stuff in their spare time it's great but that can never be a discriminating factor during the hiring process in anything but the most unofficial manner.
Anyway, you don't have to believe me, passion is great but you can't mandate it of an employee.
If you are looking for a co-founder that's a different story, but people that are employees do not fall in the same category.
1. The chances of discovering a potential employee are much higher if they are passionate about their field. Passionate people make a lot of noise. The OP acknowledges this.
2. I never said you should always higher passionate people. For example, some passionate people are unlikely to get things finished (they're more likely to be excellent at starting projects).
I agree with you about this being a rubbish (and potentially illegal) HR policy.
Companies in US are not allowed to discriminate based upon things like commute time, family situation at home, age, etc. - none of which factors into how well they can do the job once they are at work and on "company time" - and the argument that what someone does on their personal time falls into this category of judging someone based on factors beyond "Can the applicant perform this job?" is pretty easy to make.
So it's fine to look for passion - but people hiring and doing interviewing should be very cautious about what they say (and especially what they tell applicants) about how they are going to judge your level of passion, unless they want to open themselves up to potential discrimination suits (or so my possibly overly cautious corporate HR department would have us believe).
First there are several jobs which require an ongoing education requirement (outside of work) in order to maintain the correct licensing for their fields. My mom's a nurse, my wife's a lawyer, both have ongoing education requirements. To take your bookkeeper examples, CPA's at least have Professional Education Requirements.
I consider programming outside the office part of a programmer's ongoing education. We may not need to be licensed but we do need to continue to keep up with technologies both in and outside our direct field of work. I'd be hesitant to hire anyone who doesn't keep up with what is going on in the environment around them. In my particular case the vast majority of technologies that I use now in my work I started working on outside of my direct work projects. Thats the nature of our industry.
And there's nothing illegal, in the US at least, about asking about activities outside of work and using that as a basis of hiring.
Just as a cab driver would be expected to have a valid driving license.
That's nothing to do with 'passion' outside of the job though, where a nurse would only be hired (or fired if she/he didn't) practice nursing in their free time, it's everything to do with the company being liable if they employed people that were not in the possession of a valid license to perform their jobs.
But I am allowed to ask questions that do not directly or indirectly adress illegal discrimination, and asking about profession-related activities is usually on-side.
That being said, it is perfectly legal for anyone to file a lawsuit suggesting that perfectly legal questions are being used to indirectly create illegal discriminatory practices. So if I never ask about religion but I only hire from my network which "happens to be" my church or my weekly Richard Dawkins Appreciation Society club...
What little I know about HR suggests that hiring out of a professional network that is agnostic about discriminatory matters is legal. HOWEVER, programming networks are on shaky ground. Not because of religion, but things like Ruby Conferences seem to under-represent certain protected classes of people like women.
Another example: If I put out a call for applicants on my own blog and that's the only source of applicants, am I discriminating against people who speak English competently for professional purposes but only read Hindi or Mandarin programming blogs? In ontario, that could be construed as illegal.
I can't give anyone legal advice, but if your network gives the appearance of discriminating against qualified candidates in protected classes, I suggest that it's good business sense to expand your network. It's a win-win: You'll get qualified people that other employers are ignoring, and your legal costs will go way down.
So... Good point about the title. And even though I am NOT saying that in an interview I refuse to hire someone who does not blog or go to conferences or tweet or whatever, my filtering mechanism could be breaking the law if it accidentally discriminates in a legal sense.
The problems really only start when you get larger though.
If you were to go over roughly 20 employees and you put out calls for applicants. Ontario is pretty bad in this respect actually (I still have an Ontario corporation, I probably ought to shut it down) I remember all the cautioning from our corporate lawyer there regarding interview questions. For instance 'how old are you?' is an illegal question, but 'are you over 18?' is ok.
Under 20 employees and when using non-public ways of reaching potential hires the situation changes a bit, but someone could still have a case if they felt that they should have gotten a job and you refused them for some imaginary reason. Being an employer in a litigious climate is pretty tricky.
Not necessarily, if you account for time wasted on pointless interviews. Some networks/channels are simply better, and a better network causes you to waste less time interviewing fools. My company has been hiring, and I've found that the candidates who contact me through HN are of a higher quality than those we've found via recruiters.
If you recruit from a lower quality pool, you need to spend more time filtering out the chaff. Maybe it's necessary to avoid lawsuits, but it's not necessarily a win-win.
She complained that the interviewers were asking stupid and irrelevant questions, along the lines of "what is the current stock price for company X?"
When she told them she had been away on vacation in France they asked her to describe the French stock market instead. (She: "How am I supposed to know, I was on holiday!")
Programming is apparently not the only field where "interest beyond 9-5" is a job requirement...
Or more precisely: There are plenty of jobs in both programming and finance where 9-5 interest is enough, but in my experience the jobs that are considered "good" tend to ask more than that.
I guess it sort of depends on how you define humble, but I find that most good programmers have at least a touch of arrogance. They must approach some of the most complicated machines developped in all of history and say, "I will make this do my will." They must approach problems that have not been solved before and say, "I can solve this." If you decide to change languages or even just frameworks or a new API, they must think, "I can and will learn this."
I can see a desire for a certain degree of humility, but it must be of a specific kind, not what most people think of as humility. It should be of the "I know there are people better than me, but I will find them and learn from them. I will always strive to be the best, while acknowledging there will be others better."
There are many big bank interview guides, all of which tell you "look up the DOW/NASDAQ/S&P open/close before the interview" (not to mention share price of the company you are interviewing at). At one point I interviewed at a big bank, and many questions I got were stolen right out of this book: http://www.amazon.com/Heard-Street-Quantitative-Questions-In...
Programming outside business hours is great way to learn new skills and try out things that will never come as part of your day job. For example, my day job would never include any mobile app development. So I do it as a side project. In fact lot of people have developed lot of cool projects this way (outside work).
However saying this is the only way to tell a programmer is good is taking it too far. Like Jacquesm mentions people might have other interesting things to do or on the other hand people can suck equally bad in their 'other' projects too :)
So have an upvote, we agree.
That person would in many cases be the better choice, too -- especially if you want your product to actually work, and not be a maintenance nightmare. People like hate getting paged at 2am due to production bugs, so they tend to have stronger motivation to write simpler, cleaner code than the passionate tinkerers tend to write and become emotionally attached to.
Really, why should I care? This all sounds more like "I want people who are like me" than "I want good programmers as employees".
Working 8 hours a day and being good at it doesn't qualify as passionate? What do you want? 10? 16? 22 hours a day?
You want people that are passionate and want to learn? Give them chances to do so while on the job. Let them use Ruby on Rails, or Erlang on the next project. Don't expect them to do it at home for free so you them reap the rewards.
If you don't want to hire me, fine, heck you can even not hiring me because I'm bald and you don't like bald people, but this "Has to program at home/Has to contribute to Open Source" crap is nothing more than that, crap!
I'd rather hire someone who doesn't spend all of their spare time programming because they're going to be more rested and fresh when it comes to their work programming. Spending time with family, outdoor activities, cultural events, hell even reading and not being in front of a computer are all vital to the brain.
As far as I'm concerned, sillycone valley can have the rockstars. It will keep them out of my hair so that I can get things done.
(I'm mostly joking... but there really is a pretty big cultural divide here between people for whom this is a job and people for whom this is their identity.)
Discuss.
Simply put, question is whether the candidate is passionate about programming and software systems (and if so, is he competent enough ;)) or not. For few it is their identity, and for many, it is just a job. Even those who loathe(or do not care a damn about) programming/software/computers/technology could be given fancy designations and be employed in IT, thanks to that thriving segment in the industry (yeah, the one that provides 'cost-effective means to get anything done based on a checklist').
Real fun (read 'misery') is when there is a misfit around; i.e. like when there's a guy totally passionate about programming/computers with a bunch of 'I-won't-even-touch-computer-outside-work' types who abhor programming. /* yeah, the latter ones are for real. :) */
There are a lot of reasons to disagree with my post, but this isn't one of them. Your argument contains something called a straw man, namely the implication that I advocate hiring people who do nothing but program 24/7.
Yes, there is this thing called life. I have two kids. I Scuba dive, rock climb, bike, and do a bunch of other things that are not programming. I also enjoy programming. Not instead of life, but as part of a rich experience.
What are the chances that the author uses programming as a method of escape? The reason I say this -- he discusses his social anxiety at the bottom. Makes me think instead of interacting with new and random people, he would rather be in his own thoughts (either because it is less painful or there simply isn't an interest in new people).
Many people, even several that I work with, do not program much outside of the job. I would virtually always rather be out at an event or by the pool or doing just about -anything- other than be on my computer after my work day is finished. Important stuff comes through my phone and I'll address it if necessary, but I am not dying to get right back on the computer when I get home.
I should note however, that my job is transitioning out of developer and into a more outwardly facing role. I've been developing for several years and I've just grown tired of it. I get to solve new problems now.
It's a very good and refreshing supposition, thanks!
I hope you don't take this the wrong way, but I feel like there is very much an industry standard personality-wise (that I think you are more similar to). I don't think I am anything like the industry standard - I am headstrong with an ego rivaled by few. I don't think I am better or worse suited for what we do, but I am noting the difference.
My ultimate point is that I gain a lot of insight when other people, who I know are different personality wise, give me their thoughts on how they would/do run a business.
A lot of people in my family run successful businesses and I have access to who/what personalities they hire, but the line of work my family is in is not technology-heavy at all. I am inclined to think my dad is more likely to hire people that don't put a large amount of their personal time into their work, simply because he runs a very customer oriented business. Being able to relate to and engage people is very important. Diversified interests help a lot in being able to do this.
So like I said, I approach it differently (maybe it's learned from my parents and relatives), but I appreciate you responding to me very much. It helps me to figure out what makes you tick.
My mother was a systems programmer in the 1960s, and speaking of discrimination and so forth, she is both Black and Female. There were probably more Unicorns in captivity than Black, female programmers in that decade. She later became a very successful real estate broker, so I was also exposed to entrepreneurship at an early age.
Sometimes however, a programmer who isn't deeply interested in technology can be a valuable addition to the team. If you have a lot of code that needs to be transitioned, complicated logs that need imported, regular "do this, then" work or other labor that a deeply motivated programmer would find tedious, a different style of programmer may find this work comfortable and easy.
Around the 3 year mark, something changed. I suddenly wasn't doing enough programming at work and started playing around at home.
Now recently (the 5 year mark is quickly approaching) I have started to hunger for it even more, and have started watching less TV and playing fewer video games in favor of doing more fun coding at home and researching new ideas/languages/etc.
I think if the developer has years of experience and doesn't code at home, he doesn't have the fever needed to become better on his own time.
While I don't think that should immediately disqualify someone, I think it should be part of the hiring decision.
at first sight it could be quite more simple as
¬(SKILLZ ⇒ MY_PEEPS ∨ SOFTWARE ⇒ SKILLZ)
(contrapposition, de morgan)
¬(¬MY_PEEPS ⇒ ¬SKILLZ) ∧ ¬(¬SKILLZ ⇒ ¬SOFTWARE) # original formula
¬(SKILLZ ⇒ MY_PEEPS ∨ SOFTWARE ⇒ SKILLZ) # De Morgan
¬(¬SKILLZ ∨ MY_PEEPS ∨ ¬SOFTWARE ∨ SKILLZ) # (a⇒b) ↔ (¬a∨b)
¬(¬SKILLZ ∨ SKILLZ ∨ MY_PEEPS ∨ ¬SOFTWARE) # re-arranging
¬(TRUE ∨ MY_PEEPS ∨ ¬SOFTWARE) # (¬a∨a) ↔ TRUE
FALSE # ¬TRUE ↔ FALSEUpdate: I think you are being a bit literal. The two SKILLZ aren't the same proposition. The first is the proposition that a particular person has some characteristics I value. the second is the proposition that a particular team has some characteristics I value. So if you want to get really serious, you might call the first one SKILLZ-sub-candidate and the second SKILLS-sub-team.
Thinking this through was valuable, thank you and have an upmod.
and I found it happily ironic that he preceded the statement with "i think we can all agree"
Next, how about I write my words and you write yours, and furthermore I write mine for my reasons, and you write yours for your reasons?
Because if what happened was that you understood what I was saying and you agreed with it, then I suggest to you that it worked JUST FINE, geek points be damned.
Programming isn't my weekend hobby anymore. Why should it be? I get to do it every day at work and get paid for it now. That was the point of making it my career. It was something I already enjoyed doing and was good at that I could also make a living by doing. Am I automatically less passionate about it because I'm doing it for profit now? Of course not. I use my free time to do all of the other things that I enjoy doing. It's ok to have more than one passion. It won't harm your programming ability for you to program during the day and paint or write music in your spare time. On the contrary, you are more likely to show up for work each day refreshed and enthused about what you are doing precisely because you are doing other satisfying things after work.
While it is true that no test can avoid false negatives, it is also true that if the quantity measured by your test is uncorrelated with the phenomenon of interest then your test is neither sensitive nor specific and its PPV and NPV will be poor no matter where you set your decision threshold on the ROC curve. If you advocate such a test publicly, you should expect to be criticized for doing so.
"I now understand that he was using a strategy for hiring people, not a metric for measuring me. His strategy for hiring people worked for his purposes. Why take that personally?"
You could decide which programmer to hire based on skin color and write a blog advocating that "strategy" as well. (You'd get sued for doing so, but that's tangential to the point here.) If you did that, it would be unreasonable to expect the "it's just my strategy; it isn't about you, so don't take it personally" argument to be taken seriously. Whether you are aware of it or not, when you advocate a hiring practice publicly you are making an implicit claim that it has some validity and the community is right to spew vitriol in your direction if your hiring criteria are not well constrained within the realm of demonstrable merit and cross over into areas that are none of your damn business as an employer.
Merit: While it is true that no test can avoid false negatives, it is also true that if the quantity measured by your test is uncorrelated with the phenomenon of interest then your test is neither sensitive nor specific and its PPV and NPV will be poor no matter where you set your decision threshold on the ROC curve.
Absolutely, and all strategies can be evaluated as strategies, on this basis.
Missing the mark: "If you advocate X you should expect to be criticized." How about, if I advocate X, my argument should be criticized? Criticizing me for my words is the ultimate example of making something personal. I can deal with it, but I suggest you ask yourself whether making it about me is also a way of making it about you, getting emotionally invested in it in a way that is not good for you. JM2C, I am not laden down with emotional intelligence, so I can hardly advise you on how to be happy.
Merit: "when you advocate a hiring practice publicly you are making an implicit claim that it has some validity" We agree.
Missing the mark: The implied claim that when I advocate that a strategy has some validity as a strategy, I am also advocating it is a metric. Strategies are not metrics.
Ultimate straw-man example: One strategy for hiring people on a small scale is to hire people you've worked with before in some capacity and have observed performing well. The ultimate reference check!
I suggest that if you don't have a huge requirement for scaling, this can be very effective as a strategy. However, it is trivially easy to demonstrate that this is a terrible metric for evaluating someone's competence.
And no, that isn't personal in any way, shape, or form.
UPDATE: This is a really fruitful line of discussion, so I'm upmodding you. One thing that occurred to me as an example of a strategy that is not a metric is a University Degree. It's a certain kind of evidence of the ability to follow through on something for a few years, it is allegedly evidence that you have been exposed to basic computer science, and so on. I think it's reasonable to value a degree when hiring as part of a larger strategy. However, I don't think it's reasonable to use a degree as a metric for measuring programmers.
The key point that I'm making is that, "I won't hire a programmer who doesn't pass my unsubstantiated litmus test based on a stereotype about programmers," is a qualitatively different statement than, "All else being equal, if I have two job applicants with similar qualifications and demonstrated merit to choose from and one of these applicants programs as a hobby in addition to performing their professional duties and the other does not, I am inclined to choose the one who programs outside of work." The latter is a defensible strategy. The former is a cargo cult hiring practice, should be criticized, and will inevitably offend because it carries with it an implicit assertion of truth for an unproven stereotype. The phrasing of the original post more closely resembles the cargo cult hiring practice statement.
Good! One of the reasons I write is to provoke criticism. Often, I have an idea and it seems bulletproof. But when committed to paper--an archaic way to put it--its flaws reveal themselves. Sometimes the act of writing it down forces me to be specific and in doing to I recognize fatal flaws. Sometimes I need to share it and other people point out its flaws.
The OP is one of my poorest posts, ever. It was originally a reddit comment as part of an "Ask Reddit." The asker was faced with the question of whether to hire someone who had no interest in programming outside of his job, and in that context my reply was that I would be surprised if I ever even interviewed such a person.
Which in itself highlights the discrepancy between strategies (be they cargo cult or not) and metrics. Programming on the side is a terrible metric. It is easy to measure, but so are Lines of Code. The things we want to measure are knowledge, aptitude for learning, skill, and so forth. Programming on the side is a programmer's strategy for achieving something that we want. But it isn't what we want.
I was thinking the same thing about a degree. Terrible metric, but I wouldn't object if it was one of the heuristics someone uses when selecting applicants for a position. Here in Ontario job postings almost always say "Degree or equivalent experience" because people have successfully sued for discrimination when companies have ignored obviously qualified applicants who either didn't have a degree or had more than enough experience to compensate.
Getting back to your words, although the link-bait title says "I won't hire a programmer who doesn't X," the article said that the real issue was that I was unlikely to interview them because of my strategy for meeting people.
Obviously it isn't that hard and fast. If I was looking for people and mentioned it on my blog, someone could easily get in touch with me because they read blogs on company time. Presto, I would be interviewing someone who reads blogs but doesn't do so after hours.
Likewise, if someone in my network said, "You really ought to meet Joe P. NoineToFive, he's incredibly organized and does as much work in forty-five hours as you do in ninety," I would interview Joe and if he lived up to the claim, I would have no interest in what Joe does with the remaining 123 hours a week.
But the fact that I have to explain these things identifies that the post was hastily written and incoherent!
"All else being equal, if I have two job applicants with similar qualifications and demonstrated merit to choose from and one of these applicants programs as a hobby in addition to performing their professional duties and the other does not, I am inclined to choose the one who programs outside of work."
Actually, I personally wouldn't say that, because once someone landed in an interview with me, I would have the luxury of examining each person's abilities directly. If all else really was equal, then I'm curious: Is the programmer who doesn't program as a hobby smarter? Is that why he is just as effective as the hobbyist? Or is it that programming as a hobby is a useful strategy for choosing people to interview, but once they're in the do I should ignore it?