41

I'm in a late stage in the process for a job and have now been emailed a technical/business case, which states I should not spend more than 4-6 hours on it. I have been scheduled to present the case in two weeks.

As it is a job I really want, I have planned to spend upcoming weekends on it and a couple of hours every evening. I will probably end up spending 40-60 hours, that is, 10x the time suggested.

I see it as every minute spent increases my chance of landing the job. Or might this backfire? If they ask, should I be open with the time I spent?

EDIT:

Thank you all for the answers. I ended up only spending <8 hours on the task itself. I did however prepare a lot to polish the presentation and prepare for questions that might pop up.

6
  • 139
    If it takes you 60 hours to do a task that they are expecting you to do in 6 hours, then you are probably not a good fit for the role. Either you are not as good as they are looking for, or they are too demanding with their workloads. Either way, it's a bad match.
    – musefan
    Sep 29, 2021 at 14:13
  • 54
    Some good advice I once received from a mentor: Suppose you have a task which takes two weeks to complete, but only one week to finish it. What do you do? Answer: Spend the first four days working out which 95% of the task doesn't need to be done. Do the remaining 5% of the work on Friday morning. Leave early for the weekend at Friday lunchtime.
    – alephzero
    Sep 30, 2021 at 2:00
  • 12
    @musefan - while that is a large disparity, I've actually never seen an interview task that was reasonable for the given timeframe, and I'm a senior dev now, I've seen a lot of those. It's usually not the difficulty that is the issue, but sheer quantity. The last interview I did, they gave me a task and 8 hours to complete. My feedback, which they asked afterwards, was that the task was trivial to solve even for a junior (it was a fairly simple "hotel" CRUD backend), but the sheer volume was ridiculous, especially since they wanted tests and documentation.
    – Davor
    Sep 30, 2021 at 10:11
  • 9
    40-60 hours is whole week in a fulltime job. What are you going to do if you spend that much time on one case, get the job, then get assigned to do 10 of these in a week?
    – Seth R
    Sep 30, 2021 at 14:20
  • 1
    im almost certain this is a dupe, but I cannot find it right now Oct 1, 2021 at 6:38

9 Answers 9

132

You're missing the point of the task:

  • A large part of it is not to see what you can do given infinite time, it's to see whether you are an effective worker who can get things done, including prioritising your work effectively and not spending time polishing something which is already good enough.
  • It's also about whether you can follow basic instructions. "Spend 4-6 hours on this" isn't ambiguous.
  • Don't think it would be a good idea to spend 40 hours on it and say you spent 6. It's incredibly obvious when people have done that, and nobody hires liars.

As an aside, 4 hours is the absolute maximum I'd spend on an interview task. 60 is insane.

12
  • 128
    Correction: nobody hires bad liars
    – musefan
    Sep 29, 2021 at 14:49
  • 47
    Stating "Given more time, this section should be more developed because [business reasons]" during the presentation is valid. In other words, say where you cut corners and would spend more time. Sep 29, 2021 at 15:50
  • 21
    It's even worse if they didn't notice you spent 40 hours on a 6 hour task, because they're going to be very dissapointed when they hire you and you probably won't make it through the first month.
    – Erik
    Sep 30, 2021 at 4:40
  • 9
    nobody hires liars - Ex-Yahoo CEO Scott Thompson claimed he had computer science degree from Stonehill College in Easton, Massachusetts. he didn't.
    – hanshenrik
    Sep 30, 2021 at 7:27
  • 2
    @Tiercelet: no, a CEO is hired by the company owners. He cannot possibly hire himself, since he has no authority over the company until his hiring is completed.
    – Dreamer
    Oct 1, 2021 at 7:30
97

In general the naive advice is to follow the instructions. If you are told to spend 4-6 hours on a project, spend that time.

Unfortunately in real life two things invalidate this advice:

  1. Question setters invariably underestimate the time required to complete a question, just like software developers invariably underestimate the time taken to program a task, often by a factor of 2-4. As well as the usual underestimation problems, question setters are setting a question they are already familiar with, and neglect any time a candidate may have to think about the topic, or false starts they may make.
  2. Interviewers assess a result for quality. In reality they are not too bothered by whether your solution took four hours or six hours.

