by Ilias Ismanalijev
Front end development is more complicated than it seems.
More code, more opportunities for that code to fail
CSS is painful to work with once your site starts to grow. It's very static, and you wind up keeping up with a lot of it in your head. The learning curve is steep because it is always changing.
Always something new to learn
Responsive media queries, HTML AppCache, CSS transforms, WebGL, etc. Each of these tools introduces exciting new possibilities, but also changes the way work is done
More to front end than just development
It's about how the code interacts with the consumer. A front end developer needs understanding of web performance (caching, optimizing dns lookup times, minification build scripts, etc.
Also needs to have a sense of marketing
Knowing the psychology of the consumer, prioritizing accessibility and usability of the product, and maintaining strong SEO. Also means having basic understanding of design theory
Important to focus on security of the product
Protecting against CSRF, XSS, DNS pinning, and clickjacking. You may need to dig in to server side code from time to time.
A good front end developer needs to be a good back end developer as well.
It means making the product compatible with everything
Every browser, mobile device, and high-end toaster oven under the sun. That can be a lot of work. There are lots of browsers and many versions of each browser too
And then there's each make of smartphone and tablet
Does the service work without a keyboard? Without a mouse? Touch support? Gestures?
"We work with crappy tools on inconsistent platforms....
...run by every kind of device you can imagine...making sure the product works for everyone, no matter what." - Bulat Bochkariov, front end developer
So why is it so hard to find a good front end developer?
Because being a good front end developer is hard.