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#:
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:
- Input: 0 Output: zero dollars
- Input: 1 Output: one dollar
- Input: 25,1 Output: twenty-five dollars and ten cents
- Input: 0,01 Output: zero dollars and one cent
- Input: 45 100 Output: forty-five thousand one hundred dollars
- 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)
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.
Thank you.
P.S.: Yes, I forgot about negatives and gibberish input, indeed.
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.
Thank you for the reply