Hacker News new | ask | show | jobs
by ruswick 4339 days ago
The problem is that this method disproportionately hurts people who don't have the time or energy to effectively hold two jobs (one full-time position at their day job and one as an independent developer or open-source contributor by night) because of family, friends, or some other facet of life beyond their laptop.

I think it's totally unreasonable to expect that everyone spend every minute of their lives coding or to have some kind of deep, personal connection to the code they write.

This thinking is ridiculous, and doesn't really appear in any other industry. Do you care whether your accountant's idea of an enjoyable Friday night is sitting at home making more spreadsheets? Would you demand that your eye doctor go home and craft her own lenses in her garage for fun? Competency doesn't require fanaticism, and no employer should expect that their employees devote their entire lives to their occupation.

If I want to code for 8 or 10 hours a day, go home and enjoy myself in the little free time I do have, then wake up and do it again, I don't see why that makes me an inferior employee.

This just seems like more misguided, unjustified cultural absolutism that is so prevalent in the industry.

EDIT: For those saying that the article doesn't necessitate spending massive time outside of work writing code, the author clearly conflates the two. "i have always been convinced that those who love code do not restrict their coding activities to their work. they take home that love and continue to create for fun as a hobby." Personally, I think passion could be a valuable heuristic in hiring, but the author seemed to imply that passion is only measured by your willingness to work outside of your day job. At the very least, that seems to be his expectation of good candidates, and his hiring process clearly disadvantages people who can't or won't code 24/7.

24 comments

> The problem is that this method disproportionately hurts people who don't have the time or energy to effectively hold two jobs (one full-time position at their day job and one as an independent developer or open-source contributor by night)

No, not at all.

You're assuming that "will you please tell me about the best project that you’ve ever created?" has the words "Outside your previous jobs" - which it clearly doesn't.

If you've made or contributed to something great at a previous job - talk about that!

As soon as I read that question I paused and thought about how I would answer it - of the 10 possibles I came up with, about 5 are "personal projects" and about 5 are "from previous paid jobs" - the thing about the paid jobs ones is that I get to talk about all the awesome people I got to work with, all the stuff they taught me, all the conflicts I had with that Project manager (!!), all the trade-offs we had to make so the project actually shipped, some of me reservations about so much technical debt being created, etc. etc.

There is absolutely nothing wrong with answering this question about something you were involved in at a previous job. The point is to find people that are passionate.

Not to mention that sometimes paid jobs lead to getting to work on large projects that have millions of dollars of input or output, or on hardware scales you never could as an individual. I have to imagine if I worked on some software for the Mars rover, it would trump everything not because it was the best software I ever wrote per se, or it was the greatest environment, but my software is on f-ing Mars!

I'm incredibly proud of some independent projects, but they're definitely informed by my days working on million-dollar projects, some of which were pretty awesome.

And if your job has been maintenance programming?
So what? If you made it to the desk interview, you had something worth talking about.

And what if you were the guy that found a bug in a Mars rover? Sure, maintenance programming, but you still did something worth talking about.

And even maintenance programmers with a bit of initiative can do something interesting. "Well, I had to dynamically change the name of 20,000 functions in a project so I wrote a tool to do it automatically and went home early while the tool did the work". That's the quality the interviewer is looking for.

Most of the maintenance programming I have done has involved fixing bugs and adding pretty minor features. Not the sort of thing you would be proud to talk about at an interview. Not saying it is any easier a job, but its not like I created anything great.
I agree with you that if someone is spending forty hours a week writing code at work, it makes no sense to expect him to write more code in his spare time. That's the bad part of the article.

The good part of the article stands, though. In a good programmer, there will be a spark, and he has the right idea about the interview question.

A perfectly valid way to respond to it would be to refer to something you did at work. "Oh boy, that's difficult because the code I've had to deal with has been legacy stuff that... well let me see, there was this big ball of mud where it took us a week to track down an intermittent bug, the debugger was useless... but after that, I figured out a way to put in logging code so we could at least see what was going on and we'd have a better chance next time..."

You're not looking for spare time programming or some particular answer. You're looking for a non-rote answer. You're looking for the spark.

> "The problem is that this method disproportionately hurts people who don't have the time or energy to effectively hold two jobs"

No it doesn't.

I'm a guy who has the "two jobs" by your description. More precisely, it's a job and a hobby. However, my "best/coolest project/work" has always been something I have done for an employer. I can't imagine coming close to that "level" of work by just playing around at home.

If you can't answer the question in the post with a project that you've done at work, and you don't program as a hobby, you simply do not qualify for what OP is looking for.

The code I write between 9 and 5 on weekdays is also way higher quality than the stuff I write the rest of the time.
Opposite for me. The stuff I write on my own time... I take my time on that.

The 9-6 stuff is rushed and designed by others.

> This thinking is ridiculous, and doesn't really appear in any other industry. Do you care whether your accountant's idea of an enjoyable Friday night is sitting at home making more spreadsheets? Would you demand that your eye doctor go home and craft her own lenses in her garage for fun?

Actually, it does appear in other industries. Many of my friends who are designers do various sorts of art in their free-time, whether that's drawing or even the same type of photoshop stuff they do at work. One of the best CNC machinists that I know has come into the shop on weekends to experiment with making ornate snowflake ornaments, folding knives, and motorcycle attachments on the mills... His job consists of machining parts for cable laying machines, but he enjoys the challenge of figuring out how to manufacture complex parts so much that he does it in his free time.

I don't know any accountants or optometrists very well, but I wouldn't be surprised if the passionate ones spent time outside of work learning about the latest advancements in their respective fields.

> Competency doesn't require fanaticism, and no employer should expect that their employees devote their entire lives to their occupation.

True, _competency_ doesn't require fanaticism, but if you want to _excel_ at something (and don't want to end up hating your life in the process) you had better really enjoy it because you're going to have to put in several thousand hours of learning. Spending all that time exploring your particular field of study won't be a problem if it's something you love, and you're more likely to continue exploring it and keeping yourself up-to-date if you're interested in it. Thus, passion makes a pretty good predictor for success among high-achieving employees.

> True, _competency_ doesn't require fanaticism, but if you want to _excel_ at something

This is along the lines of what I was thinking.

If I'm looking for someone who is really passionate about what they do, they're probably going to be associated with it outside of their nine to five. This could be reading books, magazines, talking to people, participating in discussion boards, or trying to figure out problems.

That doesn't mean every employee is like that, or that you have to be like that to be a worthwhile employee, but it's not crazy to think that someone in almost every field will be actively involved in something related to their profession in their day to day, outside of work.

Even with accountants, you might not be doing someones books all the time, but you might have an active interest in financial news, forums, current scams, common mistakes, loopholes you could use, etc. etc. (I don't know anything about accounting; don't judge me :))

> I don't know any accountants or optometrists very well, but I wouldn't be surprised if the passionate ones spent time outside of work learning about the latest advancements in their respective fields.

My grandmother was a corporate tax specialist for AT&T, she certainly seemed to enjoy doing her personal income taxes (and those of some of my uncles and aunts). This was way before Turbotax, Taxcut, and the variety of programs that have made it less unpleasant.

I don't think excitement or passion or pride require fanaticism either. When I ask my friend who paves road about a project he's particularly proud of, he'll have an answer and it's not because he's paving roads in his spare time.

What is different about some other professions is that there are ways to develop that passion during apprenticeships or entry-level jobs while learning from those with greater experience. Mastery is far easier to acquire with a teacher on hand who can give timely, guided feedback and correction.

> The problem is that this method disproportionately hurts people who don't have the time or energy to effectively hold two jobs (one full-time position at their day job and one as an independent developer or open-source contributor by night)

“Oh! A few months ago I created a basic budget tool based on graph theory—so I can create 'branches' like in git, but for my personal budget, and then forecast how certain changes affect my budget overall. It really helped my wife and I visualize how certain decisions play into our plans over the next couple of years. Would you like to see how I implemented the recursive SQL lookups in ActiveRecord?”

I hacked out a basic MVP for the above in 4 hours one Sunday afternoon. I don't hack on side projects every Sunday, or even frequently: a lot of weekends I want to explore the city, sleep in, and work on projects around the house. But I love programming, and I love how software can affect our every day lives, and sometimes little itches like the above come up and I scratch them. And this one story would be more than enough to pass the author's test with flying colors, and is /nowhere near/ holding down two jobs.

Without sarcasm, yes I would like to see how you branched - it's not an easy solution - and to be honest the hard part of this (and I have a github project for budgeting too) is getting data into a form where you can easily do a projection

What was the household budget in originally - a RDBMS? Mint or quicken ?

Not meaning to be aggressive - just wanting more context - and yes, please let me see code :-)

I would also love to check this out :)
And can do merge? This could be great for a sync engine for sql! A way to do branch-merge
Many commenters on this thread point out that people don't have time to code, or have other interests, and question what other profession expects people to give up their free time to continue work.

This is not unrealistic in other professions as well, maybe just not as easily recognizable. I have friends who are Ad execs and love advertising as an art, they'll often discuss ideas they've had, things they've been thinking, etc. etc. which is outside the scope of their work. It may be the client they'd like to bring in and the ideas they have to improve that client's business, etc. etc. What about doctors who vicariously keep up on all the latest knowledge in their field and are actively collaborating with other doctors on discoveries and research (my sister does this as a veteranarian, and is also randomly helping people in the park on a Saturday morning who have questions about their pets, as well as doing a spot on the local news about caring for your pets). This is unpaid/hobby work, but it isn't as concrete as what we do, and therefore, people don't consider it.

We aren't the only group that is passionate about what we do, and we aren't the only one's who work on our craft outside of work hours.

I think a better way to take what the author is saying is that he is looking for people who look at software development as a craft, and people who are so passionate about it that they are constantly engaged in their craft even outside of work hours. They love what they do so much that they just can't stop.

At the same time, I think it is important for employers to recognize when and if they need somebody who meets this criteria.

Your ad exec is about the equivalent of me discussing new libraries / languages / frameworks out of work hours. I never heard anyone ask for that in an interview. I have seen a fair amount of ads asking to see my side projects / github.

I am reluctantly creating a side project at the moment, as I want to get into freelancing, and all my previous work is in house. Even without kids I find it difficult to find enough hours to put into it (trying to use a free hour here and there leads to almost zero productivity, I need a minimum of three at a time).

>Competency doesn't require fanaticism, and no employer should expect that their employees devote their entire lives to their occupation.

Very true. The only problem with that is that when judging between two job candidates, the one who is devoting their entire lives to their occupations is going to be a more desirable hire.

>At the very least, that seems to be his expectation of good candidates, and his hiring process clearly disadvantages people who can't or won't code 24/7.

Just as the field of competitive Olympians disadvantages people who can't or won't train 24/7

I'm a bit skeptical of the idea that a person who devotes their entire life to their occupation is a more desirable employee than the one with a balanced life. Maybe if you were doing something completely rote, but who devotes their life to that anyways? To be a productive developer, you should also know how to:

Schedule and prioritize your work to align with business goals Interact with non-technical users and domain experts and understand their problems and techniques Work productively with and integrate your work with the work from related fields, like DBAs, designers, artists, etc Work with a team of developers productively, including making your ideas heard without being intolerant or offensive

That's stuff you don't tend to get from doing side projects. Maybe if you turned a side project into a real business, or were a senior contributor on a large, long-lived open-source project, or something like that.

Come to think of it, I was more sympathetic to the article's idea at first, but writing this makes me reconsider whether just having passion for something that you have built is enough to base hiring decisions on.

>Maybe if you turned a side project into a real business, or were a senior contributor on a large, long-lived open-source project, or something like that.

Well that is exactly the point.

The idea of some amazing "code monkey" detached from real life requirements, constraints and development timelines is a fiction and does not represent reality. The best developers have a deep understanding of the tools and the applications and it is that devotion that I am referencing.

There are in fact people that think in terms of building new things through code ALL THE TIME - and then implement them. Those people are going to have an advantage in the hiring process.

Also luckily there are not that many people out there who sustainably only do coding every hour of the day. Eventually real life catches up to you and you can't do that any longer.

Also, there are only so many gold medalists every four years. In the IT industry, there's no theoretical upper bound, so it's not nearly as dire, you don't really "run out of slots" as fast.

> you don't really "run out of slots" as fast.

If their company only hires once a year or so, that's still running out of slots quickly. The author works for an individual company, not "the IT industry".

> the one who is devoting their entire lives to their occupations is going to be a more desirable hire

Not true. The more productive and effective candidate is the more desirable hire.

Theoretically, those are the same thing.
They are not. Enthusiasm != Competence.
Yes, my article might be a little misleading, as I was really looking for the excitement more than anything, work-related projects fully included. The most important objective of my question was to put the candidate in a full comfort zone. No surprises, we talk about your stuff, the stuff you prefered. And we go deep into it (we would discuss it for 30 minutes). I would be respectful and genuinely interested, I could ask any technical questions I wanted because it was their grounds. We would discuss architecture, design patterns, technical choices, etc. (so it wasn't just one question in the interview... more like one question to lead to a situation where i could get the most info out of).
Accountants don't create something out of nothing. It's an inherently supporting activity.

Also, the question doesn't imply in any way that it has to be an off-work project. Its only point is to see if a person actually cared for any code they wrote in the past or if they treated coding just as means to an end.

The question in the article was 'will you please tell me about the best project that you’ve ever create', which excludes most work projects, since work projects are typically not single-developers projects.
It's an interview, meaning that's real person talking to a real person. The question clearly invites to a free dialogue, it's not right/wroooong, quiz-test question. So the person answering can be slightly off topic and it can be still interesting to the interviewer, who is, as far as I can't tell, not a stubborn HR robot.
It doesn't mean you can't have created a sub-project of a larger project, if you want to get picky with semantics which doesn't seem to be the nature of the interview.
True, maybe it should be rephrased to something more like '... best programming work you've ever done'.
I would read that as having kids.
You can still talk about some project from the past. If you never had any hobbyist pet-project (during studying? while learning first language(s)? before getting a job?), then it's quite likely that you're not the person the author is looking for, no matter if you have or don't have time for a hobby now.
This thinking is ridiculous, and doesn't really appear in any other industry. Do you care whether your accountant's idea of an enjoyable Friday night is sitting at home making more spreadsheets? Would you demand that your eye doctor go home and craft her own lenses in her garage for fun?

The comparisons you've made are with non-creative fields. For those I know that work in other creative industries (graphic design, photography, music, theatre, copywriting), they almost always spend a good deal of their free time exploring their passion. If you love doing something, you probably won't be satisfied if the only time you get to do it is under the strict direction of another.

In any case, if there are enough candidates to select from, and you have no better way of determining which are the better candidates, why not choose the ones that code for fun in their free time over the ones that don't? Those candidates almost certainly have a passion for programming while the others it will be harder to tell. Plus those candidates will be constantly learning new skills that I as the employer will benefit from.

With hiring I feel like it always comes down to two potential paths to pursue:

1) Hire all good candidates as well as a fairly large percentage of bad candidates.

2) Reject all bad candidates, and hire a fraction of the good candidates.

Which route a company takes generally depends on what the company needs. In this case it sounds like his company needed to minimize bad candidate hires more than find all good candidates.

So yes, what you said is correct. This approach will filter out a large number of great candidates without extra time, but assuming the company is finding enough candidates to hire, this isn't a problem they need to address.

I believe this is the same reason why many startups can get away with trial work periods and other interview tactics that large companies cannot. The number of candidates willing to do this is significantly smaller, but it is seemingly large enough for the startup using the tactic.

I suspect that until the industry finds a significantly better way to filter good/bad candidates that this will not change. So if you are looking for a startup idea - this is a great area to get into =D

One other tricky scenario: if someone is really invested in a particular field of programming, like crypto, they may be in a situation where any work they do outside of their employment is at risk of having their employers claim it as a work product or as a violation of a non-compete contract.

I've met several very brilliant programmers in my day that liked to work long, super-focused days on the problems they were presented with at work and then would go home and do anything but look at a computer. I'd be hesitant to suggest they had any lack of love for their chosen profession.

There's another group this method hurts: people whose personalities are closer to Mr. Spock than to McCoy. Same goes for the method another commenter suggested about "tell me about your best bug..." (Though perhaps it doesn't hurt too much, because such people usually develop hacks to lessen their natural disadvantage across the board.) Speaking strictly for myself, I don't really feel pride in my code. My identity is completely separated from things I do. When I finish something, there's a sense of accomplishment, but it passes very quickly and I move on to the next thing. If that something was "hard", on reflection it feels easy, because I already did it. And it's not like I've never known excitement and such, or never feel it now. I thought programming was the coolest shit too when I was 14 and I felt the excitement of making a website the color I wanted, and using a for loop to eliminate tons of HTML. I just don't get excited over stuff I feel is "easy", which is everything I've ever done and everything that looks close enough to those things. If you want to make my eyes light up a bit, ask about things I want to do but haven't gotten around to yet. But it still has the highlighted problem of selecting for people who are most enthusiastic about whatever they're talking about, not for people who can best do the job.

