Hacker News new | ask | show | jobs
Ask HN: What's wrong with my JS?
3 points by luk3thomas 4174 days ago
I recently applied for a frontend JavaScript developer position. The first step of the interview process the company asked me to build a car selector in JavaScript. After reviewing the instructions, I decided to use plain JS and EventEmitter.

I was quickly rejected after I submitted my work. The company said they are moving forward with candidates who exhibit stronger coding indicators. I was surprised to be rejected for work that I thought was good, given the boundaries of the task. I created modular code, wrote tests to influence the design, and even used some functional programming.

Should I have put more love into the UI? Should I have used a JS framework like angular or react? Maybe my code is crap and I don't see it.

Obviously, the company can't offer any insight, but can you? I'm stumped. I very much want to know what things I did wrong or areas where I can improve. Thanks!

Task description is in README.md http://bl.ocks.org/luk3thomas/512896ffd7a5dd325de1

7 comments

To start as a couple of others have already pointed out you haven't implemented all the criteria.

If I was evaluating your solution based on what they are asking for I would have passed on you as well. Your solution is unnecessarily complex and over built. They are asking if can you use JS to manipulate a select box. Not including tests you have brought in 400+ lines of code (184 lines of code + the EventEmitter library) to implement 75% of the functionality you were asked for. That is a lot of code to take an item from a select box and add it to a list. Knowing that developers leave I would not want to inherit a solution like this.

To put it in car terms you built a 911 when the customer was asking for a vw bug.

As someone who has interviewed 50+ developers in the past six months: that code sample would absolutely get you an in-person interview. Your code is fine and the company was probably just giving you a cop-out answer for whatever reason. Don't be discouraged; you should keep interviewing!
"After a car has been added to the wish list, the select box should default to the first alphabetically available car from the same make".

Doesn't happen. Leaves the make and returns to top make after selection.

omg, you're right.
Kind of sneaky to put important details in parentheses like they did. I would have let that omission slide, especially considering the typical candidate we get.
You missed #3 as far as I can tell.
this requirement:

"it also only need to work in Chrome – no IE testing necessary"

sounds like they had a preference for AngularJS. I guess your eventEmitter solution was too advanced for that company.

That sounds like a huge leap that because they are only going to test the solutions in chrome that he should have used angular.
without putting value to Angular, many companies that say "works in Chrome" mean "developer friendly". And from "developer friendly", it seems a small step to Angular. Maybe because many developers don't want to invest time learning real JS.
Just curious, was it a junior dev position or intermediate?
The company didn't make a distinction -- just JavaScript Developer.
Were you limited by time for this test?
No, there was no time limit