1

I applied for a software engineer position at a company. After a 15 minute screening with little technical depth mostly personality, they requested I do a code interview over the weekend. No problem.

They sent over the requirements, it’s a 4 part project involving chess pieces, a board, relaying valid moves, and building a web api and view around this. As well as a console application.

I spent around 2.5-3 hours putting together a pretty solid project. Uploaded to github.

Today I got my feedback, they decided not to move forward because it didn’t handle input validation. Which, wasn’t a part of the ask, but is pretty standard. When I asked how long the average candidate works on it they said around 4-5 hours.

Am I wrong to be annoyed in this scenario? I should spend 5 hours on a project after a 15 minute call?

9
  • 3
    You are right to be annoyed but these things happen. I've also burnt many a bridges with good companies for trivial things like this. Move on.
    – solarflare
    Commented Jun 8, 2021 at 3:43
  • 1
    I 100% share your annoyance. I did a thing like that once, and was similarly rejected. I refused thereafter except as quid pro quo, in person, when getting face time with someone at the company. Related, I also left the industry. Commented Jun 8, 2021 at 4:45
  • Employers who expect candidates to put in substantial amounts of unpaid time outside the interview just to (maybe) get the job are bad employers, period. Employers who do that and don't even tell you how long they expect you to spend on it, leaving you guessing... don't be annoyed, walk away with a smile on your face. You dodged a bullet. Commented Jun 8, 2021 at 8:06
  • 1
    it is absolutely infuriating. Everyone has had experiences like this where the person reviewing your work is an idiot! Unfortunately, this is one of the downsides of being a programmer! So sorry!
    – Fattie
    Commented Jun 8, 2021 at 13:30
  • 1
    Interviews are a 2-way street. Their expectations and yours did not align. It happens. Keep looking and you will find a job where they do match.
    – Seth R
    Commented Jun 8, 2021 at 21:12

4 Answers 4

8

Project interviews need time standards. Your annoyance is reasonable.

One of the problems with software (that I keep on having to explain to my irritation) is that it can be infinitely complex depending on the requirements, requirements you usually are not given during coding interviews. Uber has thousands of engineers for an app that many have cloned the basics of in a weekend. Part of it is that at the scale Uber operates at, edge cases that could be silly to contemplate at 50 users become million dollar concerns at 50 million.

Uber can be summarized as "build me an app to summon a car" and that can reasonably be somewhere between a $5000 project and a 5 billion dollar project depending on specifically what is required.

So the project interviews I have been happy with have usually said something like "spend exactly one hour on this task and see where you get" or "we expect our ideal candidate to take 3-4 hours on this."

So you should be annoyed at the unclear expectations.

Whether you are annoyed at project interviews themselves is a personal preference. I personally enjoy them a great deal and would happily spend 12 hours on one, but I am also the kind of person to enjoy hackathons.

2
  • Hackathons are a completely different animal. Usually, they'll feed you and have engineers onsite to answer your questions. It's more of an exchange. And even if it's a badly run hackathon, it's usually pretty obvious from the contest rules they have or the way it's organized. Commented Jun 8, 2021 at 6:21
  • I sort of agree with the company here. Depending on your level, I think input validation is a given. However, given the complexity of the requirements taking multiple hours and getting rejected without even an interview to me is a low blow from the company. They should at least interview the person and ask if they'd want to correct anything in the coding exercise, and perhaps the OP could then talk about the input validation. Regardless, you shouldn't apply to position that require such long tasks just to get an interview. They're not they're not the only place hiring.
    – Dan
    Commented Jun 24, 2021 at 20:41
2

I'm not sure how they know how long the task takes the average candidate. It strikes me that this is at best a very rough guess. If the company don't time box (which they often do) I'd recommend concentrating on just making your submission as good as you can. I find that a good coding exercise impresses people like nothing else, so it's worthwhile making an effort with them.

The feedback about input validation seems fair to me. Even if something isn't mentioned in the spec, there's never any harm in going the extra mile and it's a good idea to consider error cases. Clearly, there were other candidates who did, otherwise they wouldn't have rejected you. In any case, you've learnt something that will enable you to do better next time.

