What makes an excellent front-end developer?

In notebook:
Article Notes
Created at:
2015-10-01
Updated:
2015-10-01
Tags:
management
(1) Alex Yim's answer to What makes an excellent front-end developer? - QuoraTo summarize and expand:

  1. Fundamentals of JavaScript, CSS and HTML (Fundamentals: deep fundamentals. not the same as basics!)
  2. Code organisation (modules, etc.)
  3. Familiarity with design principles (typography, colors) - to have the eye for the details when recreating a design in code
  4. Experience with browser quirks, specialities 
  5. Know how to improve performance (speed)
  6. Stay current with technologies - know how to implement new features
  7. Be familiar with back-end technologies, at least to be able to use them (APIs, requests)
  8. Being efficient in development 

Of course, having a mastery of JavaScript, CSS, and HTML and their cross-browser differences is a requirement. However, there are a few more points that require more elaboration.

Once you throw in the word engineer, immediately things like optimizing for performance and understanding concepts like Test Driven Development become relevant.

Ideally, a front end developer should actually be able to work on the whole stack (from front to back end). What distinguishes them from back end guys is their specialization of best practices in the front end (how to write proper HTML that requires minimal tweaking for cross browsers in the first place), and an increased focus towards UX/UI and aesthetics. They need to know how to architect the site with efficient use of templates (i.e. from web frameworks) and be able to apply DRY to HTML/CSS too, which is something of an art form. They should have an appreciation for things like Tufte, peruse Smashing Magazine, know who some of the top designers are, and be pretty familiar with typefaces for example. Their role should really be to merge the work and domain of designers with software. It is this intimacy in knowledge that lets them create great products. Additionally, they need stay ahead of developments in web technologies so they could know when to sensibly push the boundaries of the product.