I applied for a programming job and one requirement is to pass a skill assessment exam.

The specification for the assessment exam was:

Write PHP code that displays people which are related to another table (sponsor), basically a one to many relationship. It must be done in an OOP way with native php code, and using no Framework.

I've been programming PHP for more than 4 years and I understand OOP well.

The interviewer told me that I did not make it, because the code reviewer told him I am using a framework, which is not true. It's pure OOP, using a very simple approach, namespace, and composer autoloading.

How do I politely approach the reviewer that he is wrong? I think it's clear that the reviewer even, though he is a senior developer in the company, does not really understand OOP. In fact I have only 5 files in that assessment test, a composer.json file, 2 classes, 1 class for a database connection and a README.md file.



Moderator note: This question is on The Workplace, not Stack Overflow. Answers and comments that are about the correctness of this code will be summarily removed. Answers are expected to focus on the hiring part of this question (addressing a difference of opinion on the correctness of an assessment), not the technical part.

  • What communication channel do you have available through which to provide this feedback? Are you in touch with the code reviewer directly? Are you working through a recruiter? Is this a position at a new company, or an internal application where you already work? What do you hope to gain by telling this person that you think you're wrong? – dwizum Mar 21 at 15:05
  • 3
    Did you receive any other feedback besides "you're wrong"? You could politely ask for feedback on what a correct answer should look like or how you could have made your answer fit the requirements. – SiXandSeven8ths Mar 21 at 15:09
  • 4
    "asked them to have another developer to review my code" So you already contacted them again? If so this question, while interesting, will not help you much. – Lilienthal Mar 21 at 16:07
  • 3
    Why on earth would you want to work for/with an organization (because that's what the reviewer represents) who thinks they know what they're doing but is so oblivious to their own incompetence that they're testing people with it? If I ever had this happen I would be thankful that I dodged a bullet and move on to the next prospect. – Chris E Mar 21 at 16:10
  • 2
    I don't understand this close reason at all. The OP is asking a clearly stated and distinct question here that can be answered and is on-topic. Even if the answer might be a similar "Despite those circumstances, you should just accept it.", the question isn't a duplicate at all. – Lilienthal Mar 21 at 20:09

The only answer is "MOVE ON"

You are not wanted there for whatever reason. The possibility exists that the reviewer said nothing of the sort, or he misunderstood what the reviewer said, but in any event, this should be a huge red flag to NEVER work there under any circumstance.

Only two possibilities exist:

  1. They're lying
  2. They're stupid

Neither of which would cause me any sort of angst at not being hired. Find someplace to work which will appreciate you, and forget about this one. You can do yourself no good and only earn a negative reputation in the industry if you persist.

  • 4
    Third possibility: They're disorganized to the point of incompetence. – AffableAmbler Mar 21 at 17:50
  • 5
    @AffableAmbler no, that falls under #2 – Richard U Mar 21 at 17:52
  • @RichardU Sorry if you took personal offence at my criticism of your post. It is still not the correct answer to 'How do I approach the reviewer', it would be a good answer to 'Should I approach them.' some people don't have the luxury of giving up on employment opportunities on points of principle. – JeffUK Mar 23 at 16:53
  • @JeffUK The be nice policy is not about personal offense and comments are not for debate, they are for constructive criticism and suggesting improvements. If you feel this answer is inadequate, down-vote and post one of your own. – Richard U Mar 23 at 17:05

Rather than challenge the reviewer I would write.

What rules(s) did I violate? What Framework did I use? I used no Framework as I understand the definition.

Go at it with the presentation if you just want to learn.

  • An elegant approach. – Mister Positive Mar 21 at 18:14
  • 4
    Yes, ask which framework was used. Then, move on, as recommended by another answer. – Don Branson Mar 21 at 19:08

You could ask if they mistakenly mixed up your code with somebody else's because you are sure you didn't use some framework. Tell them the files and ask for an explanation of what they found to be wrong there.

Nothing is wrong if you want to know the mistake you made. For now you are out so it can only get better.
A risky thought. What if they told you so to see if you are able to ask for clarification?

Btw to address comments to the question, I understand the rule to use no framework in the test. There are programmers who look for a framework or class or in general code made by others for every little bagatelle, wasting more time to find and understand that small code than they'd need to write it on their own. I think the employer is right when he wants to know if his employee can write code and understand what he does. If in real life a framework can do a good job, of course you should be allowed to use it.

  • 5
    "What if they told you so to see if you are able to ask for clarification?" Aside from this being unlikely, companies who are so crap at hiring that they purposefully try to trick applicants are not ones most people would want to work for. – Lilienthal Mar 21 at 16:02
  • Your last paragraph is not relevant as an answer. Answers aren't for replying to comments. – Kat Mar 29 at 0:05

The interviewer told me that I did not make it, because the code reviewer told him I am using a framework

All that you know is that the employer rejected your application. Their reason was a vague reason. I would think if it was only that that was keeping your out of the position that they would have given you more specific information, to see if you could make the adjustment to the code.

That they did not means that they probably have a candidate that better fits the role. It is entirely possible that your code was good just like you said. That they have a process and there are only a few justifiable reason allowed to cut candidates at that point in the process and they just picked an easy one.

On top of that... I can see how using Composer autoloading would be considered a violation of the no "Framework" concept. I would guess the intent of the policy was to include no libraries beyond basic PHP. You probably should have clarified that before you wrote the program using the Composer include.

I've been programming php for more than 4 years and I understand OOP well.

The interviewer told me that I did not make it, because the code reviewer told him I am using a framework, which is not true. ...

Tell the interviewer politely that you disagree. Reiterate your understanding of the parameters of the test and assure them that you have followed them to the letter. Mention your years of experience and clear understanding of the requirements. Ask if the interviewer or another reviewer could reconsider your application.

If they stand firm there's nothing to lose by doing the same.

They can offer you the job that you applied for or the reviewer's job; that is the escalation your complaint takes. Why would you be the only one with something to lose - you would be if you jumped through a bunch of hoops for nothing.

If you leave them with the impression that: your incompetent, don't listen, or cheat on a test you will never work there; don't think that a strike like that would make you a good candidate in the future.

One of you must own the mistake and hit the road, fact is that they'll probably keep the reviewer but if they get a few strikes then they'll be out; if you accept their error without complaint only you lose. If you no longer want to work there you've little to lose with another 5 minutes time invested.

Doing anything other than accepting the decision will probably leave a bad / worse impression of you.

Although that's not to say you can't accept the decision while communicating your opinion to them.

There are, however, a few things you should do:

  • Thank them for their feedback.
  • Do not insist that you're right and they're wrong - that's a good way to get your application thrown out even in cases where you are still in the running - most people hate being told they're wrong, and most employers don't want someone who always insists they're right (which you may not do, but they need to draw conclusions based on little data).
  • Try to play it off as something neutral (e.g. an honest misunderstanding, or something that comes down to opinion) - something that doesn't make either you or them look bad.
  • If possible, try to show that you'll turn it into a learning experience for yourself (because learning from your "mistakes" is a desirable trait for an employee).

Dear {Name},

Thank you for the feedback. I'm disappointed to hear that.

It might be a bit subjective as to whether or not [I did X / X is a framework / whatever] [optionally add a brief justification].

Although I'll certainly keep this feedback in mind, and try to [clarify the requirements in more detail / opt for the more cautious approach / whatever] in future.

Kind regards

{Name}

That said, I think it's extremely unlikely they'd changing their decision or take any action as a result of this.

Approach this by first trying to understand the employer's perspective. Do you think they REALLY want a candidate who can solve a specific programming challenge?

Skills tests do allow an evaluation of a specific skill, but they also allow a company to see how someone behaves under pressure. That can mean they're also looking at your communication, attitude, ability to work with others, and other soft skills.

It's common in an interview to ask a question without caring about the actual, literal answer - you're more interested in seeing the overall reaction. The employer (probably) understands that while coding php without framework may be of dubious value, it allows a candidate to show that they can understand and execute specific instructions.

Skills can be learned. Attitude, communication, and reaction to instructions are harder to teach. Employers like people who are already good at those things, and are willing to learn and develop their skills, versus people who are only interested in proving they're right and they already know everything. If you do decide to follow up, consider that in your response, and consider it the next time you're given a skills test in an interview.

To address your specific question:

How to politely approach to the reviewer that he is wrong?

Telling them they're wrong is probably not a good idea.

If what you're really asking is, "How can I show them that I'm a skilled php developer?" then consider in the larger context - how is that shown on your CV or other material they already have? If it isn't shown there, take the opportunity to give them material that shows it. Reference a publicly visible project you worked on, or a blog where you've posted code examples, for instance.

If what you're really asking is, "How can I convince them that I'll be a valuable employee?" then make sure you're communicating your feedback in a way that respects the overall interview process (which I don't think we understand well enough to provide specific help). In your response, show that you're not out to ultimately prove you're right, but you're trying to learn. And respond with consideration that it's not just your php skills that are being evaluated, but also your overall reaction, communication capabilities, and ability to learn and improve yourself.

  • Unless the interviewer is a trained professional in psychology, he or she should be be administering provocative behavioral tests. As a candidate, you should immediately make it clear that you will not put up with such a bad practice, and hopefully it will eventually be phased out of existence. For clarification, trying to evaluate soft skills is perfectly fine, but tricking candidates in order to provoke behavior is borderline unethical and flat out useless. – Clay07g Mar 21 at 16:44
  • I think you're misinterpreting my point. I'm not referring to a "provocative behavioral test" and certainly not an "unethical and flat out useless" process. Simply, when an interviewer asks a skills-based question, they're commonly looking at the "whole" response, not just the "yes or no" regarding the specific skill. In an interview, you can't say to someone, "how well do you follow instructions?" because they'll just say "perfectly!" But, you can give them an instruction and then observe how they follow it, and that can be more meaningful than the actual content of the instruction. – dwizum Mar 21 at 17:25
  • 1
    So in order to prove to me that OP's interviewer's technique was not a "provocative behavioral test", you made a different scenario up and told me that your hypothetical situation wasn't "provocative"? – Clay07g Mar 21 at 17:52
  • Not sure what you're looking for here or how I can help you. You misinterpreted my answer, so I "made up" the scenario in the comment to try to explain my answer differently. – dwizum Mar 21 at 20:23

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.