Personally, I enjoy coding exercises: They give me an opportunity to practise my skills in a nice self-contained task and they often make me think about things that I haven't thought about before. For example, I once had an exercise that involved using regular expressions in a much more advanced way than I was used to. It prompted me to look into this subject afterwards in much greater depth.

I recommend getting good at doing code exercises because they will certainly help you to get work. The time you spend on them is never wasted, even if you don't get the job, because of what you can learn from them. One last tip is to always try and get a copy of the code that you've written as it's useful to review your work on your own later.

7
  • 2
    I don't disagree with you. But I work a full time job, 50 hours a week, have side projects, and have a family. Spending 7 hours on an interview to maybe get a job is a no from me. And I agree with input validation, but it was marketed as a POC test, not Production ready, so input validation wasn't on my list. Commented Jun 8, 2021 at 15:35
  • 2
    The problem with that attitude is that you just don't get the job. Employers are interested in seeing that you can do the job; they aren't interested in excuses. Commented Jun 8, 2021 at 16:33
  • 2
    @DidIReallyWriteThat, last time I did I coding exercise for an interview I didn't have enough time to do everything they wanted either. Instead, I took it as far as I could and made sure to design it in a way so that the others things could be added on later. Then I included a short write-up on why I made the decisions I did and what I would have done differently if I had had more time. That apparently impressed them enough because I got the job even though I didn't really finish the whole assignment.
    – Seth R
    Commented Jun 8, 2021 at 21:45
  • @JoeStrazzere Yes, but even spending the time and doing it correctly only means I have a chance at an offer. Commented Jun 9, 2021 at 4:12
  • 1
    It works fine if the company doesn't want you to do a test. If they do want you to do a test, it doesn't. This is the point. I'm not exactly sure either how doing an in person interview takes any less time than doing a code exercise at home. Commented Jun 10, 2021 at 6:14
2

I'm part of a hiring committee that is sending questions to candidates. I speak generally here since I definitely didn't send this one.

As an engineer, the principle thing to accomplish is what was asked of you. If you literally did exactly what you were told, then that wouldn't be enough reason to overlook you or to pass you up.

What would be some of the things I look out for are the kinds of hallmarks of an engineer who wants to show that they understand how to code.

  • Did they write tests? If you didn't for this, how could I trust that you know how to test, let alone know what to test?
  • Did they leave comments in their code? If you didn't, and your code was a jumbled mess, then how would that translate to you doing this on the job?
  • Do they have some kind of instructions on how to build their application? If you don't, how would you expect us to be able to run it freely on our systems to smoke test it locally?
  • Did their code pass my own tests (which would be based on the requirements)? If it didn't, that's pretty much a guaranteed fail.
  • Was there something else about the way that they put the logic together that was particularly good? Messy code that works is still messy, and that has impacts on whether or not we take you at your word that you're a good engineer.

So I would think less from the perspective that you felt like you did a good job and was rejected outright. If nothing else, ask for specific feedback to why they didn't choose to move forward with you so that you can use this as an opportunity to learn. Being annoyed about this doesn't change the fact that you didn't get selected to move on, and it doesn't help you improve any.

1

There is no reason for any skills test to take longer than an hour. Any company that requires you to do a multi-hour project to prove your abilities should be avoided. The lesson here is to learn how to read between the lines when you are applying to companies and when they start making crazy demands, drop them and look at different companies that are operating in reality.

2
  • I mostly agree. I do feel bigger tech companies like Google or Microsoft might be right in requiring a lengthy hiring process. However, for smaller scale companies, I don't think it is right to spend multiple hours investment when there are many others out there that don't.
    – Dan
    Commented Jun 11, 2021 at 14:06
  • 1
    @Dan I have interviewed at Google. None of the tests takes longer than an hour. In fact, most of the exercises take about 15 minutes at most.
    – Socrates
    Commented Jun 11, 2021 at 15:51

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