19

I submitted my solution to a coding assignment given to me as part of a recruitment process. A week after, the recruitment officer came back to me saying that they're not moving forward with my application because they were pretty unsatisfied with the code I submitted. I asked them for some constructive feedback about my submission, and while I appreciate that they shared their thoughts with me, I'm honestly not fully convinced with their assessments. I asked the recruitment officer if they can give me a chance to review my code again with me, face to face, but he told me they can't. He told me he asked for a second opinion about my submission, and he got similar feedback.

I don't claim to be the best software developer in the world who makes the most beautiful code, but I strongly feel like that I can make a case to how I built the solution I submitted. Some of their feedback don't really make that much sense to me; it's as if they didn't really take the time to review my code. For all we know, their assessments might actually be well grounded, and I'm just feeling bad about the rejection. Regardless of what the case is, though, it'd still help me improve if I get feedback through some sort of peer review. I feel like I should make the best of the situation.

The thing, however, is that in one previous email, they asked me not to share or publish the problems they assigned to me. I don't really have any intentions of doing that; I only want a peer review of my own code. Is it ok if I share my solution to their problem with other people for a review?

  • 2
    Why not just solve a challenge in the same domain as the interview question and get feedback on that? Even maybe post it on Code Review for good measure. – Legato May 21 '16 at 17:08
23

Don't do it. A single company claimed that your code is not up to their standards but didn't explain. It could be a cop-out reason for rejecting you when the real reason makes them uncomfortable. It could be that they can' program themselves and don't recognise what makes code good. They could be getting hung up on formatting or naming conventions they didn't specify. One possible reason is that your code really is bad, but I wouldn't take a single company's word for it. I'd suggest checking with close friends or former colleagues/managers over publishing this on SE, especially after you were asked not to.

In my opinion it's not ethical to share information that isn't yours and that people have asked you not to share. Your argument that you're sharing the answer and not the question is rather specious.

If you publish it without specifying the company I'm almost positive that nothing will come of it, but why take the risk that someone at the company is bored enough to google for keywords or happens to browse the peer review site you use?

EDIT: if the company can be determined from the code then I wouldn't even consider publishing it. Maybe if you scrub all company references, but the whole thing feels iffy. As you contacted the company for permission I'd respect their choice. If you hadn't already sent a mail I'd have encouraged you to ask (extremely politely) if they would be willing to provide some more feedback. But they already gave you a list of issues they had with it [OP briefly shared the feedback with a few users] they've already done more than many employers would. But there's no harm in asking as long as you do so professionally.

  • The packaging of my code will easily identify which company it is. Like I said in one previous comment, I already sent them an email asking for consent, but it's Friday today, so I will probably have to wait until next week for an answer. – Placido Penitente May 20 '16 at 11:21
  • 5
    Agreed you should use friends or former colleagues for feedback, particularly ones who you're sure will never want to apply to this company themselves and you can trust to not spread the question and your solution any further - that's a much better approach than publishing it to the world. – Rup May 20 '16 at 12:21
  • 4
    The work belongs to the questioner. They created it. They may publish it for the world to scrutinize as they wish. They may wish to anonymize the firm if they can, but they're unlikely to be considered by that firm in the future anyways, so they really have little to lose. – Aaron Hall May 20 '16 at 18:50
  • They don't have to be bored. We used to occasionally actively search the web for applicants publishing solutions for our take-home tasks. Then we'd at least recognise obvious copy-paste answers. – ColBeseder May 22 '16 at 20:12
11

From one of your comments in reply to another answer, it sounds to me like they told you exactly what they didn't like about the code -- they wanted to see more encapsulation.

Study that concept and think about how you could have applied it here to make your code cleaner and more maintainable.

You don't need to violate a confidentiality request to do that. You can have peers check how you apply this to other coding problems, if you need verification that you have improved this skill.

Having said that --as others have said, this cost you some points (or equivalent) but may not have been the sole reason you didn't get the job. It's something you should work on, but it may not be the only thing.

  • If they wanted to see more encapsulation, they wouldn't have considered it negative for most of the logic to be in just one class, especially when its a class that represents the entire system. Basically, it's a system based on graph data structure. If most logic is inside the Graph class, is that not encapsulation? You have Graph.findAllPaths(), Graph.findShortestPath(), Graph.findCyclicalPaths(), etc. Where should those logic go instead? Like I said, it's quite difficult to argue about this without the code. – Placido Penitente May 20 '16 at 14:32
  • @PlacidoPenitente I think you should respect their request not to post the exact interview question. But based on those method names, it sounds a bit generic; my advice is to find a list of problems from a coding challenge site, select a similar problem, solve and share that. You may have a mini GodObject problem, but we can't tell without the code. – brian_o May 20 '16 at 15:05
  • 2
    @PlacidoPenitente Regardless of what you do or do not know the fact remains they don't even want to interview you. You wasted hours to do something that got you nothing in return and that is frustrating. I would advise to just take it as a loss and share a similar problem if you want but regardless I would just move on to other things and not get stuck at such a small setback. Just learn and move on applying what you learned. – Dan May 20 '16 at 16:15
  • 1
    @PlacidoPenitente I hate to say I disagree with you. By saying you're "learning" you're basically saying to these employers that you're a entry level developer and you want others to help you. Did you apply for a entry level position that provides mentoring? And if so, maybe they thought you didn't have the base skills. Either way, it's not the employer's job to train interviewees on why they dislike them. That's on you. I suggest taking others advice on making a similar problem or asking friends. At this point I think you're just venting your frustrations and stuck on what one person said. – Dan May 20 '16 at 16:41
  • 2
    This ~~> "I'm in the process of learning right now, which is why I want my code peer reviewed." is exactly why a hiring manager won't hire you. For one, you admit that you are still learning. You likely applied for a higher level job that you just aren't ready for. You also said earlier you disagree w/their assessment even though you're still learning. Secondly, you are in no way entitled to anything from a company that does not employ you. Your request for them to teach you more & handhold you further shows a level of entitlement I would not want at the company. – LindsayMac May 20 '16 at 23:17
5

If the company does not consent to publication, I suggest doing some coding on problems of similar type and scope that you construct, and presenting it for review. That may give some indications of what is going wrong.

Even if you had produced the most beautiful, efficient, readable code the reviewers had ever seen, they would have been under no obligation to hire you. It is highly probable that there was something they did not like about the code, even if the TDD vs. no TDD diagnosis was off.

5

Some of their feedback don't really make that much sense to me; it's as if they didn't really take the time to review my code.

They don't want to discuss it. End of discussion.

That being said, the first thing you should do is look for that problem on the internet, either under their company name or some other. For all you know, that problem or a similar one may already be out there. Use Google or https://careercup.com/ (you most likely won't find that problem on StackOverflow or CodeReview)

Also, if you feel the person who read your code didn't do their job properly (and you don't care about the risk of being blacklisted). You can always describe your complaint on http://glassdoor.com about that particular company.

And finally, if you truly want good honest feedback on your technical interview coding skills, I'd suggest you use http://pramp.com/ On Pramp, you interview other job-hunters and they interview you. This is done with video conferencing and a shared online code editor. This is the closest simulation to a real coding interview that I've come across, and it's really good.

Now, not all the people who interview you will be as good as you are, but Pramp gives them the problems and the solutions in advance for them to study, and Pramp is extremely thorough. And a couple of times, you will run into Pramp problems that you consider extremely easy and finish quickly, only to find out that you didn't do half as well as you thought you did. So definitely practice with Pramp and you'll get all the feedback you need to improve your skills.

PS: I am not affiliated with Pramp in any way. I am just a happy user of their site.

3

The thing, however, is that in one previous email, they asked me not to share or publish the problems they assigned to me.

