bitstorm.org

Weblog by Edwin Martin about frontend webdevelopment and related topics

The JavaScript engineer and the front-end UI developer

Before the year 2000, people who made websites did it all: designing, programming, deployment, SEO et cetera. It didn’t take long to figure out that programmers weren’t great designers and designers weren’t great programmers. Some people where great at both, but they where rare and a statistical coincidence. So the design and programming of websites where assigned to different roles.

Around 2007 a new role emerged: the front-end developer. For a long time, front-end was thought of as easy, something a backend developer could do besides the “real” work. But HTML, CSS and JavaScript became more and more complex and it was practically unfeasable to do this besides the backend work, which also became more complex. Separate roles for front- and backend work became more and more common. Meanwhile, the design role was branched off to visual designer, UI designer and UX designer. Other roles emerged like testers and sysops/devops.

Right now we’re at the brink of another division of roles: the JavaScript engineer and the front-end UI developer.

When I look around, and as a freelancer, I do a lot of looking around, I see many front-end developers who have a hard time dealing with JavaScript, which is getting more and more technical. They’re still very good with HTML and CSS. They know how to write semantic HTML, how to make a site search engine friendly and how to make websites accessible. They can implement a quirky design element in a couple of lines of CSS. They can make a webpage scale from desktop to mobile and make it look good on every position in between. They write CSS that is well maintainable.

On the other hand, I see a many developers who are really great at JavaScript. They know the latest features, have no problem with asynchronous programming, know what closures are, know how to configure module bundlers, how to do functional programming and state management. And many times, they’re bad at HTML and CSS. The HTML looks like a heap of div’s and the CSS is very shallow. They first C of CSS, cascading, is mostly ignored.

In 2007, companies looking for web developers had a hard time to make the distinction between front- and backend developers. Now I see it again. Almost every position for a front-end developer asks for good JavaScript skills.

I’m convinced that companies with large development teams should revise their current way of searching for job candidates. Why should you pass great JavaScript developers because they’re not so good with HTML and CSS? Why should you pass HTML/CSS developers because they’re not so good with JavaScript? Just hire people from both sides, and have the best of both worlds and let them work together to build a website that is great in every aspect.