DEV Community

Andrey Weber
Andrey Weber

Posted on

Was it fair coding task assessment?

Warm greetings to community of dev.to

Recently I tried to apply on a job in a software development company (what a surprise :))

I've got coding task description and a deadline date from them and started to work. Task was implemented and sent back for assessment, but I've got negative feedback and they decided not to proceed further with me.

I understand that my solution is not optimal and can be improved significantly in a different ways, that's for sure. I just tried to be pragmatic and followed Occam's razor principle.

But... could anyone from community be so kind and please tell me if company assessment was fair enough comparing initial task description and assessment notes?

I would be very grateful for you opinions.

Here is assessment notes:

After review of the task I cannot evaluate it with positive outcome. The task is simple and very small but still should be done according to the latest coding standards.

Positives:

  • Convertion of numbers was well tested
  • Detailed input validation with error handling

Negatives:

  • Everything is static in whole project, no dependency injection, no interfaces Hepler methods in region in Main class
  • No unit tests for the supporting methods as there is only one static that gives output
  • Inline function with logic in one big switch case that cannot be tested out
  • Even if it wasn’t specified it would be good to close the convertion functionality in as service to be able to use it in different apps

To summarize I cannot recommend such task and candidate for client verification.

Here is repo with the task description and sources written on C#:

GitHub logo AndreyWeber / NumberToWords

Convert digital number representation to word number representation

Number to words

Convert digital number representation to word number representation

Task

Write a console program which converts currency (dollars) from numbers into word presentation.

  • The maximum number is 999 999 999.
  • The maximum number of cents is 99.
  • The separator between dollars and cents is ',' (comma).

Examples:

  1. Input: 0 Output: zero dollars
  2. Input: 1 Output: one dollar
  3. Input: 25,1 Output: twenty-five dollars and ten cents
  4. Input: 0,01 Output: zero dollars and one cent
  5. Input: 45 100 Output: forty-five thousand one hundred dollars
  6. Input: 999 999 999,99 Output: nine hundred ninety-nine million nine hundred ninety-nine thousand nine hundred ninety-nine dollars and ninety-nine cents

Requirements:

  • Use .NET framework 4.5 or higher.
  • Implement the conversion algorithm by yourself.



Top comments (4)

Collapse
 
stereobooster profile image
stereobooster

Reviewer just try to show how smart they is - look how much smart words I know "dependency injection", "services".

You got task. You implemented it. You have e2e tests. It is a good solution for the given task (I would also test gibberish input and negatives).

Some people just can't handle simple solutions.

Once a programmer becomes used to a complex solution to a problem, simple solutions to the same problem feel incomplete and uncomfortable.

— Doug Hoyte

Collapse
 
andreyweber profile image
Andrey Weber

Thank you.

P.S.: Yes, I forgot about negatives and gibberish input, indeed.

Collapse
 
kwstannard profile image
Kelly Stannard

After being on the giving and receiving end of code assignments, I would really only use them to determine if the candidate knows the language grammar and if the candidate knows how to write readable code and specs. I don’t think trying to determine someone’s design skills from the code assignment is fair.

Collapse
 
andreyweber profile image
Andrey Weber

Thank you for the reply