Having said that spending ten times the allocated time is not sensible and will backfire. If you have spent ten times the allocated time on a problem there are only three possibilities:

  1. The task setters have given you a time estimate in which it is not possible to accomplish the task, or come close to it. This may be an unwitting extreme underestimation or may be deliberate to test your reaction to an unreasonable estimate.
  2. You are overengineering the problem, covering every possible case, optimizing for things that don't need to be optimized, focussing on details that aren't important. This will be noticed in the solution.
  3. You are actually not very good, and take five or ten times as long to produce an adequate result as other people.

My strong advice is to take longer than they say (if you need it), but only by a small multiplier, never more than twice what they say. Make it work, cover obvious errors. You can talk about improvements you might have made given more time in the interview. No reasonable company expects production-ready code after a few hours of work.

You could be doing other stuff with that time - researching jobs, sending out resumes, networking preparing for other interviews.

2
  • 12
    (+1) This matches my experience. Beyond the actual quality of the work, I also suspect a good first impression (because you took extra time to polish your submission) often has more impact than most people would care to admit.
    – Relaxed
    Sep 29, 2021 at 14:52
  • 4
    +1 I also like to point out I took more time (eg. 2 hours, used almost 3), with motivation: "I actually used close to 3 hours as I hadn't done similar tasks before and I was using this library, just to find out it wouldn't support blabla, you can see the initial attempt commented out (if appropriate)
    – rosysnake
    Sep 30, 2021 at 11:06
18

A couple of practical tips to complement DJClayworth's excellent answer:

  • Since you have a little time, start working on the task and then sit on it, giving yourself time to think it through. You might discover other angles or bad assumptions in your first attempt. This will be much more valuable than toiling on it for hours on end.
  • Once you go past the 6-7 hour mark, make sure you focus on wrapping it up/polishing the output. You shouldn't aim to follow the guideline to the minute but you shouldn't let things get completely out of control.

This will definitely be valuable and you can truthfully say that you did the bulk of the task in x hours but decided to spend a little more on polishing the result.

