9 ms·
> As brain-dead as I was after eight hours at my project, [..] Is giving out an 8+ hour programming project as part of the application process really considere
by Tunabrain 11y ago
> As brain-dead as I was after eight hours at my project, [..]
Is giving out an 8+ hour programming project as part of the application process really considered good hiring practice? If you apply to five jobs, you're expected to spend an entire unpaid work week writing code that doesn't benefit anyone? If a company receives 20 applicants, their ideal candidate selection wastes a collective work month?
I don't really understand this ideal. What's the point of maintaining an online portfolio and a github profile full of code if companies prefer to waste your time writing a pointless uploader?
- binaryblitz 11y agoIf the project is designed to take that long, it's ridiculous. The project we give at my company should take maybe an hour if you know the framework we use.
- kasey_junk 11y ago> Is giving out an 8+ hour programming project as part of the application process really considered good hiring practice? I'd say 8 hours is too long. I always strive for a 4 hours, but I've seen that 4 hours chop 16 hours off of the candidates time and more than 32 off of the companies. > What's the point of maintaining an online portfolio and a github profile full of code The vast, vast, vast majority of candidates do not have an online profile full of code. Either because their code is IP restricted or they do not have time outside of work to maintain that. I view using online profiles as a decided anti-pattern in hiring on the company side as it restricts your candidate pool to a tiny subset of the community that I've seen no evidence provides any more value in outcome and its much more prejudicial to the candidate population than any coding assignment can ever be.
- jghn 11y agoWe ask candidates to pick a work sample of something they already have, if they have one they can provide. If they don't we give them a relatively painless coding test instead. It's not perfect, it'd be great if everyone could have a work sample but as you say that's just not the world we live in.
- pdxandi 11y agoI appreciate this approach. I'd love to be more active with outside-of-work projects, but my days are usually already full. And I can't provide a lot of code samples because the majority of my work is IP.
- ryandrake 11y agoThis is true for most good people at big companies. Your day is already 60 hours long, and your company forbids (via IP ownership) coding outside of work. I fear that most of the interview approaches pointed out in this thread select against people who are already successful at well-regarded companies. Don't you want people like this in your interview funnel?
- jghn 11y agoYou'd be surprised. There are an increasing number of folks who get to at least occasionally work on open source projects as part of their day job, and many other less obvious ways of getting a prior sample. But if they don't have one we don't hold it against them for the reasons you cite
- jghn 11y agoExactly. Furthermore my experience has been that requiring prior work samples unfairly biases towards younger developers. Our system is far from perfect but it allows us to see prior work where possible by provide a fallback when it isn't
- neverminder 11y agoI was one of this vast majority once, so I know how it feels. Eventually though however slowly, but I've gathered enough code samples on my github account, samples that are actually rather unique and at the same time useful and getting starred. It takes time, polishing, sure, but as a result quite a few companies stopped asking me doing coding tasks, so I'd say in the end it's worth it.
- collyw 11y agoI built something specifically for that purpose, but people still seem to want me to do pointless coding tests.
- logfromblammo 11y agoExactly. My after-work profile consists mainly of my non-driving kids getting to their non-school activities on time, the custom-built furniture in my living room, the lawn calibrated to give the HOA conniptions without actually breaking any covenants, the brake fluid level in my 2001 car that is definitely leaking it very slowly, my almost-completed low fantasy novel that I started for NaNoWriMo in 2012, DIY pajamas that my kids wear, a well-socialized terrapin, and yes, even all my online gamer achievements. The reasons I don't like long coding assessment projects and the reasons I don't already have an example code profile are the same. Reinventing all the same wheels in different programming languages just isn't as fun for me as it once was, and I don't have as much time to dick around with any specific side project, especially ones that don't have any immediate utility to me or my family. Does anyone ever ask about how I spec'd, designed, built, installed, and maintained my DIY entertainment center? No. Same methodology as building software, you know, except the problems are solved with different tools from a different toolbox. If you're truly really looking for someone "T-shaped", you have to realize that the tittle on that T might include things entirely outside the realm of software or computer hardware, like how to hang a bear bag when camping, or how to fly a small single-engine aircraft, or how to train cats to use regular toilets, or how to run for political office, or what to do when you get a flat tire, or how to hold someone else's baby, or how to hit a gong target from 300m, or how to make a longbow for under $10 at Home Depot, or how to report a pothole so the city will fix it, or how to repair a pothole when the city won't do it, or how to play "Flight of the Bumblebee" while slowly rotating your B-flat concert tuba through 360 degrees. All those miscellaneous, general-purpose skills do, in fact, make someone more effective at quite a lot of software-related tasks, sometimes in unexpected ways. But they are never going to appear on a resume, or crop up in the answers to any of the stock interview questions. When you include a criterion that specifically selects for people whose after-work hobbies also involve software, you are implicitly selecting against those who do other things, because there is much, much more to life than writing code. There was only a very narrow slice of time when I actually wrote code for fun in my free time, from the ages of 15-25. It basically stopped after I got laid off from my first software job, and interviewing for software jobs became my next full time job. That's when I realized that I needed to do other things in my life, because it didn't matter how much I loved software if it didn't love me back. So if you think need a portfolio to get a job, you might want to build one up that includes more than just code samples. The software industry does not love you back. It will move on to someone younger when it gets bored of you.
- maxaf 11y agoWould you feel better about providing work samples if you got paid fairly for each one?
- pc86 11y agoNot everyone can or wants to take on the onus of basically being a part-time contractor just to switch jobs.
- kasey_junk 11y agoThis almost always comes up in work sample discussions. There is a fairly obvious reason those of us who advocate for them don't do that. It would rule out a large contingent of the candidate pool who have signed agreements not to work for money without prior approval or notification to their current employers. It also opens the hiring company to potential liability with regards to IP laws if you are hiring in a similar industry.
- danielvinson 11y agoMaybe this is a bit rant-y, but "Paid Fairly" is incredibly relative. Every time I've been asked about doing some sort of paid coding assignment in my free time, I've asked to be paid at my hourly consulting rate, which many people do regularly, which is $60/hr. This is really not that much for a consulting developer. Every time this has come up, the company would not pay that rate, and offered something more like $20/hr. It is just insane to me that if you are interviewing me for a position which makes $105,000 a year and cannot offer even close to equivalent compensation for the interview.
- JoeAltmaier 11y agoI have the same issue. It costs me hundreds of dollars to even agree to an interview, at my hourly rate. To further ask me to do homework is to bilk me for thousands. I cannot afford to apply for most jobs, as long as I have a consulting backlog. Which I almost always do.
- andrewflnr 11y ago
- macNchz 11y agoThe time involved in these things really can add up... I was recently asked to do a take home challenge that took a couple of hours to hack together, followed by several hours of nailing down edge cases due to the nature of the task. Then the company scheduled a phone call during which I thought we'd discuss the design decisions I'd made while working on the task. Instead, the interviewer had never seen the code I sent in, didn't even know which challenge I'd done and had me screenshare-coding brainteaser puzzles for over an hour on the phone. Talk about wasting my time.
- IanCal 11y agoOften these things are scored and ranked separately. Your phone interviewer will likely have scored you on various things, the score from your coding challenge will be taken as well, then everyone will sit down and discuss how people did and rule people in/out.
- hyperpape 11y agoThat can be true, but it's still a waste.
- busterarm 11y agoThe only purpose of a code challenge or whiteboard session is to get the candidate and the interviewer talking about code. This is the only signal that you really want out of these exercises. To do both is wasteful, but if I did either and that _didn't result in a conversation about code_, I wouldn't continue with the interview process. Their processes are broken.
- IanCal 11y ago> Their processes are broken. That depends heavily on what they're actually screening for. I've received an embarrassing number of utterly atrocious code challenges from candidates in the past. If you can't code something like a roman numeral generator/reader (when allowed to do so at home, in whatever language you want, spending as long as you want on it) then continuing the interview process at this point is a huge waste of time. In those processes, the purpose was to weed out people that simply could not code at all. Or even cheat, since there are solutions all over the internet for any language you want. A later stage was to do some programming with us, and we'd talk through issues and see how they dealt with problems/etc.
- PedroCandeias 11y agoI'm helping hire developers here at HelloFresh and I thought of this a lot. A surprising amount of people don't maintain a very impressive public profile (me included, tbh). These people need the opportunity to showcase their skills and the only way to do so is by spending some time coding a nice solution. We try to minimize the candidate's overhead by providing general guidance in the challenges we issue (like "please demonstrate the SOLID principles"). Then we do a code review on the solution, in which we also spend some time. We point out issues, suggest possible improvements and give props on stuff we consider well done. At the end, if the candidate doesn't progress they at least learned something useful. We hope that this way our recruitment process might always be worth the time.
- RodericDay 11y agoWhy not just ask them? You're on the phone with them, you can ask them if they'd prefer a little challenge to showcase their skills, or whether they'd like to provide a portfolio example instead. Maybe a bright self-taught college student switching tracks into software would pick #1, a parent switching jobs would pick #2.
- numbsafari 11y agoThis sounds reasonable. "We ask that you provide: 1) an implementation of this sample project (estimated 8 hours time). 2) a work sample that meets the following criteria (same criteria we are looking for in the sample project)"
- PedroCandeias 11y agoThat's actually a great suggestion and I'm ashamed to admit it never occurred to me. I'll definitely share it internally. Thanks!
- VLM 11y agoIts like asking why frat pledges are paddled when the muscular workout the paddlers get is inferior to the workout they'd get at the gym. Its just hazing. Same mentality as giving them wedgies or shoving them in a locker. classic movie quote: "Thank You Sir May I have Another?"
- emodendroket 11y agoI, for one, am tired of processes that don't respect my time.
- JustSomeNobody 11y agoWould you rather Some Co. just hire you and try you out for a few months simply based on your resume?
- dasboth 11y agoOf course not, but it is (or at least should be) a two-way process. If the interviewer wants you to invest hours of your time this should be respected; either by paying for it, or at least by being sensitive to the fact that people generally apply to jobs while already employed somewhere. So don't give them a 24-hour deadline on a programming task that takes 4-5 hours, things like that.
- emodendroket 11y agoThere's got to be some middle ground between that and wasting all your time off/free time.
- logfromblammo 11y agoThat isn't the only other alternative. The way a company signals their respect for my time is by either compensating me for the time I spent on them instead of literally anything else, or by demonstrating that they are spending an equivalent amount of time on me rather than anything else. If I am doing a project that takes me 8 hours, that company should either be writing me a check (for somewhere between $100 and $500, probably) or planning the mother of all individual sales pitches to convince me to not just work there, but also to go the entire distance through their interview process. No company has ever done this for me. Every last one of them has expected the candidates to spend as much of their own time (and even money) as necessary. Several (all of them in Denver, possibly by coincidence) have even reneged on paying travel expenses. Tyler Tech in Lakewood, CO, tried to get out of paying for my hotel room, declined to spring for a rental car, and remains to this day the most hostile interview I have ever suffered through.
- larrik 11y agoI interpreted that as "after 8 hours of work at my regular job", not "8 hours of working on the project". Otherwise, why is he thinking about it on the train, and talking about how fun working on it that night was? I could be wrong, though.
- cuillevel3 11y agoI've been looking into changing jobs and yes: it is a huge time sink. Traveling to interviews, being available for phone calls, preparing and researching... Especially the smaller companies are struggling to set up a good hiring process. I tried to discuss salary ranges before going into interviews to filter out some companies, but it didn't help. One recruiter put me on a one hour train ride, turns out there was some miscommunication about the job description.. However I really liked the Thoughtworks challenges and couldn't resist coding for eight hours. It's better than spending one hour on-site for a badly designed 'challenge'.
- deleted 11y ago[deleted]
- patio11 11y ago(Speaking in personal capacity here.) There exists a continuum of hiring practices which place more or less burden upon candidates. I would encourage HNers with input into their company hiring practices to choose less burdensome approaches over more burdensome approaches, particularly when less burdensome approaches also yield additional signal about ability. A thing you can expect to be asked in 2016: you can expect to be asked to have an on-site interview in a city you do not live in. (How many people will be asked to do this for the SFBA or NYC? Literally jumbo jets full, this week.) For some candidates, this will involve more than 16 hours on planes, a (minimally) overnight stay in a business hotel, and six solid hours of interviews in the course of an 8~10 hour day. This requires minimally 2~3 days of these candidates' lives. Most companies keep "conversion rate between onsites and job offers" very close to their vest. To put it mildly: it is not guaranteed that if you're flown out you will get an offer. If you are hypothetically designing your interview process, and you replace the onsite with even an excessively long project, that's a win. The project can be written at the candidate's own pace and schedules conveniently around their other obligations. They do not have to arrange child care, take off time from work, or make tradeoffs like "Do I do the project or do I attend a friend's wedding?" If you fly across an ocean and start bombing an interview, that's a terrible result for everyone. If you happen to be doing a project and discover "Oh, wait a minute, I've really miscalibrated here: this is far above my level of expertise with $FOO and honestly if this is the character of the work then I'm not sure I want to do it", then you have an easy option: simply close the window and, maybe, send a two-sentence email to the person who you were talking to. Smart use of projects as a filtering mechanism can minimize costs to candidates and the company of administering high-cost testing (e.g. onsites, long projects, etc) to candidates who will ultimately not be successful at receiving offers and/or defer the high-cost assessments until the anticipated chance of receiving an offer is "very high."
- aprdm 11y agoPerfect, I've done +-4 onsite interviews and only got accepted in one of them. I get really nervous in on site interviews being judged by usually two people at the same time while I try to solve something. One company in Amsterdam, just last week, I went through a four step process, the last one being the onsite interview. I did really well in the first two, but then in third I went with a wrong approach to the problem and couldn't get my mind in the right position again. The person judging me just kept putting pressure. I got really nervous and couldn't do any more interviews that day... my mind really got completely blocked for the rest of the day. That happens and, really, the company spent so much time of me (and me on them) for everything to be decided on that? feels wrong..
- stutsmansoft 11y agoI personally would love this style of job screening. I'm not at all worried about 8 "unpaid" hours.
- lordCarbonFiber 11y agoYou're free to your opinion, but, you probably should be. Any company that deems your time worthless for the interview probably feels the same way about your time during the work week. Maybe 60-80 hour death marches are your thing, but, that's not a perk I am (and I suspect many others are) looking for.
- nialo 11y agoI'd rather spend 8 hours programming than burn a full day on 5 whiteboard interviews the way Google does. More generally, I think the target should be to make the work sample test take a similar amount of time to the in person interview you'd have to do instead.
- kafkaesq 11y agoThe point is, they never wrote back. That's just shabby and disrespectful, regardless of how many other candidates they're talking to, or how they evaluated this particular candidate.
- rco8786 11y agoI read this as "8 hours at my day job". I.E., he worked a normal day and then went home to complete the interview challenge
- JonoBB 11y agoFor promising candidates, we ask that they complete a pre-specified project in their own time. The project takes most candidates 2-3 hours to complete. The difference is that we do this as paid work. Whatever their going rate is, we'll match it. A surprisingly high number of candidates interview quite well and look promising on paper, but fail horribly in a "real world" coding test.
- dasboth 11y agoThat sounds entirely reasonable; by paying, you're respecting the time the candidates have to put aside and chances are it will motivate people to do better.
- nialo 11y ago(I'd send this in email, but I can't find one in your profile) What company are you talking about hiring for? I'm looking for work as a programmer, and I'd prefer to apply to places with a hiring process like this. You can find some code I've written (a server clone for www.stockfighter.io/) at https://github.com/bcoburn3/forex https://github.com/bcoburn3/forex My email is bcoburn3@gmail.com if you'd prefer to respond that way
- philbarr 11y agoI got laid off recently and was applying for all the jobs I could find. So I had to do a bunch of these programming projects. I don't mind them per-se, but it takes so long to do each one and you have to be ultra-clean with each one. I don't think companies take into account that you might not have that much free time. It's particularly stressful when you don't get through. On pair programming tasks, I had a pair programming session with a guy, he gave me an empty project and a poorly specified brief, verbally, then gave me 15 minutes to crank something out. It was pathetic. I didn't get the job and the feedback was, "he didn't know some of the keyboard shortcuts I'd expect." In hindsight, I'm glad I didn't get that one but at the time things were getting desperate. The best process was the one where I finally got a job. We talked on the phone for an hour and a half and by the end you could just tell we had that, "developer bond". His approach was the best I'd seen. He just talked through some of the problems he had, I proposed solutions and we talked through pros and cons. He treated me as an equal from the start. After that we had the face-to-face HR questions (how do you resolve conflict, etc.) which they have to ask because it's a big company, and another one with another manager but by then it was pretty much a done deal. And I think that's the way to do a decent hiring process. Don't behave like an authoritative dick, and use phone interviews to screen candidates. Programming projects don't work because it's going to take you forever to review them, and pair-programming doesn't work because there's not enough time, and it's kind of horrible for the candidate.
- busterarm 11y agoWholehearted agreement here. The only purpose of these challenges is to start a conversation about code. Why not just bypass the bullshit challenges and just _have a conversation about code_? My best job experiences are exactly as you describe. The worst have been companies that sought me out (I didn't apply) and then wasted my time during the phone screen (having background conversations with other people in the room, asking me to repeat answers to questions because they weren't listening)...I'm looking at you, Uber.
- ironchef 11y ago"Why not just bypass the bullshit challenges and just _have a conversation about code_?" Because talking and doing can be different? _Do_ they actually write test cases? Do they write documentation? Do they make output machine parseable? etc. I want to see what work product looks like even if the work product is simple. (which is also why the homework I assign is nothing ridiculous like 8 hours nor do I timebox it)
- chias 11y agoI'm pretty sure this is in reference to the his project that he was wrapping up at his old job. He is saying that even though he was working long hours at his current job, he was so enticed by this interview challenge that, even after a long and difficult day thinking about a (programming) problem, he couldn't keep it off of his mind on his train ride home.
- deleted 11y ago[deleted]
- geebee 11y agoIn many ways, I see these projects as a stand-in for the kind of comprehensive professional exams taken in many other fields. As developers, we often take a 5+ hour whiteboard interview on some of the fundamentals of CS, but presented as challenging problems. We may also have to do a take-home "project" which can be viewed as a "practical" component of a comprehensive. I don't object to this per se. What I dislike about it (as I've mentioned on HN before) is that we take these exams without the protocols that evolved over centuries in exam-heavy institutions (universities, professions) to safeguard against abuse ensure the process is fair and decent to the people taking the exams. The exam must not be capricious, it must be relevant and consistent across candidates, it must be created and assessed by competent members of the profession, there must be an associated study path, the content of the exam should't be a huge surprise to the candidate, candidates are provided with feedback should they fail. And, perhaps most importantly, the process of taking and passing the exam provides the candidate with a certain stature, a lasting credential that is widely respected in the profession. The candidate doesn't have to re-take this exam over and over every time he or she interviews (in many ways, that is the point of the exam). In many ways, I feel that programmers experience the downsides of this sort of professional entrance exam but without the positives. I'm glad to see this discussed on HN, because I really do think that software "interviewing" as entrance-exam is one of the things that eventually drives people out of the field (or causes them never enter it in the first place). It's not a good thing for our field. I'm not saying it's an easy question with an easy answer, just that our current approach is failing.
- grandalf 11y ago> 8+ hour programming project It's better than a 5 minute brain teaser question. Any job worth having is worth spending 8 hours applying for. Anyone who views this as "free work" probably won't be a good hire for other reasons.
- raverbashing 11y agoProblem is the ones that are not worth having that ask for the 8h
- eternalban 11y ago> I don't really understand this ideal. It seems pretty simple to me, if you consider the entire protocol as what it is: a negotiation, with one side asserting their dominant position. Please excuse me hn for beating this horse to death, but for God's sake, Programmers of the World, Organize.
- tostitos1979 11y agoI for one have "walked out" of any interview that has asked me to do a take home assignment. Usually, the request for the take-home comes early enough. This shows me that the engineering team is too busy with work to even give time for a 30 minute shared text editor code interview. If we all refuse to do it, this crap will stop.
- JoeAltmaier 11y agoI balked at a take-home. They agreed it was a nuisance, instead hired me for a week to work with their team as a contractor! At my rack rate. That was a great experience, didn't hit me in the pocketbook, and convinced the team we could work productively together.
- tostitos1979 11y agoThis is a good idea. Doesn't work for people on visas but I can imagine working this out somehow. Basically, make the potential employer realize that your time isn't free.
- llcoolv 11y agoI don't really agree - I remembered a take home assignment which combined enterprise-like object-oriented design (data model, strategy) with algorithmic thinking (several flavors of graph traversal). The job also turned out to be top-notch before the company was bought by a certain trading firm which has 2/5 (and falling) on glassdoor. 9 months later it was pure shite. it was the best team i ever worked in though - still keep in touch with some of the guys :)
- jlarocco 11y agoIMO the upper limit should be a couple hours, but I'm not sure that should be communicated to the people interviewing because it can stress people out. > What's the point of maintaining an online portfolio and a github profile full of code if companies prefer to waste your time writing a pointless uploader? There are a few problems with using GitHub or BitBucket profiles. First, not everybody has them, or they don't update them frequently, or whatever. Second, it's pretty easy to fake a GitHub profile by copy/pasting code from other places, using other people's code, or pushing broken stuff that doesn't really work. And third, a lot of people's GitHub profiles are cluttered up with a bunch of forked repos that they haven't even pushed code to and don't really contribute to at all.
- epicureanideal 11y agoThere are enough employers that you can avoid ever doing these coding challenges. Any time I've been looking for work, maybe 2 out of 10 companies would ask for these challenges, and I would skip them while interviewing at the other 8. I always ended up with several good offers before ever wasting my time on the coding challenges.
- odonnellryan 11y agoNo, it isn't but enough devs put up with it.