11 ms·
I personally also prefer take-home projects over being grilled on my ability to solve obscure algorithms problems under pressure. However, this second route al
by lewisl9029 11y ago
I personally also prefer take-home projects over being grilled on my ability to solve obscure algorithms problems under pressure.
However, this second route also comes with a number of issues. The most annoying of which in my experience is the amount of time investment each interview requires from the candidate.
At least in the traditional technical interview, interviewers and candidates tend to be roughly equally invested in the interview process in terms of time spent, so interviewers have to value candidates' time because failure to do so will end up wasting their own time as well. In take-home projects, this balance in time investment completely breaks down, and thus there's very little left to discourage interviewers from issuing ridiculously time-consuming projects.
I've done a few of these in the past, mostly to get some practical experience with a new framework & ecosystem I'm not too familiar with yet, but I think in the future I'll likely just politely decline any projects that looks unreasonably time-consuming, or at least try asking for certain adjustments to the spec first.
- throwaway12324 11y agoIronically enough, Triplebyte's own take-home projects were some of the worst I've ever had, and did a horrible job of respecting the candidate's time. When I went through the their take-home interview process, there were 4 projects to choose from, with only one having anything remotely to do with my area of expertise (it was a multiplayer game, and I was looking to work as a web front-end/full-stack developer). For all their talk on how you should select a practical project to talk about because it correlates better to ability to get real work done, it's really rather ironic just how utterly academic and unpractical the projects they offered were (that game was literally the most practical one on the list). Now they tell you that you're expected to spend at most 3 hours on the project. This might be true for some of the other more academic projects on the list if you had any expertise in the respective areas, but it definitely wasn't true for the multiplayer game project I chose, which had a non-trivial front-end and back-end component, for which testing alone could easily take 3 hours (Or maybe I'm just bad, which is definitely possible, but I've asked many of my more experienced peers how long they think a project like this might take for them, and the lowest estimate I got was a whole work day of 8 hours). Now they also tell you that it's OK if you don't finish the project. There was also a second part to the interview where they may ask for extensions to the original project, where they'd give us more time to work on it, so I assumed if we don't finish, they'd ask for us to finish the original spec along with some extensions for the second interview. Since I had already finished the front-end component for the game, and had worked on the project for well over the expected 3 hours, I decided to call it a day and work on preparing for some of the other interviews I had that week. However, that it was OK to not finish the project for the first interview might have been an outright lie. I won't ever know for sure because I was rejected after the first interview for not finishing the back-end as well as being unable to resolve some performance issues the interviewer pointed out (which at no point in the interview did he even ask for me to fix, so I assumed fixing that performance issue would also be a part of the extension). Incidentally, I went back to the project a while after the interview and resolved the performance issue in 5 minutes flat. The whole process just left a rather bitter taste in my mouth, which was all the more disappointing because I went in with great hopes after reading all their great blog posts on HN. For anyone else considering Triplebyte, I'd highly recommend going with their traditional interview route until someone at Triplebyte can confirm the process has changed for the better. At least with that route, if you get rejected, you'd have wasted less time in the process.
- kafkaesq 11y agoNow they also tell you that it's OK if you don't finish the project. Yeah, they always say that -- but it's never really true. They should just be honest and say "If you don't finish the project in time -- then don't feel bad, but perhaps the test isn't right for you, at this time. Feel free to apply again in 6 months."
- shuzchen 11y agoI've actually been through two interviews where I wasn't expected to finish the project, and I ended up getting the jobs. I think the difference there was it wasn't set up that it's "OK if you don't finish", but that "these requirements were crafted such that we don't expect you to finish".
- wldlyinaccurate 11y ago"These requirements were crafted such that we don't expect you to finish" is exactly how we explain our coding tests to candidates, and it seems to work really well. We actually find that many candidates will spend their own time finishing the project _after_ the interview. Programmers do like a challenge, after all, and nothing says "challenge" like "we don't expect you to finish this".
- kamaal 11y ago>>Feel free to apply again in 6 months. I don't understand this. No company is so special that I would be throwing away hundreds of hours in pointless meaningless work every few months just to join them! Unless I'm in need of a job again. And whats the big deal even if I join them after six months, I'd be working to maintain some code, fix bugs and may be occasionally do a big important project. Its not like they are sending Neil Armstrong to the moon all over again that I would like to be a part of this history.
- pjmlp 11y agoMe neither, it is like some companies like to feel special. After being invited twice for Google interviews, I mean really invited by their HR, not me applying for them. On both occasions I failed the process with their stupid questions. I started replying to their HR, if I am so good to be invited but on their eyes unable to devise a inode search algorithm for unlimited hard disk sizes with a specific set of hardware and search time constraints, over the phone interview, then why couldn't they just please stop inviting me!? That was the last time I heard from them and I don't care a bit about it.
- rhinoceraptor 11y ago> there's very little left to discourage interviewers from issuing ridiculously time-consuming projects There's also no disincentive for interviewees to spend an unreasonable amount of time on the project. So the test is biased against employed people and/or people with kids. This can be easily countered though. Send out the assignment at a predetermined, convenient time and require it be returned an hour or two later.
- lewisl9029 11y ago> Send out the assignment at a predetermined, convenient time and require it be returned an hour or two later. This honestly sounds like a great idea to me, except maybe with a slightly longer time allowance to remove some of the pressure. Definitely hoping more interviewers will start to adopt this method for take-home interviews. But this method also hinges on the interviewer's ability to design projects that can be completed in a reasonable amount of time and still give good insight into a candidate's skills. I think it's safe to say this will be a difficult task for most interviewers.
- nsxwolf 11y agoA day or two should honestly be fine. Have them talk about the solution after turning it in. It's a lot easier and more interesting to talk about code you just wrote than it is to make someone whiteboard something on the spot. It doesn't need to be a time trial. If you're impressed with the code and hire the candidate, worst case is you get someone who takes a little more time but writes great code.
- lewisl9029 11y agoThe time requirement doesn't just set a limit for the candidate though, it also serves as a limit to consider for the interviewer when speccing out the project. Having a time limit of a day or two is fine if the actual project should reasonably take a couple of hours, but if the project actually takes more than a whole work day to complete, then that's a different story (in my humble opinion, anything that would take more than a couple of hours is an unreasonable demand on the candidates time unless you offer some kind of compensation).
- Bluestrike2 11y agoI remember hearing about take-home projects that amounted to free work for a company rather than a test of the programmer's skills, which is pretty smarmy. Anything can be abused or misused. Anyhow, the disincentive would probably be a decrease in applications if they start piling on the homework. Unless you're offering some amazing compensation and perks, or you're hiring for a project that could make a person's career, fewer people will bother when there are so many other companies out there hiring. Maybe the least worst answer is to have people who have been through the hoops before, and can empathize with candidates, running the hiring processes.
- rhizome 11y agoEmpathy might be in short supply and the interviewer might simply try to replicate the gauntlet that they themselves had to run in order to get hired.
- hyperpape 11y agoEmpathy isn't enough, in my opinion. There are problems with most every alternative: 1. Show-off quizzes are of limited relevance. 2. Take home work is a huge stressor for people with limited amounts of outside time. 3. Open-source contributions are a) too restrictive as a filter, and b) favor people with lots of time, just like #2. 4. Personal connections narrow the pool that you have, promote nepotism, and tend to exclude people who are already at a disadvantage. 5. Looking at previous jobs screws over lots of junior people and just means you're depending on the last interviewer's shitty decision.
- __jal 11y agoYes. I refused to do an exercise because it was quite obviously from someone's todo list, was a rather large endeavor, and didn't demand any particular skill aside from trying to find a sensible way to handle the many special cases (think parsing linux network configuration files and a pile of environment-specific behaviors). I read it and told them (a) I had no interest in a firm that behaved that way, and (b) I had no interest in a firm that didn't understand what configuration management tools were for.
- djsumdog 11y agonot to mention you're asking them to code a (potentially) complex take home project, that could take over an hour, for free. I had a friend of mine who told me her company doesn't use online programming tests (like hacker rank) because she doesn't think legit programmers would bother with positions that required them. Having taken a couple of these on-line automated tests, I don't think I'd take them again. Problems which I'm sure I had written correctly, dealing for edge cases and testing in browser; I submit to get like a 6%. Programming simple things in front of people in an interview I do fine.
- ori_b 11y ago> not to mention you're asking them to code a (potentially) complex take home project, that could take over an hour, for free. An hour, I'm fine with. It's less than what I'd schedule for an interview, and far less than I'd schedule for an in person interview (which might include a flight out). On the other side of it, though, I'd be concerned about cheating. It wouldn't be too hard to hire someone to take the test for me, I'd imagine.
- kylequest 11y ago> At least in the traditional technical interview, interviewers and candidates tend to be roughly equally invested in the interview process in terms of time spent Not really true unless you go to your interviews completely unprepared :-)
- nevon 11y agoAs the interviewer, I'm not going to show up unprepared either. Typically, having an interview means learning about the candidate and what would be interesting to talk to them about, learning what team they might be a good fit for and what they need, and syncing with the other interviewers to make sure we're on the same page. And then afterwards, we'll meet up to discuss how the interviewee did and whether or not we should hire them. All in all, it's at least an hour of prep time needed, and that's only counting my time, not the time of the other interviewers, managers and recruiters.
- kriro 11y agoSince the article seems to be about startup interviews an hour of prep time from the employer's side actually seems fairly low. I'd expect closer to a full day. Isn't hiring one of the most important strategic decisions for a startup?
- kylequest 11y ago> At least in the traditional technical interview, interviewers and candidates tend to be roughly equally invested in the interview process in terms of time spent Not really true unless you go to your interviews completely unprepared :-)
- rockshassa 11y agoTake-home projects can be a double edged sword... for a given project that is estimated to take 4 hrs, i will typically spend about 16 hours on it. working straight through the night, chugging coffee and/or beer. I work by banging out an ugly PoC, and then I refine it drastically over several iterations. My final versions are award-worthy, but the early ones are really bad and sloppy. I am the type that is great at simplifying, but bad at coming up with the initial statement.
- sgift 11y agoIgnoring the time investment for a moment: That is not a bad approach in my experience. Iterating allows you to learn from the versions before and guide your improvements. As long as the first version is at least good enough to do the job AND good enough to be improved upon (often the harder part) it is absolutely fine.
- tarpherder 11y agoThe only problem with her/his approach is that she/he said it took 16 hours where they would've liked to only spend 4 and be done (as 4 hours was what was expected). 4 hours may be unrealistic for what was delivered in the end but it would make me feel at least slightly awkward putting 16 hours into a 4 hour assignment as it indicates my performance is not where it should be (I'm off x4 which would be a lot to me) or my priorities are not at all aligned with the company's regarding this assignment. Don't get me wrong everyone takes whatever time she/he needs and comparing results and time spent is hard unless you only look at "does it work" which in many cases does not do the work justice (and may not even be the most important metric in the long run). For that reason take-home assignments may be better than the almost comical interview often described on HN but they have their flaws that make them far from ideal as well! I think it is hard to judge the true performance of a potential employee in a company team without actually having the candidate be part of the team (and even then it'll take a good amount time before someone settles in). Some folk may not be the best programmers but are good catalysts in a team, smoothing relations between other colleagues and increasing team output overall. Or they might have a habit of happily taking up tasks that are wildly unpopular and thereby, even if they are not the most performant, solving problems colleagues or perhaps a faster candidate wouldn't have solved. I could go on about this but I think it's clear what I mean. There is a lot more to a role as programmer than just programming and that is often completely neglected in these discussions.
- SonicSoul 11y agoI've gotten a take home test that took all Saturday. I finally finished it happy with myself and with my work and emailed it in. The response was "thanks, are you ready for the next exercise?" i was like.. um.. I really need to get on with my weekend. This was deferred to the big boss who said "It's ok just do it whenever you have time next" .. ook so that was my next Saturday. Worst part is that after turning that in, and I am fairly certain both were done really well, I never heard a word back from them. I was frustrated as hell but you know, that's all part of the job. Sometimes you waste a little time while you look for work. Look at other industries such as acting, actors could easily spend a day going to auditions waiting in lines preparing for characters and never getting a callback. My dad is in construction and for him to make an appraisal he has to study the house and waste a ton of time doing crazy calculus mapping out exactly how much area it takes and how much siding it will need considering the weird shapes around the chimney and how many hours it will take to cover it. You want to give yourself some padding but then he most likely won't get the job because the owner will go against other "free" appraisals and take the lowest bidder. If he goes too low he's risking working extra days for free or earning very little on the job. So doing all that free work is pretty much part of his job. As I hiring manager I try to waste as little time as possible, but at the same time I feel like a lot of programmers are spoiled and quick to complain about their time and pretty much expect to just get hired after 2 hr interview. This is someone you're hiring potentially for years (and any mistakes are hard to fix later) so yes, time will be wasted on both sides to try to ensure a good fit.
- smalltimeboss 11y agoAs somebody who regularly employs developers, and being a developer myself, may I suggest you put your Saturdays' effort into an open source github repo or something similar? Sure, this takes time too, but afterwards you can just point your prospective employer to your superbly styled and documented code on github. Both parties win: you don't have to spend time on stupid exercises anymore, they can get a very decent impression of your coding skills. [Edit: corrected typo]
- SonicSoul 11y agoI was thinking about posting some of the solutions to past problems on github. The problem is that new employer has no way of knowing it was me alone that provided the solution and how long it took, so I couldn't blame them for not just accepting my public repo as proof of my ability. For example I had one interview where I struggled to complete a WPF test project simply because it was coded in a way i've never done before using controls I've never used and the test was estimated to take 10 min. Meanwhile in my bag on my laptop I had a complex WPF solution i've been working on in my free time for months as a possible product to market and sell which more than showed my competence in the platform. People in my interview didn't even want to see it on pretext that they have no way of knowing it's my code.
- gopz 11y agoI got one that was just: "write a web application". That's literally all they gave me for parameters. I decided not to be a dick and send them 5 lines of code returning http 200 so I set off and started a side project I'd been wanting to do for a while. Low and behold I wasn't even close to done after the weekend was over so I emailed them and said "sorry, but I need more time if you want the application I'm working on". I got an email inviting me in for an in person interview after I talked to an engineer for about 20min, so problem solved I guess.
- Joof 11y agoDon't worry it should only take an hour or two; an afternoon at most!