1
  • 5
    All good answers. I like this idea to sit on it. I recommend reading the prompt, spend 20 minutes perusing the information (assuming it's data: how much, what variables, is it flawed, what do the distributions look like, etc.), then set it aside for >=24 hours. You can cogitate on it a little here and there while not counting any of this as working time. But don't work a massive amount of this, assuming you can actually find enough to do to fill 40 hours. It will be obvious. Sep 29, 2021 at 16:30
16

Submit the original 4-6 h implementation, but in a side ExtendedVersion folder, submit the better, nicer 40-60h version. Have it as clean, simple and polished as possible so if they do review any of it, its very clear. If you can add context, let them know you really enjoyed the case and got excited to carry on with it. They only need to review it if they’re interested.

I’ve done this in the past with a take home technical problem and in the follow-up meeting I walked them through the original, and then they said they were indeed interested in the extended, so I geeked out showcasing the fun things I did for the extended. I don’t know if it made a difference, but I ended up with a job offer.

2
  • 2
    I totally agree with this answer, it shows you focus on problems and want a quality end product. This is a desirable trait.
    – Kilisi
    Sep 30, 2021 at 10:55
  • 7
    If it works, it works. But 10 times the time frame is still overkill. Still a nice solution though, ultimately more time/work shows more about your skills and capabilities, and you still meet their original requirements.
    – Battle
    Sep 30, 2021 at 12:57
5

When you're set a challenge like this, you're not just being tested on the quality of your work but also the speed and your ability to follow all the instructions, of which 'you must finish by this time' is one.

I've set this sort of test before. Some we rejected because their work simply wasn't up to scratch (in some cases, dramatically so; you'd be amazed on the breadth of the abilities of apparently experienced candidates). One though I remember we rejected not because his work wasn't good - it was - but that it was plainly impossible for it to have been done within the expected time. So either he'd lied to us about the time (which we don't want), lifted code from elsewhere without telling us (which we don't want), or used a code generator tool of some sort without telling us (which we don't want). All three possibilities were dishonest, and two of them if he worked like that in our employment could have opened us up to liabilities.

Do you see why 'if I had more time I'd have done xyz too / differently' is a better response than spending more time than you're supposed to on a task?

3
  • First time I see using the code generator is not appropriate where it helps. Wish the candidate to find a job in a company more open for innovations. There are indeed some cases where this would eliminate the amount of work ten fold, even including writing the own specialized code generator first.
    – eee
    Oct 2, 2021 at 13:19
  • @eee Using a code generator to build the first draft and then reworking the resulting code can cut a lot of time. However, there are people who blindly use a code generator and use the code without thinking. I've had to fix such situations.
    – David R
    Oct 2, 2021 at 14:00
  • I'm not anti generating code at all - I've written plenty of generators and do it myself, regularly. In this case though there was neither the time nor the need to write a generator on the brief we'd set, so we're back to problem explanations. He could've used a third-party tool without telling us, in which case there could be licensing implications we didn't know and we don't want that in a new hire. Or he could've lied about the code being his, or how much time he'd spent. None of these are good results in an interview scenario.
    – eftpotrm
    Oct 4, 2021 at 11:10
2

Part of the issue here is that there are accounts of companies using interviews as a "free consulting" process where they ask the interviewer to solve a problem, take that solution, and not hire the interviewer. Don't fall into that.

There are two ways to approach a problem like this:

  1. Attempt to fully solve it and spend the 60 hours on doing the technical

  2. Put together a project plan of how to solve it and show why this plan is realistic and feasible.

I would lean toward the second as it shows a deeper understanding of the problem and how to solve it. It also shows that you are more than just a coder.

You are asked to present on this problem. I recommend that the presentation should never be a full solution. It should be focused on how the problem could be solved, what resources are really needed to solve it, what type of user testing would need to be done, how the solution would need to be integrated into their business operations, etc.

1
  • Not unheard of, especially in "innovative startups" that may even not have internal specialist good enough to do some advanced task.
    – eee
    Oct 2, 2021 at 12:18
2

You may be expected to known some library, tool, framework or algorithm that adds a lot to productivity, so the task is actually easy. The right tools may not be named on purpose, and you likely will not win by completing the task in some much harder way. Look carefully around before you start, maybe the tool can be found and worth learning.

2

For some interview tasks it has taken me a few days to learn how to do them, then I could do them in the expected time. This learning has set me up well for the interview and also for other interviews if I did not get the job. But if it was something I did not enjoy learning I would have dropped out of the process rather then doing the task.

Hence for the "technical/business case" if it is an industry you don't already understand I would not count a few days learning the background knowledge as part of the time doing the task.

-2

Lying is acceptable :)

In ideal world, everyone should be honest, employees and candidates toward companies, companies toward employees, candidates and customers etc ... Back in real real world, rules are a bit different. Everybody is first and foremost in CYA mode. Company would do what is in its interest, so should you. Therefore :

  • First, ask yourself do you really need this job. Do you need money right now, or is salary so good it is irresistible, future references stellar, technologies that could be learned on job would launch your career etc ... If you could easily find similar job (pay and grade) then do not bother with this.

  • However, if you really want/need this job (as you suggested) ask yourself are you capable of doing it ? Is it possible that while working at this new position you actually get similar technical-business cases daily ? And you have just one working day to work out solution ? If this is true, you would probably had to work more then usual 8 hours daily, and in longer term would likely suffer burnout . Maybe you simply lack required knowledge and therefore need additional time to look for resources on internet or in literature. Then ask yourself how long would it take to you to really master this field and be able to work closer to required 4-6 hours.

  • Finally, if you after all of this you decide to proceed, it is acceptable to use all available time (two weeks) for work. Life is rough, and you need to take care for yourself. Therefore, use every available minute and good luck :) Company had their reasons for limiting time, but then you have your own so there is that. If they ask you how much time you have spent, give some vague answer like : "I don't know, I worked during few evenings when I had time. After that I just polished stuff a bit". If they pressure you simply state that you didn't measure time cause you deemed it not important, but it was not much above 6 hours.

1
  • This is why we have on-site whiteboard interviews.
    – ojs
    Oct 3, 2021 at 8:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .