31 ms·
A Method I’ve Used to Eliminate Bad Tech Hires
- deleted 10y ago[deleted]
- darrenshrwd 10y agoThanks for this, makes total sense and I'll remember it. Can I ask what you use for your blog, I like the look and feel and the share bar at the bottom and would like to re-use it if I can.
- daxfohl 10y agoNeat, but it still measures only technical aptitude. Anyone can look impressive playing with a fun project over a weekend. But how do they do at the grind when the important tasks may be much more mundane? In my experience this is what separates the good hires from the bad.
- raoulw 10y agoTrials are how we do things at Automattic. Not only do we get a feel for the candidate, but the candidate gets a feel for us too.
- Kluny 10y agoI've actually got a technical interview from Automattic sitting in my inbox right now, that I'm planning to work on tonight! Any tips? Is it possible/encouraged to write back and ask questions during the test?
- dep_b 10y agoThe thing I liked most about their hiring process that it seemed to be done by permanently overworked people that didn't bother to give me any kind of answer after I worked all that hours and pushed a working solution.
- fowlerpower 10y agoI think this is a great system that reduces false positives, significantly. It helps candidates shine and it helps employers get good engineers. I would not rely solely on this as no process is perfect. However, I do weigh this part of the process the highest for my hiring.
- happytrails 10y agoWe do a similar thing at our office. Phone interview to make sure basics are known and then a "homework" assignment. This weeds out a lot of folks who can't cut it. Then the interview itself we can get the social aspect out of the way. Sometimes a candidate is a good coder but a horrible communicator or human :|
- stove 10y agoDoes anyone have experience with this style of interview from the candidate side of the equation? I want to move to this style of hiring; however, I fear that because it's against the grain I may miss out on good candidates. Is that unfounded?
- peller 10y agoWell, if somebody legit wants to work for you, I suspect they'll be as curious about working with your team as you are curious about working with them. It's really a win-win situation for both sides.
- cldellow 10y agoWe do a variant of this, although we don't currently pay. Perhaps we should. IMO, it skews towards people who are diamonds in the rough (junior, or non-traditional background) or experienced people who are burnt out on traditional whiteboard interviews. It hurts the size of our funnel, but I think the results we get are pretty good.
- ubernostrum 10y agoI do from both sides, albeit without being paid to do the exercise. Take-home exercises are great. When I was looking for a job last year, I liked that it was something simple and low-pressure (compared to typical coding-interview practice) which approximated how programmers actually work. It was OK to look something up in the documentation if I didn't have an API memorized off the top of my head. It was OK to change my mind partway through and realize I could do it more cleanly another way. It was OK to pause for fifteen minutes and get something to drink. Now that I'm on the other side of it, I like that it's a more natural thing. I like that I'm not having to loom over someone or try to fill awkward silence while they live-code. I like that I can read their solution before I go into the interview and have some prepared comments or questions to get discussion going. I like that it emphasizes the collaborative nature of programming in a team. Good candidates are beginning to revolt against traditional coding interviews. Take-home exercises are one of the alternatives that people actually seem to like on both sides of the interviewing equation. So you're not going to miss out on good people by switching your coding interview to a take-home; if anything, you're more likely to start attracting them.
- hslee16 10y agoHaving candidates work on small projects simulates the communication required to complete actual/mock work projects. This will definitely foster better rapport between people involved. Personally, I'd rather be given a weekend to work on a smaller project rather than be tested on algorithms that are available by common libraries of most programming languages.
- illicium 10y agoOr I can have the candidate code with me for an hour during the interview, and save $100. They get to ask me questions about the problem directly, and I can see where they are struggling, and how they debug (trial and error? Google/SO?)
- Kluny 10y agoIt sounds like you would get a lot less out of this method than you would from the one described in the article.
- ahh 10y agoThis system is interesting but has a crucial flaw: I legally can't take part. I have a job now, which claims ownership over any tech-related IP I create. There are processes for getting exceptions, but a) you won't get them for actual job-related things b) I'm not asking Google for an exception so I can interview somewhere else. This is true for nearly anyone with a standard SV job. So if you're willing to restrict your pool to the currently unemployed, this can work, but I think you'd rather not do that.
- umanwizard 10y agoThe IP stuff is a red herring. Anti-moonlighting agreements are more likely to bite you here.
- mattnewton 10y agoPlaying devil's advocate here: how will this come back to bite you if you do it on your own time and equipment? How would the current employer know to care? Not saying you should require your candidates to break the law. Also, though IANAL, California does have laws that give employees the right to their own IP on their own time/equipment when it doesn't use work IP https://news.ycombinator.com/item?id=2208056 https://news.ycombinator.com/item?id=2208056)
- lisper 10y agoYeah, this. A little discretion goes a long way.
- RandomOpinion 10y ago>This system is interesting but has a crucial flaw: I legally can't take part. I have a job now, which claims ownership over any tech-related IP I create. By that interpretation, you can never legally take part in a whiteboard coding session during an interview either since the code you whiteboarded also belongs to your current employer. There is such a thing as being too literal.
- kasey_junk 10y ago
- lacampbell 10y agoI wish more companies would give example problems to solve in your own time. I did one for a fairly large Australian company, and they rejected it. By the time they got round to letting me know (very long turn around time) I had already found other employment. But still, their reasons for rejecting my solution - the output was not formatted to their liking, and they didn't seem to know what an anonymous function was - was hugely beneficial to me. I would not have been a good fit at all.
- redwards510 10y agoI don't mind homework, but companies need to start specifying their salary range up front. I've been having a lot of time wasted lately by getting through Tech Interview #1 or Homework #1, only to find out their max salary is laughable for San Francisco. "You should just find that out upfront" I hear you saying. Well that is not always possible. Recruiters either don't know the range, or lie about not knowing, or you have to submit a big packet of info (cover letter, history, resume, homework) before you can even talk to a human about salary.
- ryandrake 10y agoThis is true, and one of the worst inefficiencies you encounter as a candidate (and probably as an employer, I don't know): There's so much song and dance that has to go on before you get to the meat of things: Compensation. Companies could easily solve this by posting clear salary ranges, but most just don't. Another thing that companies could do better is think really hard about "required" and "desired" skills, and be truthful. Lots of companies list things as required which they're probably willing to bend on for the right candidate. All this does is scare off potential candidates (odd when you're complaining about that mythical shortage of engineers). On the other hand, recent events have encouraged me to not be afraid to apply for jobs that I'm unqualified for :) so maybe it's not such a big deal.
- peteretep 10y ago> There's so much song and dance that has to go on > before you get to the meat of things This can be an advantage of using an external recruiter, because they sure as shit know what their potential cut of the revenue will be.
- ryuker16 10y agoBeing a freelancer in all areas of tech, I've offered this to every employer and 100% refused or ignored it. Closet thing I've been offered ironically was rather tough sys administration tasks for no pay for a few gigs (5 hours of work) or asked to solve an obscure ntp issue on a Linux server they couldn't figure out. For programming jobs? Never.
- Jgrubb 10y agoI was actually hoping for a post on how to cull bad hires after they'd already happened. Any advice there? Asking for a friend...
- GuiA 10y agoSet up a proper culture of mentoring and training in your org to turn people who are a little too green or inexperienced into effective team members. Not as catchy as "fire fast", but infinitely more sustainable.
- ryandrake 10y agoMy guess would be that most "bad hires" are either insufficiently skilled or insufficient motivated. For the former, you could provide training if you at least see potential. The latter shouldn't be too difficult to figure out.
- ohyoutravel 10y agoIs there a list of people who hire/give interviews based on take home problems?
- pauljaworski 10y agoThis is literally the only way I've gotten job offers. I'm a very competent programmer, but when I'm asked to solve some silly puzzle with someone staring over my shoulder, I freeze under pressure and can not think at all. Luckily not everyone thinks solving leetcode problems is a good way to hire.
- um304 10y agoExactly my case. My startup is ending and I'm looking for work. Wonder if there's a way to look up companies that hire by giving assignments.
- Vekz 10y agoYour next startup could be a job board that specializes in this. I'd subscribe
- dimino 10y agoThis article is written by (and marketing for) someone who created that job board.
- zzzcpan 10y agoBe persuasive, ask for an assignment. Everything is negotiable.
- Rapzid 10y agoIf the company is large enough there may be interview process reviews on glass door.
- usloth_wandows 10y agoIf you can't code under pressure, you aren't a very competent programmer. Real world projects come with high pressure scenarios for software engineers. Code monkeys may be able to get away with low pressure, minimally impactful projects.
- 10y ago
- donretag 10y agoI very much like the paid aspect to this approach. Not that I need the extra money, I am already financially compensated enough by my current employment, but it reduces the chances for the interviewing company to flake out after such a programming assignment. By offering some form of compensation, they are investing in the candidate and will probably not ignore the candidate after this stage of the interview. My assumptions at least.
- daxfohl 10y agoExcellent insight. I just finished a weekend project for a company (and really the onus was more on my wife who had to take the kids by herself all weekend), and all I got back was "nope".
- jbrozena22 10y agoQuestion to all - would you consider paying for access to a platform that organizes the interview process Amir described? It sounds useful to me but would like to hear other opinions.
- ronilan 10y agoAny employer should be required, by law, to pay candidates interviewed, an hourly wage equal to that of an employee in same position. It will be good for candidates, good for employers and good for the economy.
- omribahumi 10y agoDo you mean pay them for the interview time? People will start interviewing for a living.
- a13n 10y agoI find this pretty reasonable if you're interviewing with a handful of companies but I remember doing 20+ interviews in 2-3 weeks in university and would simply not have time for that.
- countingteeth 10y agoI'm all for pounding the pavement if your network doesn't line you up, but 20+ in 2-3 weeks suggests a very different assembly-line approach. I'm having difficulty imagining how it would be logistically possible for me to line up 20-30 interviews in 2-3 weeks where I had predetermined that they were all places I wanted to work and could make my case. I would hope for a batting average and negotiating leverage where if I got in the door at a lot fewer places I would find something that worked. Then again, everyone is different.
- Gustomaximus 10y agoPayment option is really good points. With take home problems, there is risk their brilliant buddy helps them out, and teaches them about the solution to help them talk about it. For this I feel its best to do any tests onsite.
- jon-wood 10y agoIs this really a thing, or are you just optimising for a problem that could potentially happen? Maybe I'm just being naive, but I'd like to think if someone did that I'd quite quickly realise either at interview or on hiring them that they're not actually capable of doing the job by themselves.
- Gustomaximus 10y ago> I'd quite quickly realise either at interview or on hiring them that they're not actually capable of doing the job by themselves Not sure. The whole idea of the test is to get around people that talk well vs do well. And assuming the friend told them about how/why they did something the interviewee can talk about this solution as if they did it. How would you know? See I'm assuming the 'friend' adds value to the solution to make it amazing, and the person who is interviewing still has average knowledge so its not like they are completely winging it. > are you just optimising for a problem that could potentially happen? Absolutely. You should optimise for problems that could happen if they have reasonable likelihood and will become significant issues if they do happen. Not going to rule out all issues. Thought this seems a likely risk over a reasonable number of candidates.
- eranation 10y agoThis is great, except the over the weekend part. I have a wife and kids, I rather be with them than solve (even paid) challenges. I rather take half a day off, solve it right there in the environment and team that will potential work with you. I would encourage candidates to also reach out with questions during the challenge and see how they communicate ideas and react to suggestions. Other than that, completely agree.
- kohanz 10y agoCompletely agree. I love the idea, except the weekend part. Not only do I not want to do your coding puzzles over the weekend, it will also make me think that weekend work is a thing at your company.
- greglindahl 10y agoAre you imaging an employer too dumb to allow you to suggest an alternative format that fits your schedule? If they say "no", you've learned enough to not want to work for them.
- pitaj 10y agoIt says that you should give them the option. If you don't want to do that, just finish it the day of the interview.
- jon-wood 10y agoI'll second that. When interviewing for jobs recently the sheer volume of tasks being handed out to prove I can program was a real problem - I work five days a week, my wife works Saturdays and I look after our son. That leaves an hour here or there available in the evenings (when I'll do a bad job because its 10:30pm), or taking a chunk of time out of the only real time we get together as a family. If you apply for say 4 jobs and they all want 2 hour work samples you've just taken on an entire extra work day to apply for jobs. I can't even just take a day off work and batch them because of the way applying for jobs works. Honestly, I don't know the right answer. From the other side of the table I like this approach because it lets me assess how someone thinks about solving problems and writing code, but its just reinforcing a culture where only young people without any real responsibilities outside of work can get into the industry.
- paxy 10y agoThis is one of those "aha" solutions that people keep mentioning, but completely ignore how it would work in a non-ideal world. • What 2 hour project can you assign that would let the candidate go into enough depth for you to judge their code, design decisions, architecture skills? • If you give them more time (e.g. a weekend like in the article), is it still financially viable to the company, especially at $100/hr?? • How do you filter out the candidates that aren't serious about the job but just want to make a quick buck? • What about all the candidates out there who you can't legally pay (e.g. workers on a visa)? This works when you are a small company that needs to pick 2 out of 6 total applicants, but otherwise completely unfeasible.
- ubernostrum 10y agoWhat 2 hour project can you assign that would let the candidate go into enough depth for you to judge their code, design decisions, architecture skills? Where I work, our take-home is a simplified version of a task that's common enough (in our field) that we built tooling for it. It's generic, it tests understanding of a few things, and we've gone through three iterations of our own tooling so we know there are multiple viable approaches. As for judging decisions, that's why the interview that goes with it is a collaborative code review. You treat it the same as if you were reviewing code a co-worker had written; ask questions, discuss tradeoffs, etc. etc.
- mahyarm 10y agoBeing on visa makes this payment thing harder unfortunately. Maybe the charity idea might work for those people.
- philipkglass 10y agoI read the money/difficulty calibration as "pick a problem that you think would take someone about 2 hours to implement and offer $200 for completion." Not "offer $100 per hour and then cough up $1600 when the following Monday the candidate swears that they spent two full days on it."
- mjevans 10y ago
- draw_down 10y agoRemember: if you do something that completely eliminates bad hires, it probably eliminated some good ones too. Of course, lots of people wave this away by saying bad hires are more expensive than bad rejections. OK- but how much more expensive? And does this practice make sense in light of that figure? Not to say you shouldn't do this but it's very important to remember a lot of these kind of things when it comes to recruiting involve tradeoffs and you rarely get an unalloyed good.
- sargun 10y agoHow do you avoid people outsourcing their projects?
- teach 10y agoI'm a high school teacher, so my experience isn't directly relevant but I've certainly encountered my fair share of cheating. The student that wrote the code can always explain not only how it works but why they made certain decisions along the way. The student clueless enough to copy someone else's code usually can't even explain its function, much less explain tradeoffs.
- erikb 10y agoIf they need to present it on Monday to the team you can basically exclude that. If they do that they can't understand it well enough to really present it.
- zenincognito 10y agoI am afraid this is just another marketing for a paid product. There are a lot of assumptions being stated as a fact. > Since the candidate is getting paid, the candidate treats it as a legit consulting session and therefore gives their best effort in solving the problem. If a candidate has applied for a job then it is in his interest to treat that application as his career depends on it. Best effort is wagered not on the fact that he is paid but on the premise that his life will become better by getting this job. > It gives the candidate a real life sense of how you interact with people on the team. Where is this coming from ? This is just another assumption the author is making. > The biggest issue I have seen with tech hires is that they can become very defensive over their solution. I will purposely challenge their solution to see how they react. You are asking us to be non-judgemental in the paragraphs above and then being judgemental on the candidate becoming defensive. > Pay them immediately on Monday Why ?
- minitech 10y ago> > It gives the candidate a real life sense of how you interact with people on the team. > Where is this coming from ? This is just another assumption the author is making. It’s coming from the fact that you’re giving someone a project and discussing the result with them. > > The biggest issue I have seen with tech hires is that they can become very defensive over their solution. I will purposely challenge their solution to see how they react. > You are asking us to be non-judgemental in the paragraphs above and then being judgemental on the candidate becoming defensive. That’s not being “judgemental”. It’s just using regular judgement – evaluating a person’s willingness to listen to criticism. The earlier points were about hearing rationale for choices without previous criticism. > > Pay them immediately on Monday > Why ? It shows that you’re well-organized and keep your word. I think most of your arguments were coloured by the mention of a paid product.
- zachd1_618 10y agoThis. 100% this. As many others are saying, I find that this is the most comfortable way for me as an interviewee to demonstrate that I do in fact know what I'm talking about. Put me in front of a room full of people and a whiteboard and throw something at me, and I'll freeze. Freezing in that situation and being a bad engineer are wholly separate things. Anecdotally, when I get one of these problems, I spent 20 minutes reading the prompt, looking at resources and making an outline of my code. Then I step away for the afternoon and don't think about it. Let the subconscious internalize the problem for a while and when I come back, I've got a much better mindset to approach it. Solving new problems on the spot is just a skill I don't have. I prefer to think that this is what makes you valuable as an employee and engineer, solving a problem by the end of the day. Not while under scrutiny. Personally, my resume and experience don't get me far interviewing by the big companies, but on the occasions that I get take home code assignments, I tend to get pleasantly surprised and pleased reviewers and it takes me to the final rounds (where I face the dreaded white board and actually-there-is-a-correct-answer situationals). My two cents, this just really resonated with me. Does anybody else happen to solve problems this way?
- erikbye 10y agoIf you can't solve a new problem "on the spot", or at least quickly, then one is at least not suited for SRE work.
- throwaway4job 10y agoThis isn't a viable approach for much of the hiring pool, as a majority of working engineers have contracts which explicitly forbid work for contract for other employers. As such, if you hire any of those, you're hiring somebody with a proven willingness to ignore their contract, which is a strong anti-pattern.
- zaroth 10y agoIANAL, but that's not what this is. "Work for contract for other employers" could literally mean I can't help my neighbor mow his lawn in exchange for a beer. In this case what it really means is a non-trivial amount of work done for meaningful profit. If I fix a friends computer in exchange for a nice meal, I am using my relevant skills to perform work, but I'm not actually violating a contract forbidding outside work in a way that could ever possibly result in damages or firing for cause. For a potential employee to be so rule-stricken as to concern themselves with performing a coding interview, that would be the potential red flag for me. So this could actually be another positive outcome of this approach.
- torkable 10y ago"RULE #1 — Give them the weekend to solve the problem." I won't say this is a bad rule, I'll just say that you should be flexible. I declined to participate in an exercise similar to this while looking for a job this summer. The task was pretty complex, complex enough that I knew it was going to take a significant fraction of my weekend, but doable. I live in Colorado and if you think I'm going to spend the weekend working on a job offer instead of heading out for the activities I want to do, you may be surprised to get my email saying no thank you. tl;dr some people don't wanna do your interview on their weekend so be flexible.
- mahyarm 10y agoThis is the coding exercise/homework interview. A bunch of place do this in some form or another, usually without paying the person, and as part of a series of interviews on an interview day. I myself don't like homework questions, mostly because I still have to do an onsite, and I only have so much time to do these things. They are usually much longer than 2 hours too. If you communicate upfront that it should only take 2 hours and would remove the need for an all day onsite, then I would definitely be pretty excited. It would probably let you interview a segment of employed engineers who don't want to sacrifice a vacation day to do interviews. I really like coding exercises as a general interview type although, I feel like it's the most important & real part of an interview. The paid version doesn't work for people on a visa or are worried about IP assignment agreements, but I like the charity idea brought up by another person to solve this.
- verbify 10y agoI agree, maybe I'm a poor programmer, but 2 hours seems incredibly unrealistic for: a) Creating a frontend form to submit movies b) Creating the database to store movies c) The 'search to find the movies' feature Maybe I could do it in two hours, but it'd be pretty bad, and there's no point showcasing poor quality code. My favourite was when they asked me to produce examples of things I had coded. Like any other creative industry, a portfolio is normal.
- rnovak 10y agoDo you not use frameworks or anything? CoC (Convention Over Configuration) solves most of the problem for you, since it's basically CRUD, and that is boilerplate stuff in pretty much any language.
- daxfohl 10y agoOf course the task should be a test of the stuff you'll be doing on the job. If the job is to create quick websites without a whole lot of complexity for lots of clients, this would be an apt test. I'd fail that miserably and probably not like the job anyway. If the job involves working on more complex backend systems, then have the candidate write an async messaging system or DB storage system from scratch. I'd ace that. If the company has a large product, give multiple projects and let the candidate self-select.
- physcab 10y agoOne thing I enjoyed about consulting is the opportunity to work with so many companies that gave me a glimpse into their work culture. There have been companies where the experience I had interviewing completely shielded the shitshow underneath. And other companies where the interview process was really boring and routine, but the people inside were dynamic and amazing to work with. I like this approach of merging consulting and interviewing because it gets interviewer and interviewee closer to the source of truth about how a real work relationship will exist.
- bbcbasic 10y agoFor me time is money is less important than time time. 100 hours aggregated over interviewing for a few shops would yield $10k which is nice but not extremely useful, whereas those 100 hours taken out of family time is a real pain in the butt. The solution to this I feel is a bit of a prisoner dilemma because the entity that can make this easier is the company the candidate is a planning to leave (!). If they have flexible working, make it easy to take vacation on short notice etc. then that ironically helps.
- teen 10y agoCoding on a whiteboard works. There are just a lot of people who can't code, and complain & make excuses. I'm so tired of these clickbait posts.
- kasey_junk 10y agoHow do you know?
- lsiebert 10y agoWow, so you want me to work weekends is what you are telling me. I suppose it's nice that this is paid. A lot of companies give me HW problems... and frankly it doesn't scale.
- peteretep 10y agoLooks reasonable from my experience. Don't think I'd offer money for up to two hours coding test, but I've certainly offered money for something that took a whole day before.
- honkhonkpants 10y agoNo mention of the tax implications? Paying every candidate sounds like a wonderful way to increase paperwork.
- yoloswagins 10y agoCollecting a W-9 takes 2 minutes, and is only required for payments above $600.
- pmiller2 10y agoThere's an inexplicably [dead] comment in reply to your comment here. I'm reposting it so more people can see it. @throwaway4job, you appear to be hellbanned for no reason I can discern. :( > throwaway4job 8 minutes ago [dead] [-] > This isn't a viable approach for much of the hiring pool, as a majority of working engineers have contracts which explicitly forbid work for contract for other employers. As such, if you hire any of those, you're hiring somebody with a proven willingness to ignore their contract, which is a strong anti-pattern.
- duskwuff 10y agoI've vouched for the comment, making it-- undead? I suppose.
- geofft 10y agoMy guess to reasoning is that they called a startup founder a sociopath who would kill people to make a profit. That said, that was a completely defensible and evidence-based thing to say in context (the founder threw a fit about regulators who wanted to know what the chances are that people would die), so unless HN is cracking down on the casual use of "sociopath" by people who aren't making professional medical diagnoses (which, to be fair, I do find objectionable, but not to the point of hellbanning), it seems like it was for no sensible reason.
- dang 10y agoIt isn't always possible to figure out from the public data why an account is banned. When a banned account's comment gets vouched for and rescued, we look at the account history and unban it if we see that we banned it unnecessarily (we try not to do that but it happens) or if the commenter has reformed. Alternatively, there may be a good reason for the account to stay banned, but if it posts good comments, HN users will vouch for and unkill those. This system has proven to work well, even better than we hoped when we introduced it.
- dang 10y ago> There's an inexplicably [dead] comment [...] I'm reposting it Please don't do this. We created vouching for just this case and it works much better. To vouch for a [dead] comment (assuming your account has > 30 karma), click on its timestamp to go to its page, then click 'vouch' at the top. Besides being distractingly off-topic, making a big deal out of [dead]ness confuses the thread when the comment does get vouched for and rescued, as typically happens for good but [dead] comments. For example, in this case the replies to throwaway4job's comment are now split across multiple places in the thread. We'll move them. We detached this subthread from https://news.ycombinator.com/item?id=12916816 https://news.ycombinator.com/item?id=12916816 and marked it off-topic.
- zaroth 10y agoThe 2 hour version of this is what I've always done in actual interviews, except where we peer develop the solution together the whole time, and I let the candidate drive and lead as much as they want to. The take home version might be useful beyond that, but I've found that solving some fun toy problem like, "let's build a little app for X" in a couple hours you absolutely know if the candidate can code and have a good feel for what it would be like to work with them.
- zzzcpan 10y agoNo, yours is different, basically an exam, that requires a lot of preparation, good sleep, etc. to perform well. Very few would be able to do it.
- zaroth 10y agoI think it's different from an exam because the candidate is working on their own laptop, with their own tools, with full access to Google, StackOverflow, etc. If for some reason they don't have a portable dev environment I guess we could provide it but that does hamper the process somewhat because it's not really "in their element" anymore. I don't know how you really prepare for such an interview, other than actually having the portable dev environment and being well rested. The only thing we use the whiteboard for is understanding the problem statement and sketching out the steps to creating the solution, as in, things a whiteboard is actually meant to be used for.
- ryanSrich 10y agoGreat post. In summary: Pay people to complete a real life project and then bring them in to talk about it. Why is this so hard for most tech companies to understand?
- nunez 10y agoMy current employer (ThoughtWorks) interviews like this. I had a week to do the problem they gave me (it was unpaid). It was the best interview I've ever done. I rode a huge wave of emotions the entire time and learned A TON. Technical minutiae interviews like The one I did at Google really suck
- phillro 10y agoI know its only a small fee, but legally wouldn't this require issuing a 1099?
- eseehausen 10y agoIt's under the limit ($600): https://www.irs.gov/businesses/small-businesses-self-employed/reporting-payments-to-independent-contractors https://www.irs.gov/businesses/small-businesses-self-employe... But even if it wasn't, a company of any significant size (enough to pay even 1 person's salary, say) should have a low effort and cheap way of tracking contractor payments and issuing 1099s.
- halfear 10y agoSomething that we experimented with was pointing candidates towards one of our public repos and asking them to make a meaningful PR to be discussed at the interview. The PR would be discarded afterwards irrespective of the interview outcome.
- tdeck 10y agoLove the idea of paying people. That's great. However, consider the perspective of someone who already has a job in the industry. If every company did this, I wouldn't be able to interview at more than one per week. Not only that, but the Friday and Monday onsites mean I miss work on TWO separate days. This would be a non-starter for me if I had any decent pool of interest from other companies, although it's great for people trying to break into the industry. Another problem, depending on your philosophy. Specifying the exact technologies someone has to use means that you've closed yourself off to generalists, unless they have time to learn a whole new stack that weekend. Not that it's rocket science to do so, but that turns a two hour project for me in say Angular into an eight hour project in your favored stack. I can always learn your stack on the job, as any good engineer can.
- extortionist 10y agoAgreed with this. I wouldn't take a 4-day weekend to do interviews and a homework assignment unless I was desperate or already out of a job.
- BigJono 10y agoI feel like it's in the best interest of the employer to leave the choice of tools fairly open and see what the potential employee elects to use. For the example given in the article (a basic web application), I'd be very interested in whether the interviewee decides to go with a heavy stack, does it completely in vanilla JS, or something in-between.
- oddlyaromatic 10y agoI wonder about this. I'm pretty new to js frameworks and I see the advantage when things need to scale or get very complex, and I get that companies use these things. But for a simple assignment like this, is it better to use vanilla js and maybe handlebars, or "show off" that you can implement all the routes and whatnot in Angular, even though that's overkill? Or maybe the interviewee's justification of their choice teaches you that they understand the trade offs.
- ohwello 10y ago
- avodonosov 10y agoHow to invent an interesting problem which can be solved in 2 hours, which can not be found in the Internet and would allow candidate to demonstrate something? And you need to produce such problems relatively often, right?
- jon-wood 10y agoIdeally you only produce one good one, which allows you to benchmark answers against previous ones. The other important thing is that you should do the task as well - that both ensures it is actually doable in the allotted time, and gives you an initial benchmark of what you're hoping for.
- datashovel 10y agoI won't promise anything, but have been contemplating an idea for a relatively long blog post about exactly this. Having lived for the last several years in a very rural area of the midwest I would say that not only do you need the right mechanisms in place to sort through / vet candidates, but you also need to be willing to constantly venture outside your comfort zone. Why are you always recruiting locally? Why aren't you willing to look in all locations throughout the country? To be frank, I would guess that almost never do you find a "diamond in the rough" outside of large metropolitan areas, but my personal experience is that as soon as I work with a team in a metropolitan area I realize I'm almost always substantially ahead of the game in terms of best practices / capacity, etc. I would probably argue that I'm an exception to the rule, but (not to be political) the recent US election leads me to believe that the "norm" is not the "norm" any more. People are thinking outside the box and we (as recruiters / employers) need to realize this and not instantly discount a person just because of where they live (btw I'm pretty strongly Dem living in a mostly Rep world).
- rnovak 10y agoHaving been on the hiring side of this, I'll note that it does require a bit of start-up cost (i.e. work) on the employer's part, if you want to standardize the process (i.e. to make sure you're giving the same exercise to every candidate, the expectations are clear and consistent, etc). For example, I set up the project for my team in 7 different languages (Ruby, C, Python, Perl, C++, Java, Go), with the appropriate project structure, etc, for each. This took considerable work on my part, but the end result is that I can judge the output based on whatever the candidate is most comfortable in. Granted, that's all assuming my skills in each language doesn't completely suck (hopefully).
- ceronman 10y agoThis is a great way of hiring, but unfortunately it doesn't fit in all scenarios. First, this model alone doesn't scale. Big companies interview hundreds of candidates every week. It's not possible to design and evaluate a weekend project for each one of them. This doesn't mean that they can't have projects, but early filters are needed. That leads to the classic phone and F2F interviews to rule out those who can't code. If you freeze in one of those because of the pressure, you're out. Second, for simple developer positions, such weekend projects might be very good. But if you are trying to hire a senior developer who is going to solve problems at big scale, then the ability to create a simple movie catalog doesn't tell you anything. And there are no big scale weekend projects. You have to ask about algorithms, data structures and other CS topics. These things are important! Bottom line, this is a nice hiring technique suitable for small companies at a small scale. But it might not be that useful for big companies.
- StreamBright 10y agoSorry but this is simply not true. After a while we decided to do exactly the thing that the article describes as our preliminary interviewing process at Amazon. We also had extensive onsite interviews, however we did not ask candidates to code at the whiteboard. Btw, when you work for such companies it is expected that you spend 10% of your time on hiring. Getting hiring right is one of the most important things that you need to do at the scale of Amazon, Google and all of these large companies. Having a single bad hire can bring down the performance of an entire team.
- pakitan 10y agoI'm curious if you have any statistics about the different interview styles/processes. Obviously it's hard to figure out the false negatives (good engineers you didn't hire) but how about false positives? Also, is homework assignment now a part of the standard interview process at Amazon or is this just your team/department?
- StreamBright 10y agoSorry but no stats. Amazon has different hiring procedures for different teams. This was for a particular team in one branch.
- fredophile 10y agoOne important thing to realize with paying people for code they write as applicants excludes a large number of potential hires. People on work visas are not allowed to moonlight. I wouldn't risk ending up on the wrong side of ICE just for an interview.
- throw_away_777 10y agoWell then those people can refuse the pay and still take the interview.
- fredophile 10y agoNo they can't. If they did they would be doing volunteer work for a position that is usually paid and this also violates US immigration law (at least for the visas I'm aware of).
- deleted 10y ago[deleted]
- shams93 10y agoPaying people to do demo work is revolutionary, I love this idea. I can't tell you how many hundreds of hours I had to put in over the last 25 years doing these "evaluation tasks" where essentially the company is getting me to put in 20 hours of work for $0. Then there's the places that use puzzles from CS courses to exclude anyone who hasn't been through CS school. Practical experience is often treated as worthless by our industry. They don't make a lawyer who has been practicing law for 25 years take some bullshit test to get a project. but in our industry the more experienced you are the more the industry diisrespects you.
- deleted 10y ago[deleted]
- ma5ter 10y agoThe company I applied for last week did similar thing for a devops position - They asked me to deploy an open source web application which is less popular and almost 0 documentation available on internet.
- morgante 10y agoThis interviewing method suffers from the tragedy of the commons. It works great when almost nobody is doing it because if most of your interviews are traditional it's easy to squeeze in 1-2 homework assignments a week. However, it would be totally unworkable if most companies were to adopt it. Try finishing a dozen homework programs during a typical job search.
- RandallBrown 10y agoIf it's supposed to be 2 hours of work, then it wouldn't be too big of an issue. Even a simple phone screen is going to eat up 2 hours of my day, much less the full day interviews that most big tech companies do.
- morgante 10y agoIn practice, I rarely see assignments that are actually 2 hours. Even this article suggests giving candidates the weekend.
- patrickdavey 10y agoYes, which is interesting, as 2 hours != the weekend..
- deleted 10y ago[deleted]
- moconnor 10y agoIf they're all paying $100/hr you don't need an actual job, you can just perform a dozen interview questions a week and down the offers.
- morgante 10y agoIf you want to be a freelancer, you can do a lot better than $100/hr and spending 2+ hours to source each (small) gig.
- nchuhoai 10y agoI really like this, and have been trying to implement this at my company. One thing we are struggling with is to find the right challenge/project, in my case for the frontend. Two issues: 1. What is a reasonably sized project? I.e. often times two hours is not enough to produce something of substance/complexity, yet asking the applicant to do more becomes prohibitive. 2. I see a bunch of people asking candidates to do greenfield applications, while virtually all work most future workers will do is refactor and maintain. The latter however requires additional time investment to get to know an existing system/codebase. How are you guys handling those issues, and trade-off time complexity against insight value?
- stutsmansoft 10y agoI'm a huge fan of the "demo project" interview. It really allows me to shine where whiteboard gameshows don't. I don't need or expect payment, either. If I'm legitimately interested in the company, I am happy to spend a couple of hours showing them my stuff. Hell I'm proud to do it. I do enjoy programming, after all.
- cloudjacker 10y agoPretty good but rule #4 is totally totally opinion without any consideration about why someone would be defensive. So given that Amir of June is the only person doing this quirky interview style (where you actually pay them for their time), the interviewer still has absolutely no idea of this psychological gimmick Amir has baked into his process. Right at the very end! Amir Yasin admits that he is elevating them into a contracting gig status, and contractors ARE THE EXPERTS! They have to be the expert! They have to make up stuff on the fly to defend their implementation, "its a feature". But for Amir's warped interview process, of which the candidate is being bussed around on a literal auction block at other companies before having the luxury of getting his groundbreaking interview style, he still has this one random assessment. Look, Amir is the one that elevated his tiny sample size of engineers into gospel. There likely was a literal 2 people that formed his and his company's entire opinion about Rule #4. So I think it is worthwhile to point that out.
- eloff 10y agoI wish I could filter jobs by this criteria. Can we do this in the who's hiring thread? I'm sick of the interview process and massive unpaid work assignments cough Compose cough only to find out after investing thirty unpaid hours that they can't offer US market rates to a Canadian for 100% remote job. Oh and they also want to own anything you do in your free time. Sorry for ranting, I'm just pissed off at how an industry that brags about how they pamper their employees can treat them like garbage during the interview process.
- deepGem 10y agoDuckDuckGo follows this process. They in fact do a paid 3 month assignment. May be that's taking it to the extreme and perhaps works very well for them. If I were looking for a job and this process was followed, I'd definitely be game. I will most likely be following a similar procedure while hiring as well. Just come to the office hang out with us for a day - we'll fly you in, put you in a nice hotel + pay you a per diem. All we'll do is work through a problem, not through a series of daunting hypothetical interview questions or some algorithm nonsense that you'll never use in your job.
- zerr 10y agoThe only issue with DuckDuckGo job requirements - they require you to be an existing/active user of their product...
- kctess5 10y agoIn some sense many companies do this via 3 month internships. They're basically just low cost future employee vetting opportunities. Of course, they are generally limited to college students.
- ranveeraggarwal 10y agoIs someone out there actually using this method? How do I get an interview?
- yexponential 10y agoHow do you find companies that follow this or a variant over the traditional process. I've been interviewing at companies over the past couple of years and I've only participated at 1 take home task (startup) and know about 1 other company (on my list) that follows that. I, like others stated above, tend to perform much better in my own space and time than under eyes on a whiteboard..
- gigatexal 10y agoAnyone know of places that interview like this? I'd love a shot to interview with a company that does this.
- grandalf 10y agoI've tried to do this before but CEOs are typically not on board paying for throwaway code. It does make total sense for all the reasons the post mentions.
- jlebrech 10y agothe downside to this is that potential hire may have a few interviews lined up and you might not be the first, so the "best guy" might get an offer while you're still undecided or looking for someone better. It's a good strategy if you're not yet desperate for another developer, but if you're more established and desperate for more than one dev you could hire a few and later let go of a few (contract to perm is more friendly and you can hire them again as a later point). in a way the presented solution is a micro-contract to perm.
- lifeisstillgood 10y agoBut ... both sides have to really really want this. This is the end of the process final wash And so you probably won't do it with those candidates that fail your normal process. If you are biased against old, black, women you won't give them this test It reduces your false positive rate. But won't ever help your false negative
- shandor 10y agoThis seems like a pretty popular take on the interview process here on HN. However, there's one pretty glaring flaw that I've never seen discussed: if the interviewee can take the problem home, what prevents them setting up a hackathon with their friends at their place, and making the interview problem a team effort? A couple of knowledgeable friends can do wonders, and if you also prep with them a little you can probably answer all relevant questions and beyond about the code on the Monday on-site interview. Sure, that's cheating. And even if it wasn't, I would never do it for the wrong expectations it would set upon me if I actually got the job. But the ease of "embellishing" one's CV always comes up in these threads/posts, and while I wouldn't do that either, I kind of fail to see how this home project approach solves that problem. Anyone able to ELI5?
- kybernetikos 10y agoWe have an extension to the take home done paired on site that usually involves significant refactoring. If you don't have a clear understanding of the code you're sunk. Plus the presentation should weed out the most egregious cheats. I also strongly suspect that developers that can't solve the task well will mainly have friends that also can't solve the task well. If someone had skilled developers invested in them doing well I suspect they are most likely a skilled developer.
- shandor 10y ago> We have an extension to the take home done paired on site that usually involves significant refactoring That sounds actually brilliant. While some might argue that this comes back to the "whiteboarding under pressure", honestly if you have already written the code from scratch you definitely should be in a much better position than with the usual "implement a red-black tree insert, you have 15 minutes" whiteboarding tasks.
- deepGem 10y agoOne view of this behaviour is cheating, another view is hustle. I mean, if you could arrange a hackathon to solve an interview question - you are hired my friend :)
- galacticpony 10y agoQuote: "I may say please use functional reactive principals in JS to solve this problem, but the decision of using Kefir, Bacon, or RX is left up to them." That sounds like something a bad tech hire would say.
- dschn 10y agoAll you need to look for is passion. Worked for me.
- amgin3 10y agoNo company is going to pay someone for an interview project assignment when they know they could easily make candidates jump through hoops for free.
- a_imho 10y agoProblem is, many companies are only playing interviews. When you want to hire people who gets the job done it is no harder than: 1. Please tell me about a project you have done, a sw book you read, a hard bug you solved, really anything you like about computing etc. 2.a (This guy seems smart) Let's discuss compensation and you can start your probation period asap. 2.b (This guy is not smart nor passionate) Thank you for coming in, but we don't want to hire you. edit: I used this method with great success, imo programming exercises are just an indirection that only adds noise and loosely correlates with on the job performance anyway
- arpa 10y agoExactly. Also you have no idea what kind of cultural fit you're having if you only rely on technical skill. And besides, why do you want me to solve $problem? Take a look at my portfolio and public code - it's telling enough.
- huehehue 10y agoMy employers don't want me open-sourcing the work I do for them, so this only works if you open-source your side projects. I see a lot of comments here about how they would never waste their time on an exercise like this, but a small project for the purpose of an interview can probably be done in less time than any of your public projects.
- deepaksurti 10y ago>> They refuse to do the project because “someone will hire me without it”. This is wrong in certain cases. The candidate may have significant contribution to an open source project or may have shipped an open source project as an owner. Why should that candidate not refuse? You already have the code in front of you. If you as an employer cannot take the time out to go through that and evaluate what you would otherwise with your take home assignment, then something is not right. This one size fits all rigid process won't work. Given a process, the employers must learn to be flexible, all the while expecting employees to do so, is insane. So certain qualified candidates saying 'someone else will hire me' is not arrogance, but fact.
- codeulike 10y agoBut the method proposed is only 20% about code. It's mostly about seeing how someone approaches a piece of work and discusses a solution in a meeting. You can't get that from browsing GitHub.
- deepaksurti 10y agoAgreed. The Github code is a substitute for the take home assignment. If his GH code is good enough as per the employer standards, invite him in office to explain the work he did on that project. Now employers don't want to do that most likely I assume is because no one wants to go through the pain of figuring out the details of GH code. OTOH, the employer is expecting the candidate to understand the problem assigned to him and come up with a solution!
- codeulike 10y agoI don't think you understand how getting a job works. It's entirely appropriate for the amount of effort expended by two parties to be asymmetrical.
- jon-wood 10y agoYou can from browsing GitHub, reading the code, and then asking how the code came to be as it is. Talk through why they went with the particular structure they chose, talk about the research which resulted in the UI, ask why they chose functional testing but not unit testing, think of a new feature that would be interesting and talk over how they'd approach adding it.
- hydandata 10y agoI have offered exactly this to multiple companies who interviewed me, but so far none of them was willing to devote time to do it. I guess industry is just too used to the established practice, and "hey, if Google is doing it why not us?" thinking. It is not like I declined to do their normal interviewing process either, I offered this /after/ their process was finished. It is the best thing to do for both sides. And this was where they were trying to recruit me, not when I applied. f.e. I really like my current job, so I would benefit from getting a better look at your workflow and interact with the team to decide if I really want to work for you. Hopefully the situation will improve in the near future, but I am so taken aback with common practice that I currently see no other way but to start my own company, I just cannot imagine working for such stubborn and close minded people. And for darn sure when I hire, this will be the process.
- kinkdr 10y agoThe Triplebyte folks are doing something very similar. But I got the impression their clients don't understand the idea yet.
- zwischenzug 10y agoWhy not have those two hours + discussion in your office and call it an interview?
- yAnonymous 10y ago>I will purposely challenge their solution to see how they react. Exactly like Google, who tell applicants that their solution is wrong when it isn't. Most people complain about how bad their application process is and that interviewers don't know anything. Nope, they just weed out smart asses like you that are a pain to work with.
- throwaway_3452 10y agoI had my first ever whiteboard interview recently. I severely underestimated how difficult it is to write code as compared to a terminal. At the end of it I came out feeling deflated and rather angry as the same piece of work on a machine would have been trivial.
- edpichler 10y agoDigest: pay for a task before deciding to contract. On the article, Amir wrote: "They refuse to do the project because “someone will hire me without it”. On book "Smart and Gets Things Done: Joel Spolsky's Concise Guide to Finding the Best Technical Talent" Joel said that the "the best developers usually have lots of proposals, so they don't spend time doing tests for interviews". I think Joel and Amir are right.
- StavrosK 10y agoI came here just to make the opposite point. They aren't making you do a test, they're hiring you for a project. It's fine if you're too busy even for paid work, but why would you turn it down otherwise? I think Joel means "unpaid tests". I routinely turn interviews with unpaid projects down, because each interview process gets a number of hours of my time for free (depending on how much I want to work for that company) and unpaid tests/projects usually way way overrun that time. Or maybe that's what you said and I misunderstood?
- RandomOpinion 10y ago#11 of the Spolsky test is "Do new candidates write code during their interview?". I think Joel would agree that a take-home test would fall under that. http://www.joelonsoftware.com/articles/fog0000000043.html http://www.joelonsoftware.com/articles/fog0000000043.html
- tummybug 10y agoAs someone who is looking for a new role at the moment and absolutely hates the standard interview process I would definitely apply for a role at any company that had this process.
- samlittlewood 10y agoOne possible source of tasks for this process is the bug backlog from open source projects.
- gregjor 10y agoI'm glad to hear this works for you. But I think the process emphasizes technical skills over what really matters when hiring: how the person works with the team and within the business. Giving someone a toy project unrelated to the business tells you nothing about how they will perform in the real environment. Letting the candidate take the work home to work on it in isolation tells you nothing about how they will work with your team, or within the company. In his study "People and methodologies in software development" Alistair Cockburn found that “People’s characteristics, which vary from person to person and even from moment to moment, form a first-order driver of the team’s behavior and results." (http://alistair.cockburn.us/People+and+methodologies+in+software+development http://alistair.cockburn.us/People+and+methodologies+in+soft...). Other studies have come to similar conclusions. In a technical job, actual skills and experience are necessary but not sufficient for success. Programmers fail in their jobs because they can't work with or fit in with the team, and the larger organization. Any competent programmer can learn a new language, framework, or technique like TDD in a week or two. But people who don't pay attention to the business environment and requirements, and can't work with their team, group, etc. will fail, often costing a lot of money. Presumably you have weeded out the unqualified before offering to pay them to work for a few hours, but this seems like offering an unnecessary incentive to learn very little about the candidate's likely on-the-job performance. I don't know any scientific way to measure how someone will fit in, and I don't think anyone else does either. That's why having several people from different parts of the organization interview is the norm -- the interviewers compare notes and reach a consensus because everyone understands they are going mostly by their subconscious (gut) feelings. I spend time describing the business requirements and then ask candidates how they might solve an actual business problem. I don't expect a complete or deep answer; what I'm after is finding out if the candidate can think about a business problem at all. Examples: Our inventory system frequently doesn't match what's in the warehouse. We get a lot of people abandoning their cart at checkout. We have customers gaming our promotion codes. Testing for things like "functional reactive principles" is an example of ignoring the business environment and favoring technical trivia. No business ever had the problem "We need 2,000 lines of Ruby code by next week," or "We need a system to organize a small movie library, you have two hours." What I find is that far too many programmers don't even hear business requirements and can't do basic analysis or think of the right questions to ask. They want to start writing code. Having expensive people writing code that doesn't address business requirements is costly, and very common. If a candidate isn't asking questions about the business and the team that's a big red flag for me. Programmers who just want to be left alone to do their own thing are easy to find but they aren't necessarily a good fit, or productive. I also spend time getting as many people in the organization as I can to chat with the candidate, so we can compare our impressions. That is just recognizing human nature -- we all tend to form opinions of other peole within a few seconds, and then look for things that reinforce our impression. Of course I want to see evidence of actual technical skill, but I can do that with a few actual programming problems -- even something on the level of FizzBuzz will tell you if the person can solve a problem in code. And I want to see how they solve the problem, and what kinds of questions they ask. If someone is uncomfortable working alongside another programmer, or solving problems on a whiteboard, or talking to a group, I get it, but those are all necessary skills too. Just like learning a new framework, a motivated person can learn to work in a group, listen and ask questions, speak to a room. They may be a genius when left alone in a corner not interacting with anyone but they probably aren't going to be a good fit in most organizations. I often ask candidates to tell me how they would go about hiring someone for the same job they are interviewing for -- suppose we have two positions open and you get to hire a peer. That can tell me a lot about what they value in a co-worker.
- IloveHackerN84 10y agoThis should be the best recruiting process adopted worldwide. Unfortunately, at least in Berlin, companies go for stupid quiz and questions they even don't know by themselves but that they've read from books.
- vog 10y agoInterestingly, this is exactly what you do when you start to work together with a freelancer. First, you give them a small, isolated task. If that works out well, give them more tasks.
- msimpson 10y agoWe use a similar system which involves: 1. A phone interview to validate the applicants resume. 2. An in-person interview where the applicant is given an hour to complete level 10 of Blockly Maze (https://blockly-games.appspot.com/maze?level=10 https://blockly-games.appspot.com/maze?level=10) after being briefed on the wall follower rule (if they are unaware). 3. Completion of an outside example project in the applicants strongest language, for which they are not paid to avoid non-compete clauses. This usually is enough to evaluate whether the applicant is embellishing on their resume, capable of analytical thought in a completely alien language, and their ability to deliver a deployable project given specific requirements.
- sundvor 10y agoThat sounds like a great way to do it; if I were an applicant, I would have liked process. (I am currently looking for jobs, and do have a recent experience of an on the spot test which I just hated). I thought I'd try your step #2: I have no idea of the wall follower rule, and no prior experience in maze solving, but did bring it home in 18 minutes. That included figuring out this particular Blockly UI (have admittedly seen similar UI with Dash and Dot, only at a much simpler level of doing non-branching, sample tutorials with my 6 year old boy), trying to design a simple program, reaching some dead ends / observing effects, and then realising what needed to be fixed. I did use all the blocks for 17 lines of JS though, so perhaps better ways to do it, but thanks for that interesting little challenge at any rate. :-) I'm guessing really smart people would have it done in just a few minutes.. Also monitoring son's cough (night time in Australia) to make sure it didn't get worse, for a bit of distraction. (Edit: Brought it down to 1 spare block / 16 lines having a 2nd look after writing this comment.)
- tthbalazs 10y agoHey! You might be interested in a solution that uses less blocks (i would be). I might have been lucky, took me 2-3 minutes to find this. https://blockly-games.appspot.com/maze?level=10#taj4p4 https://blockly-games.appspot.com/maze?level=10#taj4p4 Does anyone know of a better one? Edit: just as i posted this i saw that you dont even need the first "Move Forward", so it is 10 lines total with 4 blocks left
- Quarrelsome 10y agoThis is what you do when you're looking for people on eLance/upwork/etc. I did this on my last start up and it worked amazingly. Its more expensive than getting lucky but cheaper than getting unlucky and allows you to find amazing people to work with.
- EnderMB 10y agoThe place I used to work had actually tried something like this, but it completely fell apart, and I imagine when I tell this story you'll realise why. One guy came to us from a recruiter highly-recommended. He had a few years experience, but he was widely respected online via his community contributions. He was also out of a job due to redundancies. It was enough to get him an interview, and he could talk well, so my bosses got the dev manager to set up some basic problems on a client website to solve. He seemed like a nice guy, and he had a lot of questions, which was a good thing. He had a nice chat with some guys over lunch, telling them that he'd been unemployed for several months, and he was down to his last savings. He was able to fix the problem purely through looking on some forums for the answer, and that answer helped him fix the problem. The dev manager was happy, and the PM's were happy. The devs that worked with him were brought into a room to see his solution, and everyone in there said he should be hired. We had a new dev! He was instantly given a project from the backlog, which was billed out, and would take around six months. He clearly knew what he was doing, so he was left to his own devices. To cut a long story short, the code he was writing was absolutely shocking, and he'd engineered a solution you'd need a PhD to understand. He was also finishing tasks really quickly, but they were bounced right back to him because his code was full of bugs. He stayed with the company for a while longer, but was ultimately let go. That project went over budget by six figures. It turned out that he was let go from his last two places for similar reasons. He was a junior developer that believed himself to be senior, and as such he disregarded any advice from anyone but managers. He had claimed open source contributions, but he was widely considered because he'd made thousands of posts on an open-source project forum, and due to their community contribution rules these posts deemed him a candidate for MVP. Despite thousands of posts, he'd never really solved a problem for anyone. I looked through the code he had written during his trial, and it was largely the same mess, but obviously smaller and self-contained. It wasn't an optimal solution, and he'd written 500 lines of code for what should be a 20 liner. The dev manager used to be a programmer, but hadn't written code in a while, and didn't see a huge problem with it. When the rest of the devs were asked about it, they all said that they thought his code was messy/crazy, but the managers wanted him, and the guy really needed a job, so they said yes. I'm not saying that this solution isn't a good one. If you can do it, I'd argue that it's the best way for a typical company to hire a developer. What I would add is the following: 1. Management should not publicly offer their opinion on a candidate before technical advice is given. If the managers weren't praising him, our devs might have had the confidence to say no. 2. Any technical test should be fully QA'd before a "Yes/No" is given. You're not just looking for someone that can write code. You're looking for someone with domain knowledge of your tool-set that can offer solutions to problems. If you're shown a bunch of code with little context. Funny enough, the code that he submitted was actually fixed by another dev on the following Monday. 3. Make sure they're not working on something that actually needs to be delivered in the next week. This guy was brought into the office on a weekday because he was unemployed, but it turns out most of the pressure for this was from a PM who said that the problem he needed to work on was actually required in that sprint.
- doppel 10y agoI think one flaw is that everything happens over the weekend meaning the developer has Friday to understand everything and then be ready for Monday. Personally, I don't know half the issues I might run into when I first start a new project, and if they expect me to just "make assumptions" the solution I end up with could be miles from what the wish for (both in direction and size). If it was Monday to Friday (or Monday to Monday), there's a chance for me to ask questions, get smarter and iterate on the solution - same as I would if I was actually working.
- mkoryak 10y agoI a single non tech question that is a very good heuristic for hire/no hire. What is your favorite 4 letter word. I usually ask at the beginning of interview and expect an answer at the end. Answers like fuck and shit === no hire. The other ones tell you a lot about the person
- erikb 10y ago"four" So, what does it tell you?
- mkoryak 10y agonothing :)
- adtac 10y agoI'm sorry, but how does this actually help you decide whether to hire or not hire a person? For example, if I reply "hire", would that impact my application positively or negatively?
- mkoryak 10y agothe question is kind of a joke. If you reply 'hire' it would tell me that you are ok with answering a joke question and not flipping out like some other replies did. If you get all pissed off that I asked you such a question, perhaps I should not hire you since you will get pissed off at silly things that happen at work.
- draw_down 10y agoGood grief. We are real idiots on this hiring stuff.
- wayn3 10y agoThe only honest answer to this question is "i have no favourite four letter word". but you cant say that because idiot hiring managers who ask idiot questions would insist that you do. sorry, but if you ask shit questions, dont expect non-shit candidates.
- perseusprime11 10y agoThis is good for testing for skills but does not help with team fit and behavioral issues down the road. I hired a person a while ago who provided with a clean solution to the problem with good separation of concerns and unit testing. I hired this person but after few months this person starts yelling at other engineers, won't complete the tasks. Ultimately, I had to let this person go which was very unfortunate given the quality of code. The headline is don't miss out on testing for team fit and other cultural values of your team.
- CSMastermind 10y agoThere's no chance I would consider a job that required me to do this.
- clifanatic 10y agoI wouldn't say no chance, but I definitely wouldn't go through this for some no-name "startup". It would have to be a high-profile position at a pretty exciting company.
- lolsal 10y agoWhy not? I find your perspective interesting because I much prefer this style of interview.
- CSMastermind 10y agoI'm busy. I both work a lot and have a life outside of work. If a company were to give me a take home assignment I'd see it as them not valuing my time. When you do a traditional interview the company has skin in the game. They have to "spend" the same amount of development time as I do in the interview. That person interviewing me could be working, if they're interviewing me instead, that's the company signaling that they think I'm worth the time. You don't have that in a take-home problem. It's asymmetrical. I'm investing time on this and they aren't. That's not how I want to start a business relationship. Then there's the marketplace. I have a lot of options for employment. I'm confident that if I quit my job tomorrow I could have another one, just as good, by Thanksgiving. The job interview goes both ways. I'm interviewing you as well. I want to talk to your current developers. I want to get a sense of your office culture. And I don't want to complete a take-home assignment before I get to do that. Finally the people I like to work with are like me. They're busy, driven, and good at what they do. I can't imagine they would work for a place that used take-home work for interviews. So even if I did go through with it and get the job; what type of people am I going to be working with?
- elcct 10y agoThis approach is much better than something like solving another puzzle in Hackerrank. It also working both ways, because by the quality of assignment you can see through what kind of company you are really applying to. I personally find most of the time such assignments to be a good thing and enjoyed doing them, but also had one case where company asked me to do self-contained module that solves one of the problems they had and on the follow up interview they asked me to refactor it so that it could be embedded into their product. Which I did and they liked it and then decided not to proceed. I could sense they didn't actually need a new developer, but needed someone to extend their product for free.
- dominotw 10y agoSounds great. Let's add this on to our 50 step interview process that we copied from google/apple/MS - Tech Hiring managers everywhere.
- andy_ppp 10y agoI liked the article but I'd rather people just come in and do some work rather than fitting things in (2 days in the office). I suppose with American holidays this isn't possible to take a couple of days but in Europe we get 25 days. I like the idea of paying for people's time too. Probation is also important; I've used it when I don't like companies and I think companies should be willing to say to people it's not going to work out. Three months is enough to know; people can look amazing on month 1 and lose their way. It is also important to never underestimate a manager who actually thinks through what they want from their staff and asks them to do it :-)
- jkingsbery 10y agoMy weekends are just as busy as my weeks. I have a wife and two daughters that I do stuff with on weekends, and other family members I like to see. This process seems to presume that I somehow have "free-time" on weekends.
- darkstar999 10y agoIf you don't have time to scout out new job opportunities, then you are comfortable enough to not need a new job. A 2 hour project like the article suggests is reasonable.
- shoefly 10y agoI use this process and it works great. We give potential hires a 1-4 hour project to do at home, they bring it into our office to defend. We don't pay them to create the project. We don't look at education. Some of our top coders are self-taught.
- mi100hael 10y agoFor example, I may say please use functional reactive principals in JS to solve this problem, but the decision of using Kefir, Bacon, or RX is left up to them. These days I'm utterly unable to tell whether someone talking about JS is being serious or if it's parody.
- duderific 10y agoNo, this is real...however, using reactive principals in JS is a bit esoteric and definitely not something that needs to be covered in an interview (IMHO). At my company when it comes to JS interviews we are more interested in proper separation of concerns, understanding scope, using proper data structures...you know, the basics.
- laxk 10y agoIt would be nice to collect here the list of companies who is doing interviews in that way.
- mcv 10y agoIn 2004 I got a job at a company that used basically this method, except I didn't get paid for it. I think I got the assignment on Monday, and had to present the results on Friday, so it wasn't over the weekend. Though I could be wrong on that. I could ask the CTO questions (it was a small company), and on Friday I presented it for the other devs, who asked questions, and later voted by email on whether I should be hired. I was, and it struck me as the best hiring process I'd ever seen.
- silverbax88 10y agoI think the current interview process fails but...this idea of seeing if people can code a small project isn't much better - it might be worse. It's a lot different giving someone a tiny project to knock out in a weekend and working with them for weeks during crunch time, or getting estimates, or just if they are a good workmate. You're basing an entire hiring decision on whether the person can write some queries and a page? I mean, I like the idea of proving what I can do, but software development - as in most jobs - are far more than technical ability.
- wallunit 10y agoI like that approach, and we tried doing something like that in the past, but here is why it didn't work for us, unfortunately: We work remotely, so is our hiring process. While it would be possible to give a programming task to a candidate, we won't have any control over whether they did it themselves, or how much time they actually spend on it. Well, the former is less of a problem, once you discuss the solution you see pretty quickly whether they did it themselves and understand how their solution works. However, candidates that want the job will try hard to do as best as possible, so some candidates that you give a 2h task to, tend to spend much more time on it. Others might not have as much time to spend on the task, since they usually still have a full-time job. So the results are not comparable. Besides that, I find it quite difficult to find a task that can be done in 2h, but gives a sufficient insight of their skills, however you cannot expect somebody to take on a more elaborate task, whether paid or not, because most candidates are in a full-time job when they apply. Also, this might be different in the US, but here in Germany, if the candidate isn't a freelancer/contractor at the moment, but permanently hired by an other company (this is normal), there is no way to pay them officially.
- Tistel 10y agoI did CS and have been a professional programmer for more than 15 years on pretty much every platform under the sun. I am very introverted. I still panic during the whiteboard phase of the interview about 75% of the time. Like go blank on simple stuff. Some problems need collaboration but I find I can only really think clearly when alone. I have been debating taking one of those public speaking classes because I probably need to transition to more of management role (love programming, but, my hair is starting to turn grey and I hear we kick everyone out of the club when the grey happens). The public nervousness has not been very helpful in my life. I wonder what it's for? Why have that feature? Maybe it's a bug.
- duderific 10y ago> (love programming, but, my hair is starting to turn grey and I hear we kick everyone out of the club when the grey happens). Please, no. There are plenty of companies that respect experience and the wisdom that comes with age. It may be challenging to find them, but don't go management just because "you're getting too old." If you love programming, keep doing it, and find a place to work that suits you. Signed, a gray-haired 47 year old programmer.
- titanomachy 10y agoIf you are very introverted, then some of the companies that do collaborative whiteboard interviews would probably be a poor fit for you. The reason they interview that way is because they are collaborative work environments, or at least they like to see themselves that way. Extreme introverts, even highly skilled ones, might not fit in. However, if you're experienced and skilled there will always be work available. You'll probably do OK. Overcoming your social anxiety would probably open some doors, though, and not just in management positions.
- geebee 10y agoI'm coming late to this. I've been through two take-home projects. Both of them resulted in a no-hire, and each has refined what I'm willing to do and what I'm not willing to do. The first one was a pretty egregious experience, honestly. I never spoke with anyone other than a recruiter. The first was a 2 hour Java test. The next was a take-home that I was supposed to spend 5-7 hours on. I did it and sent it in. I knew it wasn't great, but I put a hard stop at 7 hours. It took almost a month for me to hear back, from the recruiter, "we've decided not to continue with your application at this time..." For a while, I said never again. However, after refusing (and passing on what might have been good opportunities), I did another. Circumstances were very different. I had two extensive interviews with developers prior to the take-home, and I was interested in the job. Furthermore, they did reply with feedback, though it was through a recruiter. The feedback was mixed, some things were good, others were bad. Unfortunately, though, it was a hard stop. I didn't get and presumably will never get a chance to defend my choices. Although I understand the company probably doesn't want to open up a debate, they've moved on, it rankles that someone got to say those things about my code and I never got a chance to reply. So, am I at the point where I'd never do it again? Almost. I think I would insist on an opportunity to defend my code base, at least one back and forth, before calling it quits. It sounds like this company (mattermark) does this, which is a positive thing. You do get a chance to argue (though maybe they do cut some people off when the project is terrible, and who knows, maybe the people who rejected mine (no connection to mattermark) were just taking it a little easy on me, but were genuinely not interested after seeing it). I don't actually care about getting paid for the project time, if it's a good opportunity. I have to spend as much time re-studying my data structures and algorithms book for whiteboard interviews anyway, and I actually my learn something from the take-home. I'll probably talk to a buddy I consider to be a really good programmer who works in this area, and see what his take is on my project, asking him to be pretty brutally honest about his assessment.
- ebrenes 10y agoI'd probably follow up on talking with your buddy. It's often invaluable to get an outsider's feedback on how others look at our code. From what you typed, it seems like there wasn't a lot of communication prior to doing the coding exercise. I'm also not aware if you had channels to ask questions or discuss technical design options. If available, those are often "part of the test", to see if you make use of such resources. When I'm reviewing code in such scenarios I'm often looking for other indicators aside from the code's correctness. Things like: naming conventions, structure of the code, patterns used, how over-engineered it is. Just as important is seeing if the candidate picked up on less explicit instructions or hints in the coding exercise. Finally, I look for code that follows the conventional patterns and standards for that programming language; I expect a candidate to discuss with me the deviation from those standards prior to handing in the code. Anyways, I wouldn't completely give up. This might be an opportunity to grow and learn, but you'll never know unless you follow through on asking your buddy. Likewise, I've seen people here on HN volunteer to review code and provide feedback.
- MorePowerToYou 10y agoThis method is great. It's worked for me when seeking new jobs. Regarding the "algorithms trivia via whiteboard" style interviews: I think this type of interview is, unfortunately, the best large companies can do given their constraints. These constraints include hiring lots of new graduates, interviewing pipelines that include technically illiterate recruiters and engineers who lack the executive function to accurately assess candidates' viability. Lastly, the people involved in hiring at large companies are clueless about what the new hire will actually work on. It seems so obvious that tailoring the interviewing process to the actual fucking work that the person will be doing is a good approach. Once again, the contraints in a large company prevent this from happening in general.
- Joof 10y agoI never really know how much time to spend on take-home problems. I could spend a lot of time on it and it should be better -- possibly demonstrate more of my skills -- but often that ends in it being over-engineered and ultimately bad or otherwise unrepresentative. Getting paid could provide the ideal constraints for the problem at hand.
- amai 10y agoWhy give them an artificial task? Let your candidates bring their own pet projects or let them show their portfolio of projects and discuss about it. Designers, Artists, Photographers always have a portfolio of their work. Why shouldn't programmers have one, too. And no programmer is shy when talking about her/his own projects. See also https://blog.codinghorror.com/a-programmers-portfolio/ https://blog.codinghorror.com/a-programmers-portfolio/
- voycey 10y agoI am 100000% behind this - I point blank refuse to do code tests because they are asinine and I probably have the exact same one in a private GH repository from one of the million other unimaginative tech hirers. You want me to prove my worth? Fine, you can pay me for it and get something useful out of it at the end, as a senior developer I really shouldn't have to "Write a palindrome detector" to prove that I can code, I have a degree, we did that shit repeatedly! Nice to see other people are coming around to this way of thinking
- tulika_47 10y agoThe concept of paid interview is pretty innovative and interesting to judge the technical skills of a candidate as compared to the traditional method of interview . But before implementing such method the company infrastructure, availability of resources, mentality of the candidates in the market etc should also be considered as a factor to understand whether the company can afford and establish such method or not. To implement any new method , system infrastructure is very important. According to me paid interview is not that much beneficial for a mid-level company as it will be for some MNC or IT-giants because the number of openings matters. The article suggests to bring a group together on Monday to discuss the solution to a particular problem given. In that case the number of opening & scheduling has to be huge in order to arrange such group for the G.D which is not possible in a mid level company where you have only 1-2 openings at a time and the number of candidates who apply to take the interview is also very limited i.e within 5-8 in a week out of which only 2-3 appear for the interview in a week. According to the Indian mentality Paying against just appearing for the interview might not be that fruitful in absorbing the right talents in the company . If such concept of interview is out in the market people will take this as a scope of earning rather than joining. We might not get genuine candidates who actually wants to join the company. Candidates will just appear only to earn that money and will leave. Here what we can do is we can only provide the money to the candidates who gets selected and then joins. Here we are allowing them to write the problem down and take them home. Here comes the question that what if the candidate is taking someone else's help to solve the problem and how much honesty he is maintaining to solve the problem. If the candidate is appearing for the interview in the office premise such factors won't be an issue as he will be monitored constantly. If we are following such process of interview then we constantly need a team who needs to change the question for every session of interview as the question is going out therefore we will always be in requirement of new set of problems/question which is again tough for a mid-level company to maintain due to resource crisis and that to only for 2-3 openings at a time. We are providing the candidates constant supervision and guidance to address the question, also we are providing them no time limitations and if they clear the test a group is there to judge his perception and the result instantly on a one to one basis which is less time taking and prompt as compared to the process suggested in the article.
- tulika_47 10y agoThe concept of paid interview is pretty innovative and interesting to judge the technical skills of a candidate as compared to the traditional method of interview . But before implementing such method the company infrastructure, availability of resources, mentality of the candidates in the market etc should also be considered as a factor to understand whether the company can afford and establish such method or not. To implement any new method , system infrastructure is very important. According to me paid interview is not that much beneficial for a mid-level company as it will be for some MNC or IT-giants because the number of openings matters. The article suggests to bring a group together on Monday to discuss the solution to a particular problem given. In that case the number of opening & scheduling has to be huge in order to arrange such group for the G.D which is not possible in a mid level company where you have only 1-2 openings at a time and the number of candidates who apply to take the interview is also very limited i.e within 5-8 in a week out of which only 2-3 appear for the interview in a week. According to the Indian mentality Paying against just appearing for the interview might not be that fruitful in absorbing the right talents in the company . If such concept of interview is out in the market people will take this as a scope of earning rather than joining. We might not get genuine candidates who actually wants to join the company. Candidates will just appear only to earn that money and will leave. Here what we can do is we can only provide the money to the candidates who gets selected and then joins. Here we are allowing them to write the problem down and take them home. Here comes the question that what if the candidate is taking someone else's help to solve the problem and how much honesty he is maintaining to solve the problem. If the candidate is appearing for the interview in the office premise such factors won't be an issue as he will be monitored constantly. If we are following such process of interview then we constantly need a team who needs to change the question for every session of interview as the question is going out therefore we will always be in requirement of new set of problems/question which is again tough for a mid-level company to maintain due to resource crisis and that to only for 2-3 openings at a time. We are providing the candidates constant supervision and guidance to address the question, also we are providing them no time limitations and if they clear the test a group is there to judge his perception and the result instantly on a one to one basis which is less time taking and prompt as compared to the process suggested in the article.
- tulika_47 10y agoThe concept of paid interview is pretty innovative and interesting to judge the technical skills of a candidate as compared to the traditional method of interview . But before implementing such method the company infrastructure, availability of resources, mentality of the candidates in the market etc should also be considered as a factor to understand whether the company can afford and establish such method or not. To implement any new method , system infrastructure is very important. According to me paid interview is not that much beneficial for a mid-level company as it will be for some MNC or IT-giants because the number of openings matters. The article suggests to bring a group together on Monday to discuss the solution to a particular problem given. In that case the number of opening & scheduling has to be huge in order to arrange such group for the G.D which is not possible in a mid level company where you have only 1-2 openings at a time and the number of candidates who apply to take the interview is also very limited i.e within 5-8 in a week out of which only 2-3 appear for the interview in a week. According to the Indian mentality Paying against just appearing for the interview might not be that fruitful in absorbing the right talents in the company . If such concept of interview is out in the market people will take this as a scope of earning rather than joining. We might not get genuine candidates who actually wants to join the company. Candidates will just appear only to earn that money and will leave. Here what we can do is we can only provide the money to the candidates who gets selected and then joins. Here we are allowing them to write the problem down and take them home. Here comes the question that what if the candidate is taking someone else's help to solve the problem and how much honesty he is maintaining to solve the problem. If the candidate is appearing for the interview in the office premise such factors won't be an issue as he will be monitored constantly. If we are following such process of interview then we constantly need a team who needs to change the question for every session of interview as the question is going out therefore we will always be in requirement of new set of problems/question which is again tough for a mid-level company to maintain due to resource crisis and that to only for 2-3 openings at a time. We are providing the candidates constant supervision and guidance to address the question, also we are providing them no time limitations and if they clear the test a group is there to judge his perception and the result instantly on a one to one basis which is less time taking and prompt as compared to the process suggested in the article.
- kevando 10y agoWow. I did this! And you're right it worked great! However, the candidate was a student with no experience so I did't pay him. I said here is the git repo to http://www.wookietranslator.com http://www.wookietranslator.com now go make some changes. 2 weeks later he figured out git, python, js and I was very impressed! Kudos.
- danielrm26 10y agoThe reason this works is because it uses Evolution Thinking vs. Design Thinking to find good people, which we need more of in tech. https://danielmiessler.com/blog/why-you-should-hire-using-evolution-vs-design-thinking/#gs.pyFsGzk https://danielmiessler.com/blog/why-you-should-hire-using-ev...
- foobiekr 10y ago$200 is cheap compared to the benefit of basically eliminating the ability of candidates to field multiple offers. Which I mean sure has nothing to do with why this idea is being marketed so hard.
- stevefeinstein 10y agoSo you only hire experienced developers? Where's your commitment to paying it forward? Where will we get the next generation of experienced coders if you don't give a few less than perfect candidates a chance? I guess if you get yours then screw everyone else, right? Or am I being too harsh and bitter? When did we stop smart people who may not have fit precisely into the perfect little niche we've carved for them but showed a good ethic, and an ability to get the job done and learn new things as technologies evolve? We're really screwing up this industry in favor of getting it done fast, today.
- umanwizard 10y agoCompanies aren't charities. Their goal is to make money, not help anyone out.