This is dangerous for you. What that means is that probably, the company has copyrights or other such measures in place to prevent publishing of interview questions. You really need to discuss this with a lawyer. You especially need to see if you signed any NDA (Non disclosure agreement) while or before taking this test. Generally speaking I would advise heavily against publishing this, even for peer review.

Think about what this can cause:

  • The company will see that you went explicitly against their wishes, and most likely put you on a "Never hire, ever." List. These lists can be industry wide and the information about what you did can quickly snowball off to other companys. Thats a severely career limiting move.

  • The company can sue you, if there was some NDA clause somewhere or just because of copyright (IANAL - If you absolutely want to do this, contact a Lawyer before you do!)

There are better ways for you to obtain an evaluation of your coding skills.

  • 2
    I never signed anything with them, so I'm pretty sure I'm not bound by law. All of our correspondence so far have only been through emails, and one phone call. I also live in a different country. However, I understand the concern on the blacklisting, which is why I'm asking for some advice. – Placido Penitente May 20 '16 at 10:59
  • 2
    @PlacidoPenitente Legal aspects aside (which can apply even if you signed nothing and even internationally) its REALLY not worth to break trust of a company like this just because you feel like a code review was inappropiate. REALLY not. There will be more opportunities for you to improve your coding style. No need to limit your career over this. – mag May 20 '16 at 11:00
  • 2
    Copyright limits your right to make copies, regardless of whether you signed anything. – Patricia Shanahan May 20 '16 at 12:06
  • 2
    @GreenMatt documents are copyright by default. You shouldn't be sharing any information that a business gives you unless you have been given permission. You are legally liable for any costs you cause them by sharing it whether you have signed anything or not. – JamesRyan May 20 '16 at 15:39
  • 2
    If all the logic is in a single class, that's the opposite of encapsulation. – Amy Blankenship May 20 '16 at 15:48
1

Honestly this place sounds like serious trouble. First they ask you sign a NDD agreement just to interview them as if they're top dog stuff. Then they say your code stinks even though you put - presumably - hours into it. Honestly I would not have event done the code exercise if it took more than 15 minutes of my time.

My advice is unless two or more places are telling you the same thing, I would just move on and continue with the job search a little older, and a little wiser.

Also, they're under no obligation to disclose what is wrong with your code. It would only benefit you, and not them.

  • They never required me to sign anything. They just asked me not to publish the coding assignments that they gave me. But yes, I spent hours working on my solution. – Placido Penitente May 20 '16 at 14:36
  • 1
    @PlacidoPenitente Even if they ask you that is basically acknowledging a ND agreement. I would advise to avoid places with extraneous code exercises just to get into the door for a initial interview unless it is a very large company such as google or whatnot. Doing so will lead to a very disappointing job hunt. If post interview they wish to do a code review then by all means do so, but not before. – Dan May 20 '16 at 16:11
  • This. Unless they provided @PlacidoPenitente with some kind of compensation for the time spent working on the code OR they provided some kind of confidential data I don't really think they have any right to force anyone to keep the code under wraps. If you're really afraid of blacklisting frankly I'd search out a group of code reviewers that review privately, I'm sure you could find some (I'd help you if it's c#). – C Bauer May 20 '16 at 17:59
  • @CBauer thanks, but it's in Java unfortunately. I don't have a very large network of people, and the closest devs to me come from the same shop I was trained in as an entry level developer, so they will most likely agree to many of my coding decisions. – Placido Penitente May 20 '16 at 18:09
1

Why doesn't the firm want you to publish the problem? If you publish it, it's likely that other people they give the same assignment will find the post when they use Google. That means the question becomes worthless as a good interview question for them.

That means publically posting on Code Review StackExchange might hurt the company.

However if you haven't sign a NDA then I wouldn't see a problem if you privately ask people you trust for feedback on the code. That's unlikely to hurt the company.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.