All I want from a programming job is to get paid money to spend a lot of time with a computer writing software, and spending time with other humans strictly as needed to advance the computer project. I don't want to sit around a campfire (or water cooler) and trade stories, and I don't have a memory for things like "best bug" and other events people tell stories about. Unless at that event's particular moment I think "Maybe this bug (or whatever) would be good to use as an example for a future interview." and I make a reminder to add it to a file of such life events I review before interviews. It's one of a bunch of little things I have to do that some others don't, which sucks, but considering the whole messed up wasteland that is programmer interviews where pretty much everyone has to do a bunch of BS prep work unrelated to the actual job just to stand a chance, I don't think it's worth complaining much about. Hence the throwaway -- time to move on to other things.

Disregarding the conflation, I think the key point here is passion.

I want to work with people who have passion for what they do. You don't have to keep doing it when you get home at the end of the day, but if all you're doing this for is a paycheck and you aren't really passionate about what you're doing, I find it impacts the quality of the output and the speed with which you absorb new information.

FWIW, my eye doctor happens to be a fantastic wildlife and nature photographer.

I think the article author has a good point - in some cases. For a programmer working in a strict waterfall project, who's "just coding his allocated items of a per-determined feature list", passion might not be important (and may even be contra-indicated, they'll likely leave when they work it out). But if you need creativity from your coders, some level of passion in _something_ is important. I suspect if an interview candidate lighted up telling the story of their quadcopter or bamboo bicycle or burningman project or anything where they can demonstrate solving problems within a set of constraints - even if it didn't involve a single line of code - it would have been looked upon more favorably than somebody who can't demonstrate passion about _anything_.

I agree about the passion indicator. I over interviewed and was told to prepare a 15 presentation on anything I cared about. It did not have to be technical, but I needed to be prepared for questions.

The interview ended up being one of my best interview experiences though I turned down the job.

I suppose the work the candidate is most keen to discuss doesn't have to be recent which makes it fair.

All good programmers I know have at some point spent significant amount of their free time programming on their own, that's why they've become good programmers. They might have kids now or too much work, but I would be amazed to meet a good programmer that has only ever programmed at work.

Despite that the fact that I have kids and a job that does take its time, I do program as a hobby. It mostly kicks in when things are slow at work or when work is less about coding and more about something else as if I had a weekly or monthly coding quota that I need to fill in. But I do have the urge to write programs independent of my work -- if I'm lucky I can abuse my work to fulfill that urge.

The stated goal is to eliminate false positives ("hire the wrong guy and you will be stuck with that person forever.") That necessitates you will have an increased number of false negatives - see http://en.wikipedia.org/wiki/Type_I_and_type_II_errors. The consequences of missing a great hire are less than the consequences of hiring a loser.

My own problem with the question is that I wouldn't know what to answer - I have too many things to choose from. Many are too far in the past to remember lots of details about.

I don't think you need to work on side projects to be a great programmer. It's just that there are very few great programmers who don't have a variety of side-projects. It's a natural side-effect of the desire and curiosity that leads people to become great. They don't see side-projects as some sort of drain on their free time.

I don't think it's a bad thing if you don't aspire to "greatness" though. There's plenty of jobs where a decent, reliable programmer is perfectly fine. 49% of us are below average, after all.

The first thing that popped into my mind when I read the question was a data-processing script I wrote at work in three days that saved hundreds and hundreds of person-hours of manual work, a task that had stumped a couple of better programmers than myself.

If Nicolas Bize would accept that sort of thing, I think it's a good test. If not, yeah, it's problematic.

Edit: I've just asked him about it in comments under the original post.

Right. The point here is actually reducing the pool of candidates to those enthusiastic enough, and with enough time, to do projects in a way that fits the template this interviewer is looking for. I don't doubt they had success hiring people this way, rather the problem is in the false negatives as you point out.
I think one of the points of the test is to see how intrinsically motivated the applicants are about the job. You can throw as much money and perks at someone as you want, but it probably wont work as well as intrinsic motivation.
Sorry this is just excuse
Yet nobody seems to care about reducing the initial hiring pool to some statistic and only hiring college graduates who think HTML5 is a programming language.